基础配置
建邻配置
BGP基于单播进行建邻和沟通,故需要管理员手工指定邻居的ip地址
1)正常的EBGP建邻
使用直连接口IP建邻
[r1]bgp 1 启动时需要定义真实的AS号,没有多进程概念
[r1-bgp]router-id 1.1.1.1 建议手工配置RID,--手工—环回最大值---物理接口最大值
[r1-bgp]peer 12.1.1.2 as-number 2 对端IP地址,及对端所在的AS号
2)IBGP建邻–使用环回建邻
- 一个AS的内部正常具有较为复杂的网络拓扑结构,设备到设备间存在大量的备份和负载均衡;因此建立IBGP邻居关系时,建议使用双方的环回接口来作为源/目IP地址;
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 2
一旦使用环回接口作为目标ip地址时,也应该修改源为本地的环回接口ip地址
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
3)EBGP邻居间有多条直连链路时–使用环回建邻
【1】 IP可达,两个环回间还不通,没路由
[r4]ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.0 24 54.1.1.2
【2】建立EBGP邻居关系
[r5]bgp 3
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 2
修改本地源
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
【3】BGP规定EBGP邻居间默认所有的BGP的数据包TTL值为1,导致环回建立邻居关系服务正常
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
4)当两端邻居建立配置完成后,将进行tcp的三次握手,建立tcp的会话
[r1]display tcp status
TCPCB Tid/Soid Local Add:port Foreign Add:port VPNID State
b4ca4bc8 164/8 12.1.1.1:179 12.1.1.2:50042 0 Established
5)当tcp会话建立后,BGP协议基于会话收发一次open报文,建立邻居关系,生成邻居表
[r1]display bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 1
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.1.1.2 4 2 6 7 0 00:04:29 Established 0
路由宣告
- BGP协议本身不计算生成的路由条目,负责转发从其他BGP邻居传递过来的路由条目
- 同时可以将本地路由表中任意路由宣告到BGO协议中来
- BGP宣告配置时,只能宣告本地路由表中的路由条目,且宣告配置网络号的掩码必须和路由表中的记录完全一致
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24
- 当BGP设备进行宣告配置后,本地生成BGP表;装载本地发出及接收到所有BGP路由
[r1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
*表示可用 >表示条目优秀—可以加表,可以传递(共享给本地的其他邻居)
状态处的i表示该条目通过IBGP邻居关系学习
不优的原因:1、下一跳不可达(因为AS-BY-AS,AS内的属性传递不改变)
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local)
将IBGP路由传输给邻居3.3.3.3时修改下一跳属性为本地(2.2.2.2)
条目传递给本地的ebgp邻居,自动修改属性,包括下一跳为本地;
宣告中的一些小问题
- 在BGP协议中,当R2宣告了AS2内的通过OSPF学到的其他路由器的路由时,将会携带R2到达这些目标网段的cost值
- 在BGP协议中,当R3宣告了AS2内的通过OSPF学到的其他路由器的路由时,当通过IBGP关系传递给R2时会携带R3到这些目标网段的cost值,但当R2通过EBGP传递给R1时,会删除cost值,因为这些cost不是本地的度量,也就是不是R2到这些网段的度量,建议本地R2也配置宣告这些路由条目,来携带本地的cost到其他的ebgp邻居