当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:
BGP的优选规则:
1.优选Preferred-value属性值最大的路由。
2.优选Local_Preference属性值最大的路由。
3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
4.优选AS_Path属性值最短的路由。
5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
6.优选MED属性值最小的路由。
7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
8.优选到Next_Hop的IGP度量值最小的路由。
9.优选Cluster_List最短的路由。
10.优选Router ID (orginator_ID)最小的设备通告的路由。
11.优选具有最小IP地址的对等体通告的路由。
选路的前提条件:任何一条BGP路由在参与优选之前都必须先经过检查。设备会检查BGP路由的next-hop是否可达(在本地路由表中检查),如果不可达,则BGP路由被视为不可用,该路由将无论如何不会被优选,也不会被设备使用或通告给其他对等体。也要求在优选规则之前,还需要保证所有路由的优先级相同。也就是255。
这里介绍这些选路规则,我们就通过实验,查看一下效果就可以了,进行部分策略路由体现我们的选路规则。
针对实验拓扑的一些基本配置,不再讲解。这里仅作一些宣告等操作,看到选路规则即可。
1.优选Preferred-value属性值最大的路由。
在R1上宣告用户网段。
[R1]bgp 100
[R1-bgp]net 192.168.1.0 24
关于去往同一网段的两条路由,R4存在这种现象,但是R2和R3也有两条路由,优选条件不同,则不做查看。
目前网段的preferred-value字段一直,修改一下,实现通过第一条实现选路。
R4通过R3去往192.168.1.0
方案一、全局修改
[R4]bgp 400
[R4-bgp]peer 34.0.0.2 preferred-value 100
明显选路成功
细看:
如果R1再宣告一条
[R1]int l1
[R1-LoopBack1]ip add 192.168.2.1 24
[R1-LoopBack1]q
[R1]bgp 100
[R1-bgp]net 192.168.2.0 24
但是缺陷:全局修改,所有从R3学习到的路由,preferred-value都修改为了100,影响其他的选路。
方案二、精细化修改。
[R4]ip ip-prefix aa permit 192.168.1.0 24
[R4]route-policy aa permit node 10
Info: New Sequence of this List.
[R4-route-policy]if-match ip-prefix aa
[R4-route-policy]apply preferred-value 100
[R4-route-policy]q
[R4]route-policy aa permit node 20
Info: New Sequence of this List.
[R4-route-policy]q
[R4]bgp 400
[R4-bgp]peer 34.0.0.2 route-policy aa import
在查看一下BGP表。
查看选路
结合来看,精细化更好,不会干扰其他的路由选路。
第一条的缺点:preferred-value是华为设备本身自带的,所以仅具有本地意义,仅能在需要改变选路的目的地路由器修改才会生效。
2.优选Local_Preference属性值最大的路由。
R1宣告
[R1]bgp 100
[R1-bgp]net 192.168.1.0 24
和上面一条相似,选择R3学习。
方案一:全局修改
[R3]bgp 234
[R3-bgp]default local-preference 200
依然是那个问题
影响其他路由选路。
方案二:精细化修改
[R3]ip ip-prefix aa permit 192.168.1.0 24
[R3]route-policy aa permit node 10
Info: New Sequence of this List.
[R3-route-policy]if-match ip-prefix aa
[R3-route-policy]apply local-preference 200
[R3-route-policy]q
[R3]route-policy aa permit node 20
Info: New Sequence of this List.
[R3-route-policy]q
[R3]bgp 234
[R3-bgp]peer 4.4.4.4 route-policy aa export
查看R4的BGP路由表
优选R3
详细
和第一条选路规则相比:第二条的配置位置更加的灵活,不受设备的限制,实现的选路的灵活。在线路中更加常用。
3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
这一条的内容比较长,简单来说就是本地由于外部,本地又存在四种不同的选路情况
首先验证本地优于外部
R1和R2都宣告192.168.1.0
[R1]bgp 13
[R1-bgp]net 192.168.1.0
[R3]bgp 13
[R3-bgp]net 192.168.1.0
很明显,本地由于外部
针对本地的路由学习。
[R1]ip route-static 172.16.0.0 24 NULL 0
[R1]ip route-static 172.16.1.0 24 NULL 0
[R1]ip route-static 172.16.0.0 255.255.0.0 NULL0
[R1]bgp 13
[R1-bgp]import-route static
[R1]ip ip-prefix aa permit 172.16.0.0 16
[R1]route-policy aa permit node 10
Info: New Sequence of this List.
[R1-route-policy]if-match ip-prefix aa
[R1-route-policy]apply as-path 100 200 additive
[R1-route-policy]q
[R1]bgp 13
[R1-bgp]aggregate 172.16.0.0 16 attribute-policy aa
[R1-bgp]net 172.16.0.0 16
首先创建两条明细的静态路由,和一条聚合路由,重发布进BGP,172.16.0.0/16---重发布
开启自动聚合,自动聚合两条明细路由,主类聚合。172.16.0.0/16----自动聚合
为了分清自动聚合和手动聚合,进行策略,手动聚合添加了AS_Path 100 200----手动聚合
最后宣告一下路由,172.16.0.0/16----network
最后出现了上面的172.16.0.0/16的上面4条路由条目。
看一下详细情况
所以此条选路,有两层含义。
4.优选AS_Path属性值最短的路由。
这条选路是最为重要的,它肩负着EBGP对等体的防环,所以修改此属性格外需要注意。
R1宣告
[R1]bgp 100
[R1-bgp]net 192.168.1.0
R4查看。
就是简单的选路情况,但是如果修改属性就需要格外注意。
5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
一样在R2和R3上宣告路由
[R2]bgp 23
[R2-bgp]net 192.168.1.0
[R3]bgp 23
[R3-bgp]net 192.168.1.0
R4查看
走R3,做策略
[R2]ip ip-prefix aa permit 192.168.1.0 24
[R2]route-policy aa permit node 10
Info: New Sequence of this List.
[R2-route-policy]if-match ip-prefix aa
[R2-route-policy]apply origin egp 23
[R2-route-policy]q
[R2]bgp 23
[R2-bgp]peer 24.0.0.2 route-policy aa export
做策略也可将起源改为重发布,或者直接重发布宣告亦可。这里不多做演示。
6.优选MED属性值最小的路由。
MED值类似于IGP协议中的cost值,但是传播范围优先,仅能在两个相邻的AS之间传递。
既然和开销值相同,则是越小越优
和上图相同,应该走R2,改为R3上。做策略
[R2]ip ip-prefix aa permit 192.168.1.0 24
[R2]route-policy aa permit node 10
Info: New Sequence of this List.
[R2-route-policy]if-match ip-prefix aa
[R2-route-policy]apply cost 200
[R2-route-policy]q
[R2]bgp 23
[R2-bgp]peer 24.0.0.2 route-policy aa export
R4查看
7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
宣告一下
[R1]bgp 100
[R1-bgp]net 192.168.1.0
[R2]bgp 100
[R2-bgp]net 192.168.1.0
R3查看
8.优选到Next_Hop的IGP度量值最小的路由。
在R1上宣告
[R1]bgp 100
[R1-bgp]net 192.168.1.0
R4查看
详细
9.优选Cluster_List最短的路由。
宣告
[R1]bgp 12345
[R1-bgp]net 192.168.1.0
图上看不出任何区别,查看一下详情
明显走到是R2,且不优的原因给的也是簇列表
10.优选Router ID (orginator_ID)最小的设备通告的路由。
这种是去除第四条之后,经常匹配的
宣告
[R1]bgp 100
[R1-bgp]net 192.168.1.0
R8上查看
这种选路在相邻的As间非常的常见,即使不想图中如此对称也会出现选路问题。也是选取RID小的。
11.优选具有最小IP地址的对等体通告的路由。
宣告
[R1]bgp 100
[R1-bgp]net 192.168.1.0
这11条选路规则,是BGP比较常见也是经常用到的,针对经常用到的修改选路选项是第二条。
且不同的选路规则,要求不同,比如:Local-preference越大越好,MED则是越小越好。所以这些需要大家自行感受。在策略路由这方面,这11条都可以使用策略实现选路的改变,但具体的路由策略需要视情况而定。
11条选路的实验图,仅供参考,方案很多,大家自行体会。