我们设备与友商建立EBGP对等体,如下:
对端引入路由后,本端学不到:
对端BGP路由表(模糊不清时请点击放大):
本地BGP路由表:
从BGP路由表看,对端发布的BGP路由(例如:192.168.50.0/24)本端确实没有加BGP路由表,在本端debug后发现有如下提示:
*Jan 23 00:48:45:164 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: Recv UPDATE(Withdraw) from peer 192.168.48.219 for destinations:
192.168.51.0/24 PathID 0 ,
*Jan 23 00:48:45:164 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: 192.168.48.219 MSG ignored: Invalid NEXT_HOP attribute 192.168.49.162,
while recv UPDATE.
*Jan 23 00:48:45:164 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: Recv UPDATE(Withdraw) from peer 192.168.48.219 for destinations:
192.168.50.0/24 PathID 0 ,
%Jan 23 00:48:51:164 2015 CORE-SW-S9850-E04-E05-39U BGP/5/BGP_STATE_CHANGED: BGP.: 192.168.48.218 state has changed from OPENCONFIRM to ESTABLISHED.
%Jan 23 00:48:51:168 2015 CORE-SW-S9850-E04-E05-39U BGP/5/BGP_STATE_CHANGED: BGP.: 192.168.48.217 state has changed from OPENCONFIRM to ESTABLISHED.
*Jan 23 00:48:51:168 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: 192.168.48.218 MSG ignored: Invalid NEXT_HOP attribute 192.168.49.183,
while recv UPDATE.
根据debug的提示,本端收到路由更新后,认为路由下一跳是无效的,原因是该下一跳地址不是本端和对端建立EBGP邻居关系时使用的地址。正常来讲,关于EBGP路由发布是有约定俗成的规范的:EBGP邻居的BGP路由的下一跳设置为自身向这个EBGP邻居发送BGP报文的源地址(即本端与EBGP邻居建立邻居所使用接口的接口地址)该故障也是对端发给我们的路由下一跳没有改,保持了对端自己路由表的下一跳导致的。
两种方法:
1.本端和对端改用loopback口建立BGP邻居,然后指定连接接口为vlan 48口
2.对端修改bgp下一跳属性为192.168.48.x,例如:
*Jan 23 00:48:51:168 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: Recv UPDATE(Withdraw) from peer 192.168.48.218 for destinations:
192.168.51.0/24 PathID 0 ,
*Jan 23 00:48:51:168 2015 CORE-SW-S9850-E04-E05-39U BGP/7/DEBUG:
BGP.: 192.168.48.218 MSG ignored: Invalid NEXT_HOP attribute 192.168.49.162,
while recv UPDATE.
192.168.48.218向我们发布的去往192.168.51.0/24的路由时,应该把NEXT_HOP修改为192.168.48.218再发布而不是使用192.168.49.162
方法2需要对端做BGP属性的修改;方法1会断开BGP邻居重新建立,选用方法1,需要通过命令peer ebgp-max-hop来指定允许的最大跳数。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作