耗时8个小时
出现的问题是,R4和R5是用loopback接口起的EBGP,但bgp的路由无法传递给R2和R1
解决思路
当时觉得是环路的问题,还有路由黑洞,还有怀疑模拟器处理问题,R4R5对应静态也写了,ebgp-max-hop也设置了。R2peer关系也没问题R2就是学不到5.5.5.5的bgp路由。
路由黑洞意思是会丢包,bgp的包过去R3是识别不了的因为没启用bgp,没启用bgp的话会把它当做数据包传递给R4而不学习路由,所以通是不能通的但是R4和R5上有R1宣告的bgp路由
回头看R1和R2,是用直连接口建立的邻居,一点问题都没有,此时整个人已经懵了
第二天,苦思冥想,继续排错
我再R2上宣告了一下我自己2.2.2.2,发现2.2.2.2无法传递给其他路由器,除了直连
R1上有2.2.2.2
R5没有
那么,我抱着试试的态度,将R4和R5的邻居接口换成了R4,10.4.4.4和R5.10.5.5.5。
总结上面的,我猜测ebgp的loopback建邻居的那个接口是不能自己宣告自己的,因为R4从和5.5.5.5做邻居,改成和R5的loopback1接口10.5.5.5做邻居,就可以传过去了。
此时R2上有了5.5.5.5的bgp路由,但是只有i,就是IBGP传过来的,但是没有*号也就是无效的,也没有>不是最优的。看nexthop下一跳是10.5.5.5
没有10.5.5.5的路由,所以是无效的,那么要去ibgp的R4上设置一下下一跳找R4,因为ibgp在传递路由的时候不会修改下一跳
好了,问题解决
总结一下
1、做邻居的那个接口不能和宣告的同一接口(这个不是很清楚求大神指导)
2、EBGP在传递会修改下一跳,IBGP传递时候不会修改下一跳。需要手动设置下一跳