BGP路径属性详解
前言
当一条BGP路由被BGP路由器更新给其对等体时,这条BGP路由会携带多个路径属性值(Path Attributes)一并传递给对等体。BGP的这些路径属性影响BGP的路由优选。它们的存在使得BGP的路由策略能力异常强大。
一. 路径属性分类
1.公认属性Well-Known
公认必遵属性Well-known mandatory
公认自由决定属性Well-known discretionary
2. 可选属性Optional
可选传递的Optional non-transitive
可选非传递的Optional non-transitive
二.部分属性介绍
1.Preferred-Value
华为私有的路径属性,相当于路由的权重值,取值范围∶O~65535;该值越大,则路由越优先。
Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传播给任何BGP对等体。路由器本地始发的BGP路由默认的Preferred-Value为0,从其他BGP对等体学习到的路由默认Preferred-Value也为0.
2.Local-Preference
也即本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径。Local_Preference属性值越大则BGP路由越优。缺省的Local_Preference值为100。
该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。
Local_Preference注意事项
Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP复制(本高亮专划线门划词翻译3(编辑文学
属性中携带了Local_Preference,则会触发Notifacation报文,造成会话中断;
但是可以在AS边界路由器上使用lmport方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。
使用bgp default local-preference命令修改缺省Local_Preference值,该值缺省为100。
路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺省Local_Preference值( 100),然后再将路由传递给自己的IBGP对等体。·本地使用network命令引入及重发布引入的路由,Local_Preference为缺省值100,并能在AS内向其他IBGP对等体传递,传递过程中除非受路由策略影响,否则Local_Preference不变。
3.AS-Path
该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表;
作用︰确保路由在EBGP对等体之间传递无环﹔另外也作为路由优选的衡量标准之一;
路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号﹔路由被通告给IBGP对等体时,AS-path不会发生改变。
AS-Path四种类型
5.Origin
6.MED
MED (Multi Exit Discriminator )是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径。MED属性值越小则BGP路由越优。
MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性。
关于MED的一些注意事项
缺省情况下,路由器只比较来自同一相邻AS的BGP路由的MED值,也就是说如果去往同一个目的地的两条路由来自不同的相邻AS,则不进行MED值的比较。
一台BGP路由器将路由通告给EBGP对等体时,是否携带MED属性,需要根据以下条件进行判断(不对EBGP对等体使用策略的情况下)∶
如果该BGP路由是本地始发(本地通过network或import-route命令引入)的,则缺省携带MED属性发送给EBGP对等体。
如果该BGP路由是从其他BGP对等体学习过来的,那么将该路由通告给EBGP对等体时不携带MED。。在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED值在传递过程中不发生改变也不会丢失。
7…Next_Hop
该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值(IP地址)必须在本地路由可达,如果不可达,则这条BGP路由不可用。
在EBGP及IBGP对等体的场景中,Next_Hop的缺省操作是存在差异的。
三.BGP路由优选规则概览
四.BGP路径属性配置实验
一.按实验要求完成1, 2 ,3 的配置
R1的配置
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip a 10.0.0.1 24
[R1-GigabitEthernet0/0/0]int l 1
[R1-LoopBack1]ip a 100.1.1.1 24
[R1]bgp 100
[R1-bgp]pe 10.0.0.2 as
[R1-bgp]pe 10.0.0.2 as-number 300
[R1-bgp]network 100.1.1.0 24
R2的配置
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip a 20.0.0.1 24
[R2-GigabitEthernet0/0/0]int l 1
[R2-LoopBack1]ip a 100.1.1.1 24
[R2]bgp 200
[R2-bgp]pe 20.0.0.2 as 300
[R2-bgp]network 100.1.1.0 24
R3的配置
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip a 10.0.0.2 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip a 30.0.0.1 24
[R3-GigabitEthernet0/0/1]int l 0
[R3-LoopBack0]ip a 3.3.3.3 32
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 30.0.0.0 0.0.0.255
[R3]bgp 300
[R3-bgp]pe 5.5.5.5 as 300
[R3-bgp]pe 5.5.5.5 connect-interface l 0
[R3-bgp]pe 10.0.0.1 as 100
[R3-bgp]pe 5.5.5.5 next-hop-local
R4的配置
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip a 20.0.0.1 24
[Huawei-GigabitEthernet0/0/1]ip a 20.0.0.2 24
[Huawei-GigabitEthernet0/0/1]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip a 40.0.0.1 24
[Huawei-GigabitEthernet0/0/0]int loopback 0
[Huawei-LoopBack0]ip a 4.4.4.4 32
Huawei]ospf 1 router-id 4.4.4.4
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]net 40.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4]bgp 300
[R4-bgp]peer 5.5.5.5 as 300
[R4-bgp]peer 5.5.5.5 co l 0
[R4-bgp]pe 20.0.0.1 as 200
[R4-bgp]pe 5.5.5.5 next-hop-local
R5的配置
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip a 30.0.0.2 24
[R5-GigabitEthernet0/0/0]int g0/0/1
[R5-GigabitEthernet0/0/1]ip a 40.0.0.2 24
[R5-GigabitEthernet0/0/1]int l 0
[R5-LoopBack0]ip a 5.5.5.5 32
[R5-LoopBack0]q
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]net 30.0.0.0 0.0.0.255
[R5-ospf-1-area-0.0.0.0]net 40.0.0.0 0.0.0.255
[R5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0
[R5]bgp 300
[R5-bgp]pe 3.3.3.3 as 300
[R5-bgp]pe 4.4.4.4 as 300
[R5-bgp]pe 4.4.4.4 co l 0
[R5-bgp]pe 3.3.3.3 co l 0
完成以上配置查看路由表的状态,可以看出下一跳为3.3.3.3的链路当选
<R5>dis bgp routing-table
BGP Local router ID is 30.0.0.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 100.1.1.0/24 3.3.3.3 0 100 0 100i
* i 4.4.4.4 0 100 0 200i
下面进行手工配置路径属性修改
【1】配置preferred-Value
配置4.4.4.4链路优先级为200
[R5-bgp]peer 4.4.4.4 preferred-value 200
此时可以看出4.4.4.4链路当选最优,因为prefval 为200
【2】配置Local_Preference
UNDO掉之间的设置,再设置 R4的 local-preference 为200
[r4-bgp]default local-preference 200
通过路由表可以看出,此时4.4.4.4链路当选的原因是 local-preference 为200比较高
【3】As_Path
R5]acl 200
^
Error: Wrong parameter found at '^' position.
[R5]acl 2000
[R5-acl-basic-2000]rule permit source 100.1.1.0 0.0.0.255
[R5-acl-basic-2000]q
[R5]route-policy huawei permit n
[R5]route-policy huawei permit node 10
Info: New Sequence of this List.
[R5-route-policy]if-match acl 2000
[R5-route-policy]apply as-path 400 add
[R5-route-policy]apply as-path 400 additive
[R5-route-policy]q
[R5]route-policy huwei permit node 1000
Info: New Sequence of this List.
[R5-route-policy]q
[R5]bgp 300
[R5-bgp]pe 3.3.3.3 route-p
[R5-bgp]pe 3.3.3.3 route-policy huawei imp
[R5-bgp]pe 3.3.3.3 route-policy huawei import
观察路由表可以看出R3的As-path 为100,400
[4]配置origin
分别再R3和R3上配置LOOPback1 IP地址为60.0.0.1/24 ,R3方式为之连引入,R4为Network 方式,观察路由表如下
r3]int l 1
[r3-LoopBack1]ip a 60.0.0.1 24
[r3]bgp 300
[r3-bgp]import-route direct
[r4]int l 1
[r4-LoopBack1]ip a 60.0.0.1 24
[r4]bgp 300
[r4-bgp]network 60.0.0.0 24
可以看出IGP优选大于INCOMPLETE
[5]MED
[R5]route-policy ww permit node 10
[R5-route-policy]apply cost 200
[R5-route-policy]q
[R5]route-policy ww permit node 200
[R5]bgp 300
[R5-bgp]peer 3.3.3.3 route-policy ww import
[R5-bgp]dis bgp routing-table //开启MED识别