实验要求:as123(ibgp)使用环回口,as400与as123,(ebgp)使用物理接口
做邻居实现r1能够ping通r5
方法:IBGP邻居全互联
1.做邻居
内部的ibgp需要用环回口,使用两条命令,物理接口用一条命令
- 用物理接口 neighbor x.x.x.x remote as AS(邻居的as号)
- 用环回口 neighbor x.x.x.x remote as AS(邻居的as)
Neighbor x.x.x.x update-source lo 0
查看邻居的命令:sh ip bgp summary
在r1上进行路由宣告环回口网段,
一个路由器从EBGP nei学来的路由信息传输给邻居IBGP nei下一跳是不会变的,所以传给直连的ibgp r2路由器时,
下一跳地址没有变,
根据显示*>表示最优,最优的条件是
如果从ibgp邻居学到的一条路由,要想优化,有两个条件.
(1)下一跳可达。
(2)同步
对于一个路由器而言,从IBGP邻居学来的信息不能用,必须等到通过它的IGP邻居也学来了,才可以用。这就叫做BGP的同步
(如果都是全互联的网络,而且全都是IBGP nei ,不需要同步)
既然不用管同步那就只看下一跳。
r2的下一跳不会变,因为是EBGP传过来的,现在查看r3
由图可知,r3上没有最优只有一个*号
>的含义:
1)这条路由有可能被传递
2)这条路由有可能被放到路由表中
因为在ibgp中,传递中下一跳地址不会自动改变仍然是从ebgp传过来的地址,所以需要手动指定。就可以实现最优
指定的时候在r2路由器上
在r3路由器上进行查看
现在最优已经传递到r3,无法继续进行往下传,因为路由器水平分割,为了防止环路。
IBGP水平分割:我从IBGP nei 收到的bgp路由信息,我不会再传给我的IBGP nei
不管是原来的IBGP nei还是其他的IBGP nei
(也是BGP防止环路的一种方法)
以为r3是通过r2的ibgp nei传过来的所以会有水平分割,r3的下一跳为2.2.2.2避免环路不能返回。
但因为水平分割的原因无法传递路由到达r4.
ibgp之间可以指定邻居,互相指定r2和r4为邻居
查看邻居:
成为邻居后,r4可以学到r2传递的路由但不是最优,
因为下一跳不对的原因,应该手动指定,在r2上指定下一跳为我自己,
此时路由就可以单向传递到r5,
然后宣告r5,返回的思路和原来的相同
得出
看一下路由表
路由表中有5.5.5.5的路由
此时带上源环回地址就可以ping通