BGP基础-路径属性
Update报文如下
公认必遵属性一:Origin标识了BGP路由的起源
- Origin属性为公认必遵属性,它标识了BGP路由的起源。如上表所示,根据路由被引入BGP的方式不同,存在三种
类型的Origin
- 当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的
下顺序优选路由:IGP > EGP > Incomplete
在BGP路由表在Ogn项下用i ? e符号进行标记,如下截图
公认必遵属性二:AS_Path
- AS_Path该属性描述前往目标路由经过的AS号列表
- 作用:确保路由在EBGP之间传递无环路,也是作为最优路由的衡量标准之一
- AS_Path号只有经过EBGP对等体时才会追加本区域的AS号;经过IBGP对等体时,AS_Path不会发生改变
已上图的实验背景为例。AR5路由器到达10.1.1.1路由条目路径有两条AS5-AS4-AS1和AS5-AS3-SA1;正常情况下AR2路径为最优路径,AR3为次优路径。最优路径AS_Path属性为300 100i,次优路径AS_Path属性为500 200 100i。如下截图所示
使用策略修改AS属性有三种方式:
实验验证一:追加AS_Path,修改次优路径
目标:将AR5前往10.1.1.1的最优路径AR5-AR4-AR1修改为次优路径
方法一:在AR1或者AR4路由出方向追加AS_Path
[AR4]ip ip-prefix ar1 permit 10.1.1.1 32 greater-equal 32 less-equal 32
[AR4]ip ip-prefix ar2 index 10 permit 1.1.1.1 32 greater-equal 32 less-equal 32
[AR4]route-policy ar1 permit node 10 [AR4-route-policy]if-match ip-prefix ar1 [AR4-route-policy]apply as-path 600 700 additive
[AR4]route-policy ar1 permit node 2 [AR4-route-policy]if-match ip-prefix ar2 [AR4-route-policy]q
#配置路由策略:只针对10.1.1.1路由修改AS_Path,其余路由路径属性不变
[AR4]bgp 300
[AR4-bgp]peer 10.1.45.5 route-policy ar1 export
在BGP路由出方向应用策略
验证结果截图:在AR5查看BGP路由表,最优路径已修改为AR5-AR3-AR2-AR1路径
配置生效后的AR5的抓包信息
第一条UPDATA报文:
第二条UPDATA报文
AR4发送AR5更新报文中会说明更新的路由条目信息,来源,AS_Path路径信息,AR5访问1.1.1.1的下一跳地址是AR4的出口地址
第三个UPDATA报文
在AR5收到AR4关于10.1.1.1更新报文后,自身BGP路由表中关于10.1.1.1最优路径改变成AR5-AR3-AR2-AR1路径。会发送最新访问10.1.1.1路径信息给邻居。
方法二:在AR5接受路由入方向应用路由策略修改AS_Path
AR5配置策略如下
[AR5]ip ip-prefix ar1 index 10 permit 10.1.1.1 32 greater-equal 32 less-equal 32 [AR5]acl 2001 [AR5-acl-basic-2001]rule 10 permit source any #写路由的匹配规则 [AR5]route-policy ar1 permit node 10 [AR5-route-policy]if-match ip-prefix ar1 [AR5-route-policy]apply as-path 600 700 additive #配置名称为ar1,节点10的策略;引用ar1匹配规则 [AR5]route-policy ar1 permit node 20 [AR5-route-policy]if-match acl 2001 #配置名称为ar1,节点20的策略;引用访问控制列表ACL 2001匹配规则 #代表只针对10.1.1.1路径属性AS_Path修改;其他路由条目信息不变 [AR5]bgp 400 [AR5-bgp]peer 10.1.45.4 route-policy ar1 import #应用在路由传入方向
验证结果截图:在AR5查看BGP路由表,最优路径已修改为AR5-AR3-AR2-AR1路径
实验验证二:替换AS_Path新值
初始状态下,前往10.1.1.1最优路径是AS300-AS100路线
可以通过overwrite替换新的AS_Path的方式修改,配置与验证一配置相同,在apply动作改为overwrite
[AR5]ip ip-prefix ar1 index 10 permit 10.1.1.1 32 greater-equal 32 less-equal 32
[AR5]acl 2001
[AR5-acl-basic-2001]rule 10 permit source any
#写路由的匹配规则
[AR5]route-policy ar1 permit node 10
[AR5-route-policy]if-match ip-prefix ar1
[AR5-route-policy]apply as-path 600 700 800 900 overwrite
#配置名称为ar1,节点10的策略;引用ar1匹配规则
[AR5]route-policy ar1 permit node 20
[AR5-route-policy]if-match acl 2001
#配置名称为ar1,节点20的策略;引用访问控制列表ACL 2001匹配规则
#代表只针对10.1.1.1路径属性AS_Path修改;其他路由条目信息不变
[AR5]bgp 400
[AR5-bgp]peer 10.1.45.4 route-policy ar1 import
#应用在路由传入方向
结果验证:配置生效后,BGP路由表中的属性会按照新的AS_Path显示
连通性测试结果:正常通信
实验验证三:清空AS_Path方式修改路径属性,配置基本相同,apply后面参数不同。不做记录
公认必遵属性三——NEXT_HOP
• NEXT_HOP是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
• 当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值(IP地址)必须
在本地路由可达,如果不可达,则这条BGP路由不可用。
AR5路由与AR2路由器单纯建立BGP对等体关系
AR2路由器与AR5路由器对等体配置
AR2路由器BGP路由表从EBGP对等体学习到1.1.1.1路由条目。该条目会传输给IBGP对等体AR5
AR5路由器上BGP学习到1.1.1.1路由,但是该路由条目不可用;
因为1.1.1.1路由的下一跳地址是AR1路由器接口地址,AR5路由器路由无法到达202.102.1.1,所以该路由不可用,不收录到路由表中
实现AR5学习到1.1.1.1有效路由,需要AR2将1.1.1.1路由的针对所以IBGP路由器的NEXT_TOP下一跳属性修改为自身的接口地址;
添加配置如下
[AR2-bgp]peer 3.3.3.3 next-hop-local [AR2-bgp]peer 4.4.4.4 next-hop-local [AR2-bgp]peer 5.5.5.5 next-hop-local
AR5路由器BGP路由表中1.1.1.1下一跳地址AR2的Loopback0地址。
公认任意属性之一:Local_Prefernce
• Local_Preference即本地优先级属性,是公认任意属性,通告同一AS内的路由器,哪条路径是离开本AS的首选路径。
• Local_Preference属性值越大则BGP路由越优。缺省的Local_Preference值为100。
• 该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体
实验验证一:通过Route-policly在AR10路由器改变Local_Preference,使前往7.7.7.7路由下一跳地址为8.8.8.8
AR10路由器的配置
[AR10]ip ip-prefix r7 index 10 permit 7.7.7.7 32 greater-equal 32 less-equal 32 [AR10]ip ip-prefix r8 index 10 permit 0.0.0.0 0 greater-equal 0 less-equal 0 #匹配条件 [AR10]route-policy a7 permit node 10 [AR10-route-policy]if-match ip-prefix a7 [AR10-route-policy]apply local-preference 200 #匹配条件应用到Route-policy的第10条策略 [AR10]route-policy a7 permit node 20 [AR10-route-policy]if-match ip-prefix r8 #匹配条件应用到Route-policy的第20条策略 [AR10]bgp 200 [AR10-bgp]peer 8.8.8.8 route-policy a7 import #策略应用到BGP接受AR8路由器路由的入方向
策略生效后,7.7.7.7路由条目下一跳8.8.8.8Local_preference优先值变为200,200大于100,所以优先走AR8路由器
除了增大8.8.8.8的优先值外,还可以减小9.9.9.9优先值;或者在AR8,AR9出方向引用对应的减小或增大优先值的策略
公认任意属性之二:Atomic_Aggregate
Atomic_Aggregate:该标记代表手动聚合BGP路由条目;收到该聚合条目的设备无法学习聚合路由的详细路由条目。
UPDATA报文如下:
AS100路由器聚合路由配置如下:
[AS100-bgp]aggregate 172.16.0.0 23 detail-suppressed as-set #在BGP配置视图下,aggregate 手动聚合命令 #detail-suppressed 抑制明细路由 #as-set 继承明细路由的AS路径属性
查看AS400路由器路由表,路由表只学习172.16.0.0/23 聚合路由条目;172.16.0.0/24和172.16.1.0/24的详细路由已抑制无法学习
AS400路由器查看BGP路由表172.16.0.0/23的详细路由条目;带有Atomic_Aggregate标识,做聚合路由设备的AS号,设备ID信息
可选过度属性之一:Aggregator
Aggregator聚合路由都会带有的标记,标明了做聚合路由配置的路由器的AS号,设备ID信息