配置ip
r1
[r1]interface LoopBack 0
[r1-LoopBack0]ip address 1.1.1.1 32
[r1-LoopBack0]q
[r1]int GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ip address 12.0.0.1 24r2
[r2]int GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]ip address 12.0.0.2 24
[r2-GigabitEthernet0/0/1]int g0/0/0
[r2-GigabitEthernet0/0/0]ip address 23.0.0.1 24
[r2-GigabitEthernet0/0/0]q
[r2]int LoopBack 0
[r2-LoopBack0]ip address 2.2.2.2 32r3
[r3]int g0/0/1
[r3-GigabitEthernet0/0/1]ip address 23.0.0.2 24
[r3-GigabitEthernet0/0/1]int g0/0/0
[r3-GigabitEthernet0/0/0]ip address 34.0.0.1 24
[r3-GigabitEthernet0/0/0]q
[r3]int LoopBack 0
[r3-LoopBack0]ip address 3.3.3.3 32r4
[r4]int g0/0/1
[r4-GigabitEthernet0/0/1]ip address 34.0.0.2 24
[r4-GigabitEthernet0/0/1]int g0/0/0
[r4-GigabitEthernet0/0/0]ip address 45.0.0.1 24
[r4-GigabitEthernet0/0/0]q
[r4]int LoopBack 0
[r4-LoopBack0]ip address 4.4.4.4 32r5
[r5]int g0/0/1
[r5-GigabitEthernet0/0/1]ip address 45.0.0.2 24
[r5-GigabitEthernet0/0/1]q
[r5]int LoopBack 0
[r5-LoopBack0]ip address 5.5.5.5 32
启动BGP协议
[r1]bgp 100
[r2]bgp 200
设置RID
[r1-bgp]router-id 1.1.1.1
[r2-bgp]router-id 2.2.2.2
配置BGP对等体的IP地址,并指定对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200
[r2-bgp]peer 12.0.0.1 as-number 100
使用环回接口来建立IBGP对等体关系
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]a 0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0[r2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.0
[r2]bgp 200
[r2-bgp]peer 3.3.3.3 as-number 200
[r3]bgp 200
[r3-bgp]ospf 1 router-id 3.3.3.3
[r3-bgp]peer 3.3.3.3 as-number 200
[r3-ospf-1]a 0
[r3-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]a 0
[r4-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.0
[r4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
此时会发现,R2和R3之间的BGP状态处于Active状态。原因是因为R2在发送报文时,使用出接口IP地址作为BGP报文的源IP地址(23.0.0.2),而R3收到该报文后,在其BGP配置信息中查找不到关于23.0.0.2的邻居信息,故拒绝建立TCP会话。----->解决思路,修改R2发送的BGP报文的源IP地址为环回接口IP地址。
[r2]bgp 200
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3]bgp 200
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r4]bgp 200
[r4-bgp]router-id 4.4.4.4[r4-bgp]peer 2.2.2.2 as-number 200
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]peer 3.3.3.3 as-number 200
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
使用环回接口建立EBGP对等体关系
一般EBGP对等体关系之间存在多条物理链路时,会使用环回接口方式建立BGP会话
[r4]ip router-static 5.5.5.5 32 45.0.0.5
[r5]ip router-static 4.4.4.4 32 45.0.0.4
[r4]bgp 200
[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
此时,如果正常去建立BGP会话,两端设备会正常建立BGP会话,但是,在建立完成后,会通过发送notification报文断开BGP和TCP的会话关系。
原因:本地设备身上存在静态或IGP路由信息,此时设备会认为本地距离目标网段并非直连,故需要进行多次路由数据转发过程,而此时所建立的EBGP对等体关系的TTL数值=1;设备会认为该BGP会话不应该建立。但事实建立,出现故障,发送错误报文,断开连接。
解决思路:修改TTL
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 ---修改R4与5.5.5.5建立的EBGP对等体的TTL=2,如果不携带参数,则代表修改为最大值255