一、拓扑图
二、
使用直连接口IP地址连建立EBGP对等体关系
1、启动BGP协议
[r1]bgp 100 ----这个数字是指的AS号,而非是进程号。每一台设备都只能运行一个BGP协议,不能运行多个。
2、设置RID
[r1-bgp]router-id 1.1.1.1 ----RID数值一般与设备身上的环回接口IP地址相同
3、配置BGP对等体的IP地址,并指定对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200
a.告知本地设备,邻居的IP地址,通过路由表对IP地址进行网络可达性验证。
b.告知本地设备对端所在的AS号,判断此时建立的是EBGP还是IBGP对等体关系;并且可以根据open报文判断是否出错
使用环回接口来建立IBGP对等体关系
1、启动BGP协议
[r3]bgp 200
2、设置RID
[r3-bgp]router-id 3.3.3.3
3、配置BGP对等体信息
[r3-bgp]peer 2.2.2.2 as-number 200
此时会发现,R2和R3之间的BGP状态处于Active状态。原因是因为R2在发送报文时,使用出接口IP地址作为BGP报文的源IP地址(23.0.0.2),而R3收到该报文后,在其BGP配置信息中查找不到关于23.0.0.2的邻居信息,故拒绝建立TCP会话。----->解决思路,修改R2发送的BGP报文的源IP地址为环回接口IP地址。
4、R2使用loopback 0接口作为出接口与3.3.3.3建立BGP会话。
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
通讯双方均需要修改,使用环回接口来建立EBGP对等体关系。一般EBGP对等体关系之间存在多条物理链路时,会使用环回接口方式建立BGP会话。
此时,如果正常去建立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