拓扑
R1 - R4之间的网段是10.0.0.0/8
需要:R1(172.16.1.0)<->R2(172.16.2.0)走RIP的那条线路(后门),其余走MA网段,也不允许来自R3或者R4的流量走这条专线。
由于EBGP的管理距离是20,因此,R1的路由表中,去往R2的172.16.2.0/24是走MA网段
R1#sh ip route
172.16.0.0/24 is subnetted, 2 subnets
C172.16.1.0 is directly connected, Loopback0
B172.16.2.0 [20/0] via 10.0.0.2, 00:07:19
由于是管理距离影响了选路,于是在R1上把EBGP收到的路由,变成IBGP
R1#sh run | s bgp
router bgp 1
network 1 72.16.2.0 mask255.255.255.0
执行完这个network语句后,一定要清一次路由表才能生效clear ip route bgp *
R1#sh ip route
172.16.0.0/24 is subnetted, 2 subnets
C172.16.1.0 is directly connected, Loopback0
R172.16.2.0 [120/1] via 12.1.1.2, 00:00:11,FastEthernet0/1
原本是B的路由,现在变成了R开头
但现在R1用network宣告了这条路由,R3和R4都能收到,他们会纳入到自己的拓扑表中
R3#sh ip bgp
NetworkNextHopMetric LocPrf Weight Path
*172.16.2.0/2410.0.0.110 1i
*10.0.0.20 4 2 i
*>10.0.0.200 2 i
尽管没有加入路由表,当拓扑表中确实有这条路由,一旦R2的10.0.0.0/8的接口失效,那么所有去往R2Loopback接口的流量都会跑到R1去转发。
为了解决这个问题,可以在R1的network语句后面加backdoor(思科专有)
R1(config-router)#network 172.16.2.0 mask 255.255.255.0backdoor
那么,这条语句仅仅会影响本地的管理距离,而不会宣告出去。