上图中AR1,AR2在AS100中;AR3,AR4在AS200中;BGP邻居关系的建立如上图所示。
(1)此时发现AR2,AR4之间的EBGP邻居关系没有正常建立,你该如何排查这个故障,详细写出排查步骤和过程。
从下层协议往上层协议排障:
1、 使用ping -a 测试,先查看建立邻居的接口地址是否可达,物理链路是否连通(确保物理链路和IP地址无误)如果故障则执行步骤2,3
2、 查看接口物理层是否up,如果否则查看链路或者接口板卡问题
3、 查看路由表,是否存在目的接口的路由信息,如果没有则查看底层协议是否运行,或者接口地址是否配置正确,有路由且能够ping通则执行步骤4
4、 查看BGP状态机和邻居是否能正确建立,已经查看TCP链路是否正确
① 查看是否配置了认证,导致TCP无法建立
② 查看是否针对TCP进行了过滤,或者禁用了179协议号
查看BGP的配置信息,或者差错信息
① 是否配置了相同的router id
② 是否peer 的 AS number 与接收的不一致(是否存在指定错误的AS)
③ 地址簇是否一致
5、 查看EBGP是否使用loopback或者非直连接口建立邻居
① 使用loopback和非直连接口建立邻居,需要指定更新源
② EBGP需要指定多跳
(2)AR1上的直连路由被引入到BGP协议中,此时发现AS200内的设备无法学到11.1.1.0/30的BGP路由,你认为可能存在的故障原因是什么?当问题解决之后,AS100的管理员希望控制AS200访问本AS的流量从AR3走,你该如何控制路由的选路,为什么采用这种方式控制选路?
1. 查看是否存在路由过滤:
AR1引入路由时,是否存在路由过滤filter-policy
AR3和AR4接收时,是否存在路由过滤filter-policy
2. AS200设备配置了路由震荡,并且到达了抑制阈值
3. AR1是否开启了BGP同步,但未达到要求
4. AR1引入路由时是否配置了Route-policy 进行了路由限制
5. AS 200 设备是否配置了路由条目抑制,并到达上限 route limit
对于选路控制,有如下方式:
通过BGP选路属性可得R4从EBGP邻居R2学到的10.1.1.1/32的网络优于从IBGP邻居R3学来。当前需要在AS100上操作使得R4访问该网络走R3-R1路径。
方案一:在R2针对R4 BGP对等体的出方向上使用MED影响选路,加大MED值为100
从而使得AR3和AR4优先使用从AR1传递的路由
在R2的BGP进程下peer 24.1.1.4 route policy set-med export
其中Route-policy set-med的配置为:
route-policy set-med permit node 10
apply cost 100
方案二:在R2 peer R4的出方向上通告路由时延长自己的AS-number,从而使得AR3和AR4使用AR1传递的路由,因为AS-Path更短而被优选
在R2的BGP进程下peer 24.1.1.4 route-policy set-as export
其中Route-policy set-as的配置为:
route-policy set-as permit node 10
apply as-path 100 additive
方案三:在R1 peer R3的出方向上通告路由时修改路由的Origin属性,从而使得AR3和AR4使用AR1传递的路由,因为AR1是通过引入直连路由的方式学习到11.1.1.1/32直连路由的,所以Origin属性为incomplete。当AR1传递路由给AR3时修改属性为 IGP或EGP则会优于另一方向学习的路由,从而使得AR3和AR4优选AR1传递的路由。
在R1的BGP进程下peer 13.1.1.3 route-policy set-origin export
其中Route-policy set-origin的配置为:
route-policy set-origin permit node 10
apply origin egp 100
或者 apply origin igp