BGP边界网关协议(Border Gateway Protocol)选路、属性(一)
一、简介
当BGP收到到达同一目的地的多条路由时,会根据选路规则选择出最优路由,然后将最优路由下发到IP路由表,指导数据流量转发。在交换机的实现中,当到达同一目的地存在多条路由时,BGP选路的概要过程
注:私网路由选路规则
在交换机的实现中,私网BGP路由选路规则与公网BGP路由选路规则相同。唯一的不同是,相对于公网BGP路由,私网BGP路由需要根据VPN-Target进行路由交叉。
二、环境介绍
在AR1上引入10.1.111.0 /24 的路由信息
AR2:
AR3:
注:AR5做了RR所以此时能看到三条路径
AR5:
1、遗留问题:
此时AR5无法ping通10.1.111.0/24的地址(环路)
解决方案:
通过前缀列表的方式抓住该路由信息,利用路由策略修改下一跳的地址信息实现
[AR5]ip ip-prefix 10.1.111.0 permit 10.1.111.0 24
[AR5-bgp]dis route-policy r5-r4-ex
Route-policy : r5-r4-ex
permit : 10 (matched counts: 1)
Match clauses :
if-match ip-prefix 10.1.111.0
Apply clauses :
apply ip-address next-hop 10.1.2.2
permit : 20 (matched counts: 1)
[AR5-bgp]
[AR5-bgp]dis th
#
bgp 235
ipv4-family unicast
peer 10.1.4.4 route-policy r5-r4-ex export
#
现象:
[AR5-bgp]ping 10.1.111.1
PING 10.1.111.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.111.1: bytes=56 Sequence=1 ttl=253 time=90 ms
Reply from 10.1.111.1: bytes=56 Sequence=2 ttl=253 time=50 ms
Reply from 10.1.111.1: bytes=56 Sequence=3 ttl=253 time=60 ms
Reply from 10.1.111.1: bytes=56 Sequence=4 ttl=253 time=80 ms
--- 10.1.111.1 ping statistics ---
4 packet(s) transmitted
4 packet(s) received
0.00% packet loss
round-trip min/avg/max = 50/70/90 ms
[AR5-bgp]tracert 10.1.111.1
traceroute to 10.1.111.1(10.1.111.1), max hops: 30 ,packet length: 40,press CTRL_C to break
1 10.1.45.4 20 ms 20 ms 10 ms
2 10.1.234.2 50 ms 40 ms 40 ms
3 10.1.123.1 60 ms 70 ms 70 ms
[AR5-bgp]
三、BGP的路由属性
1、分类
(1)公认必循(Well-known mandatory)
AS-PATH、next-hop、Origin
所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。
(2)公认任意(Well-known discretionary)
local-preference、atomic-aggregate
所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。
(3)可选过渡(Optional transitive)
团体属性(community)、aggregator
在AS之间具有可传递性的属性。BGP设备可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体。
(4)可选非过渡(Optional non-transitive)
MED、Orignator ID、Cluster-list
BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。
2、选路的优先级
(1)协议首选值
协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。
当到达同一地址前缀有多条路由时,优先选择首选值大的路由。缺省情况下,从邻居学来的路由的初始首选值为0。
缺省条件下
修改方式:
[AR2]bgp 235
[AR2-bgp]pe
[AR2-bgp]peer 10.1.3.3 preferred-value ?
INTEGER<0-65535> Preference value
[AR2-bgp]peer 10.1.3.3 preferred-value 100
修改后,与上图相比较选路发生了变化,数据的路径也发生的变化。
优点:
通过合理配置协议首选值,可以对数据流量转发路径进行合理规划,立即生效。
缺点:
影响所有来自peer的路由信息,范围较大。
注:协议首选值在使用时只能做入向(import)策略来影响自身的选路,不能做出向(export)
(2)本地优先级
Local_Pref属性用于判断流量离开AS时的最佳路由。本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。
修改本地优先级:
1)配置默认本地优先级
[AR3-bgp]default local-preference ?
INTEGER<0-4294967295> Specify a local preference
[AR3-bgp]default local-preference 200
默认向本设备所有的Ibgp邻居关系发送该属性
AR3发给AR2、AR5所以导致AR2上来自2.2.2.2 和5.5.5.5 路由本地优先级均被修改
AR1和AR3之间建立的EBGP邻居关系,不受本地本地优先级的影响
(3)本地始发
BGP路由有两个来源:本地引入和从邻居学来的路由,其中本地引入路由优先级高于从邻居学来的路由。
-
优选聚合路由(聚合路由优先级高于非聚合路由)。
-
通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic命令生成的自动聚合路由。
-
通过network命令引入的路由的优先级高于通过import-route命令引入的路由。
总结:手动聚合>自动聚合>network>import