1.实验目的
默认情况下,在至同一个NLRI有多条路径的情况下,BGP会按照N WLLAOMNI的顺序,选择最优的一条路径。N:next-hop reachable,下一跳是否可达;W:weight权重,思科私有;L:local-pref本地优先级;L:locally injected routes,基本消失的参数;A:AS-PATHlength,忽略AS-CONFED-SET和AS-CONFED-SEQ,将AS-SET作为1个ASN;O:origin,i>?;M:multi-exit-discrimator,MED值;N:neighbor type,邻居类型,eBGP>iBGP;I:IGP metric,
教科书解释是指到达BGP路由下一跳的IGP路由开销(有所怀疑,将在实验中确认)。
在上述判断仍未选出最优路由时,再按照eBGP路由先到优先、最小RID、最小neighbor ID的顺序进行比较。在此3项判断中,虽然BGP仍会选出1条最优的路由,并仅将此路由向邻居通告,但设备会根据BGP进程中maximum-paths的设置,决定将至同一个NLRI的N条BGP路径中的几条写入路由RIB。
2.实验结果
搭建如图所示的模拟网络,AS内运行OSPF协议,R4将环回地址4.4.4.4在BGP中发布(network),R2和R3将R5的环回地址2.5.5.5在BGP中发布(network)。R1将两个局域网以及与R6的互联地址在BGP中发布。
(1)R1至R4有两条等价的BGP路由。
按照优选顺序,R1会选取具有最小RID的R3作为BGP优选。此时在R1上,将maximum-paths设置为2,优选情况不发生变化,但在R1的路由表中,两条路由全被写入,如表7所示。
默认情况下,思科路由器采用的负载均衡模式为per-destination(也称作逐流),算法为universal全局算法,思科教材说明,此算法使用hash算法,对数据包的源地址、目的地址、随机生成的4字节数字(universal id)进行计算,获取哈希值进而进行选路。
分别从PC1、PC2、PC3和R6上trace R4的环回地址,并观察经过R1后下一跳的情况,如表8所示。从测试情况看,不同来源的测试包到达R1后,有经过不同路径的情况,证明R1路由表中的两条路由均起作用。但在负载均衡随机选路上,与教科书的说明略有不同。教科书上说明,在路由器内有不可见的load-sharing表,内有16个指针,在有n条ECMP的情况下,每条路径分配(16 MOD (N))个指针。举例,如有2条ECMP,则每条8个指针;有3条ECMP,则每条5个指针。个人认为,应是哈希值相同,指针相同,路径相同;哈希值不同,指针不同,但路径有可能相同。
表7 R1路由器BGP及路由表情况
R1#sh ip bgp 4.4.4.4 BGP routing table entry for 4.4.4.4/32, version 4 Paths: (2 available, best #2, table default) Multipath: eBGP Advertised to update-groups: 3 Refresh Epoch 2 2 3 10.0.0.14 from 10.0.0.14 (3.3.3.3) Origin IGP, localpref 100, valid, external, multipath(oldest) rx pathid: 0, tx pathid: 0 Refresh Epoch 2 2 3 10.0.0.2 from 10.0.0.2 (2.2.2.2) Origin IGP, localpref 100, valid, external, multipath, best rx pathid: 0, tx pathid: 0x0 !!!!在R1上查看路由表 R1#sh ip route B 4.4.4.4 [20/0] via 10.0.0.14, 01:11:47 [20/0] via 10.0.0.2, 01:11:47 |
表8 下一跳情况统计
PC1> trace 4.4.4.4 trace to 4.4.4.4, 8 hops max, press Ctrl+C to stop 1 1.0.2.254 15.601 ms 15.600 ms 15.600 ms 2 10.0.0.2 46.800 ms 46.800 ms 46.800 ms 3 *10.0.0.6 78.000 ms (ICMP type:3, code:3, Destination port unreachable) PC2> trace 4.4.4.4 trace to 4.4.4.4, 8 hops max, press Ctrl+C to stop 1 1.0.1.254 15.600 ms 15.600 ms 15.600 ms 2 10.0.0.14 31.201 ms 46.800 ms 46.800 ms 3 *10.0.0.9 78.000 ms (ICMP type:3, code:3, Destination port unreachable) PC3> trace 4.4.4.4 trace to 4.4.4.4, 8 hops max, press Ctrl+C to stop 1 1.0.1.254 15.600 ms 15.600 ms 15.600 ms 2 10.0.0.14 46.800 ms 46.800 ms 46.800 ms 3 *10.0.0.9 78.000 ms (ICMP type:3, code:3, Destination port unreachable) R6#traceroute 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 VRF info: (vrf in name/id, vrf out name/id) 1 10.0.0.25 32 msec 20 msec 40 msec 2 10.0.0.14 64 msec 64 msec 52 msec 3 10.0.0.9 80 msec 100 msec 96 msec !!!此时R1的负载均衡设置 R1#sh cef state CEF Status: RP instance common CEF enabled IPv4 CEF Status: CEF enabled/running dCEF disabled/not running CEF switching enabled/running universal per-destination load sharing algorithm, id 9923FA95 |
(2)在R1上观察R5的环回地址路由信息。
通过debug信息,R1分别从R2和R3接收到了关于2.5.5.5的update信息,但metric值不同,根据选取顺序“I”,优选了metric值小的R3作为下一跳。同时,由于并未进行到最后3个判断步骤已优选了BGP路由,并不会受maximum-path设置的影响,只是将1条BGP路由写入的RIB。这和4.4.4.4的updates形成了对比,如图9所示。
表9 R1上BGP updates情况
!!!R1接收到的4.4.4.4的updates以及路由表写入情况 *Dec 30 17:08:07.175: BGP(0): 10.0.0.14 rcvd UPDATE w/ attr: nexthop 10.0.0.14, origin i, merged path 2 3, AS_PATH *Dec 30 17:08:07.179: BGP(0): 10.0.0.14 rcvd 4.4.4.4/32 *Dec 30 17:08:07.195: BGP(0): 10.0.0.2 rcvd UPDATE w/ attr: nexthop 10.0.0.2, origin i, merged path 2 3, AS_PATH *Dec 30 17:08:07.195: BGP(0): 10.0.0.2 rcvd 4.4.4.4/32 *Dec 30 17:08:36.803: BGP(0): Revise route installing 1 of 2 routes for 4.4.4.4/32 -> 10.0.0.2(global) to main IP table *Dec 30 17:08:36.803: BGP(0): Revise route installing 2 of 2 routes for 4.4.4.4/32 -> 10.0.0.14(global) to main IP table !!!R1接收到的2.5.5.5的updates以及路由表写入情况 *Dec 30 17:08:07.183: BGP(0): 10.0.0.14 rcvd UPDATE w/ attr: nexthop 10.0.0.14, origin i, metric 2, merged path 2, AS_PATH *Dec 30 17:08:07.191: BGP(0): 10.0.0.14 rcvd 2.5.5.5/32 *Dec 30 17:08:07.195: BGP(0): 10.0.0.2 rcvd UPDATE w/ attr: nexthop 10.0.0.2, origin i, metric 3, merged path 2, AS_PATH *Dec 30 17:08:07.195: BGP(0): 10.0.0.2 rcvd 2.5.5.5/32 *Dec 30 17:08:36.799: BGP(0): Revise route installing 1 of 1 for 2.5.5.5/32 -> 10.0.0.14(global) to main IP table
|