1. AS65005发往AS65001:到达R1-1.1.1.0/24 经过R3;R1-10.10.10.0/24 经过R2和R4;
2. AS65001发往AS65005:到达R7-7.7.7.0/24 经过R3;R7-70.70.70.0/24 经过R2和R4;
3. 只允许在R5、R6上做策略,达到需求。
实验心得:
R1#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 0.0.0.0 0 32768 i
*> 7.7.7.0/24 12.1.1.2 0 65002 65004 65005 i
*> 10.10.10.0/24 0.0.0.0 0 32768 i
*> 70.70.70.0/24 12.1.1.2 0 65002 65004 65005 i
* 13.1.1.3 0 65003 65005 65005 65005 i
//虽然满足了基本需求,但是在R1上发现,到达7.7.7.0/24选择的是12.1.1.2(R2),这是不合理的,因为它完全可以走路径更优的。
在R3,经过查看,可以发现R1和R3分别从自己的邻居R3、R5那里只学到了1个网段。
R1#
show ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down
State/PfxRcd
12.1.1.2 4 65002 22 22 5 0 0 00:02:02 2
13.1.1.3 4 65003 24 22 5 0 0 00:02:01
1
R3#show ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down
State/PfxRcd
13.1.1.1 4 65001 63 69 17 0 0 00:03:06 4
35.1.1.5 4 65005 39 57 17 0 0 00:05:28
1
那问题出现在哪里呢?也只能出现在R5上了,show run发现R5的route-map默认隐含了deny any,也就是说R5拒绝掉了本该继续通告给R3的关于7.7.7.0/24网段的路由,所以才会出错。
(R5 show run部分消息:
access-list 10 permit 70.70.70.0 0.0.0.255
!
route-map as-path permit 10
match ip address 10
set as-path prepend 65005 65005
!
control-plane)
修改route-map:R5(config)#route-map as-path permit 20
而且R5#clear ip bgp *否则依然看不到。
R3#show ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
13.1.1.1 4 65001 93 100 22 0 0 00:29:13 3(至少等于2)
35.1.1.5 4 65005 71 92 22 0 0 00:01:47
3(至少等于2)
R3#
R1#show ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
12.1.1.2 4 65002 76 80 11 0 0 00:28:43 2(至少等于2)
13.1.1.3 4 65003 99 92 11 0 0 00:28:43
2(至少等于2)
R1#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 0.0.0.0 0 32768 i
*> 7.7.7.0/24 13.1.1.3 0 65003 65005 i
* 12.1.1.2 0 65002 65004 65005 i
*> 10.10.10.0/24 0.0.0.0 0 32768 i
* 70.70.70.0/24 13.1.1.3 0 65003 65005 65005 65005 i
*> 12.1.1.2 0 65002 65004 65005 i
R1#traceroute 7.7.7.7 sou 1.1.1.1
Type escape sequence to abort.Tracing the route to 7.7.7.7
1 13.1.1.3 60 msec 232 msec 60 msec
2 35.1.1.5 128 msec 180 msec 144 msec
3 57.1.1.7 176 msec 140 msec 232 msec
R1#traceroute 70.70.70.70 sou 1.1.1.1
Type escape sequence to abort.Tracing the route to 70.70.70.70
1 12.1.1.2 72 msec 168 msec 120 msec
2 24.1.1.4 208 msec 116 msec 56 msec
3 46.1.1.6 256 msec 120 msec 224 msec
4 67.1.1.7 220 msec 216 msec 196 msec
测试,这样才能算完整的达到了需求。
//同样地,在Local-prf这里也会出现情况:
R6#show ip bgp sum
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
46.1.1.4 4 65004 52 55 36 0 0 00:10:29
1(只有一个)
56.1.1.5 4 65005 50 40 36 0 0 00:30:56 1
67.1.1.7 4 65005 39 45 36 0 0 00:15:36 2
R6上show run 发现,route-map有问题。。。
access-list 10 permit 10.10.10.0 0.0.0.255
!
route-map localprf permit 10
match ip address 10
set local-preference 300
!
control-plane
//虽然说R6从BGP邻居只收到了一个网段,并不影响达到需求,但是这个问题在R3、R5之间就不是那么容易了。
修改route-map,添加R6(config)#route-map localprf permit 20
R6#clear ip bgp *
R6#show ip bgp sum
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
46.1.1.4 4 65004 60 64 7 0 0 00:00:40
2(至少两个)
56.1.1.5 4 65005 62 48 7 0 0 00:00:40 1
67.1.1.7 4 65005 50 53 7 0 0 00:00:40 2
感谢Node-刘老师。