BPG边界网关协议知识

  • BGP路径属性
  • BGP技术背景
  • BGP路径属性分类
  • BGP选路原则
  • BGP属性选路配置-local-preference(数值越大越优先)
  • BGP属性选路配置AS-path(越短越优先)
  • BGP属性选路配置MED(越小越优先)


BGP路径属性

当一条BGP路由被BGP路由器更新给其对等体时,这条BGP路由路由会携带多个路径属性值(path attributes)一并传递给对等体,BGP的这些路经属性,将影响BGP的路由优选,它们的存在使得BGP的路由策略能力异常强大

BGP12条路由优选规则
1.优选具有最大preferred-value的路由
2.优选具有最大LOCAL PREFERENCE的路由
3.优选起源于本地的路由
4.优选AS-path最短的路由
5.origin(IGP>EGP>incomplete)
6.优选MED最小的路由
7.优选EBGP对等体所有通告的路由
8.优选到next-hop的IGP度量值的路由
9.BGP路由负载分担
10.优选cluster-list 最短的路由
11.优选router-id 最小的BGP对等体发来的路由
12.选优peer-ip地址最小的对等体发来的路由

BGP技术背景

1.当BGP设备学习到去往同一目的网络的多条BGP路由时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优的路由,将该路由加载到全局路由表中,作为数据转发的依据
2.当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体
3.BGP定义了一系列路由优选规则,从而使得设备能够在多条路有中选择最优的路由。BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面比较
4.BGP的选路规则与BGP路径属性与路由策略息息相关,它们使得BGP拥有了强大的路由操控能力

BGP路径属性分类

公认属性
★公认必遵属性—所有的BGP实现都必须都能识别,且在update报文中必须携带(AS路径、下一条next-hop、起源origin)
★公认自由决定属性—所有的BGP实现都必须都能识别,单不要求必须包含在update报文中(本地优先级local preferent)
可选属性
★可选传递的—设备可以不支持该属性,但即使不支持,也应当接受包含该属性的路由并传递给其他对等体(团体属性community)
★可选非传递的—设备可以不支持该属性,不识别的BGP进程忽略包含这个属性的路由更新,并且不传递给其他BGP对等体(MED)

BGP选路原则

1.如果此路由的下一跳不可达,忽略路由
2.preferred-value 数值越高越优先,华为私有属性,仅本地有意义
3.local-preference值最高的路由优先
4.聚合路由优先非聚合路由
5.本地手动聚合路由的优先级高于本地自动聚合的路由
6.本地通过network命令引入的路由的优先级高于本地通过import-router命令引入的路由
7.AS-path的长度最短的路径优先
8.比较origin属性,IGP优先EGP,EGP优先incomplete
9.选择MED较小的路由
10.EBGP路由优先于IBGP
11.BGP优先选择到BGP下一跳的IGP度量值最低的路径
当以上全部相同,则为等价路由,可以负载分担(注意:AS-path 必须一致,当负载分担时,以下3条原则无效)
12.比较cluster-list长度,短者优先
13.比较originator-id (如果没有originator-id,则用router-id比较)选择数值较小的路径
14.比较对等体的IP地址,选择IP地址数值最小的路径

BGP属性选路配置-local-preference(数值越大越优先)

1.根据local-preference控制选路(数值越大越优先)
★它为公认自由属性,用于告诉AS中 的路由,哪条路径是离开AS的首选路径
★local-preference属性只能在IBGP对等体间传递,不能在EBGP对等体间传递,如果EBGP对等体间收到的路由的路径属性中携带了local-preference,则会触发notification报文中,造成会话中断
★但是可以在AS边界路由器上使用import方向的策略来修改local-preference属性值,也就是在收到路由之后,在本地为路由赋予local-preference

【路由器】router-policy lop permit node 10 创建名为LOP 的路由策略
【路由器】apply local-preference 200 设置本地优先级为200
【路由器】quit
【路由器】bgp 100
【路由器】peer x.x.x.x router-policy lop export /import
<用户视图>reset bgp all 重启BGP
<用户视图>refreshi bgp all export/import 刷新BGP

BGP属性选路配置AS-path(越短越优先)

★它为公认必遵属性,是前往目标网络的路由经过的AS列表
★作用:确保路由在EBGP对等体之间传递无环,另外也作为路由优选的衡量标准之一
★路由在被通告给EBGP对等体时,路由器会在该路由的AS-path中追加上本地的AS号,路由被通告给EBGP对等体时,AS-path不会发生改变
★使用router-policy修改BGP路由的AS-path
apply as-path xxx additive 在已有AS-path基础上追加xxx
apply as-path xxx overwrite 将已有AS-path值替换成下xxx
apply as-path none overwrite 清空路由 AS-path属性

【路由器】router-policy as permit node 10 创建名为as-path的路由策略
【路由器】apply as-path 123 123 123 additive 追加
【路由器】quit
【路由器】bgp 100
【路由器】peer x.x.x.x router-policy as export /import
<用户视图>reset bgp all 重启BGP
<用户视图>refreshi bgp all export/import 刷新BGP

BGP属性选路配置MED(越小越优先)

★它为可选非传递属性,是一种度量值
★一般情况下,BGP设备只是比较来自同一AS(不同对等体)的路由的MED属性值,可以通过配置命令来允许BGP比较来自不同as路由的MED属性值,执行compare different as med 命令后,系统将比较来自不同AS中的对等体的路由的MED值

【路由器】router-policy med permit node 10 创建名为as-path的路由策略
【路由器】apply cost +500 追加
【路由器】quit
【路由器】bgp 100
【路由器】peer x.x.x.x router-policy med export /import
<用户视图>reset bgp all 重启BGP
<用户视图>refreshi bgp all export/import 刷新BGP

多网段情况下只匹配某一网段选路
origin属于公有必遵,用来定义路径信息的来源,其作用是标记一条路由时怎么成为BGP路由的,EBGP邻居之间起作用,他有三种属性
IGP(i )优先级最高
EGP(e)优先级次之
incomplete(?)优先级最低
【路由器】IP ip-prefix 1 permit 网段 子网掩码
【路由器】router-policy RP permit node 10
【路由器】if-match ip-pefix 1
【路由器】apply origin incompet
【路由器】router-policy RP permit node 20
【路由器】bgp 100
【路由器】network 网段 子网掩码
【路由器】peer IP地址 as number 345
【路由器】peer IP地址 route-policy rp export