BGP路径属性
作用:用于选路和防环,任何一条BGP路由都拥有多个路径属性
分类:
- 公认:所有BGP路由器必须识别
- 公认必遵:必须包括在每个Update消息中,如:Origin、AS_Path、Next_hop
- 公认任意:可能包含在某些Update消息中,如:Local_preference、Atomic_aggregate
- 可选:厂商实现自己私有特性或满足其客户特定需求而开发的私有属性,便于BGP属性扩展
- 可选过渡:BGP设备不识别但依然接受该类属性并通告给其他对等,如:Aggregator、Community
- 可选非过渡:BGP设备不识别且会忽略该属性,不通告给其他对等体,如:MED、Cluster_List、Originator-ID
位置: 路径属性在Open报文中的位置
路由信息处理
- 当从对等体接收到更新数据包时,路由器会把这些更新数据包(防环等检查通过的)存储到路由信息库RIB中,并指明来自哪个对等体的Adj-RIB-In
- 这些更新数据包被输入策略引擎过滤后,路由器会执行路径选择算法,为每一条前缀确定最佳路由
- 得出的最佳路径存储到Loc-RIB(本地BGP RIB)中,然后提交给IP-RIB(本地IP路由选择表)
- Loc-RIB将从对等体接收的最佳路由和当前路由器始发的最佳路径的BGP前缀经过输出策略引擎检查,检查通过的路由安装到输出RIB(Adj-RIB-Out)中,然后通告给其他对等体
Preferred-value
协议首选值:华为私有属性。
当BGP路由表中存在到相同目的地的路由时,将优先选择Preferred-Value值高的路由。
只影响本设备的路由优选,不会传递给任何BGP对等体。
取值0~65535,值越大越优先。
只能在import方向设置。
AS_Path
AS_Path:前往目标网络的路由经过的AS号列表
1.作用:
1. 确保路由在EBGP对等体之间传递无环路;
2. 作为路由优选的衡量标准之一
2.格式:…,{ AS1,AS2 },经过AS1,起始AS号
3.特性:
1.当BGP路由传递给EBGP邻居时,将自身AS号添加到AS_PAth属性的最前面,传给IBGP邻居时不会添加
2.当从EBGP邻居收到BGP路由时,如果AS_Path中携带了自身AS号,丢弃该路由
3.AS_path经过的AS数量越少,路径越优
4.类型:
1.AS_SEQENCE(有序的AS_path属性):反应路径传递的AS路径信息
2.AS-SET(AS集合):通常在BGP汇总路由时存在,用于继承BGP明细路由的AS集合信息。整个AS-SET算1个AS长度。
5.修改:
1.Additive:原有AS_Path左侧追加AS号
2.Overwrite:将已有AS_Path值替换成新值
3.None overwrite:将已有AS_Path值清空
4.示例:
[AR2]ip ip-prefix 1 permit 192.168.5.0 24 [AR2]route-policy AS_Path permit node 10 Info: New Sequence of this List. [AR2-route-policy]if-match ip-prefix 1 [AR2-route-policy]apply as-path 985 211 additive # route-policy默认禁止所有,此处需放行其他路由 # 无if-match代表匹配所有路由 [AR2]route-policy AS_Path permit node 999 Info: New Sequence of this List. [AR2]bgp 100 # 向对等体发送BGP路由时执行该策略 [AR2-bgp]peer 12.0.0.1 route-policy AS_Path export
6.思考:
1.若通过策略匹配Additive的方式添加AS号 985、211,BGP路由器自身所在AS号100,在向EBGP对等体发送路由时,对等体接收到的是AS = 100 985 211还是AS = 985 211 100?
答:AS = 100 985 211。因为路由是先经过输出策略引擎检查安装到Adj-RIB-Out中,再向对等体发送
2.若EBGP对等体发送过来的路由中已经有本AS的AS号,因防环路由会被丢弃,但本AS仍要接收该路由该怎么办?
答:peer 12.0.0.2 allow-as-loop 2
接收从指定EBGP邻居发送过来的路由,该路由中的AS号可与本AS号相同但仅允许出现次数上限为2
Origin
origin:标识BGP路由的起源
分类:
- IGP,用i标记,标识使用network命令注入到BGP的路由
- EGP,用e标记,标识通过EGP学习到的路由
- Incomplete,用?标记,标识import-route引入到BGP的路由
当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP > EGP > Incomplete
修改:
- 在本地发布BGP路由时通过route-policy来修改默认origin属性
- 在所有邻居之间通告或者接收时修改
Next_Hop
next_hop:用于指定到达目标网络的下一跳地址
下一跳规则:
- 默认自身发布的BGP路由的下一跳设置为向邻居发送BGP报文的地址
- 从EBGP邻居得到的路由传递给IBGP邻居时下一跳保持不变
- 问题:可能导致下一跳不可达
- 解决:
- 命令:peer IBGP邻居地址 next-hop-local
- 解决:将从EBGP得到的路由传递给IBGP邻居时,下一跳修改为自身向IBGP邻居发送BGP报文的源地址
- 当BGP路由传递给EBGP路由时,下一跳设置为向EBGP邻居发送BGP报文的源地址
- 如果路由器收到某条BGP路由,该路由的Next_Hop属性值与EBGP对等体(更新对象)同属一个网段,那么该条路由的Next_Hop地址将保持不变并传递给它的BGP对等体
Local_preference
本AS中的路由器拥有多个访问其他AS网络的出口路由时,控制路由器选择一个最优的出口路由。
控制本区域流量访问其他区域路径的手段。
值越大,BGP路由越优,缺省为100,只能传递给IBGP对等体,不能传递给EBGP对等体。
缺省情况:
1.缺省情况下,所有EBGP邻居收到的路径属性不包含local_preference,值默认为100,但在BGP表中显示为空
2.缺省情况下,本地起源的路由local_preference也是100,BGP路由表中不显示
default local_preference命令:
1. 对本地起源路由、从EBGP传递来的路由、手动汇总的路由生效
2. Route-policy优于default local_preference
3. 默认情况下local_pre属性不会传给EBGP,此命令对从EBGP接收的路由设置一个local_pre值,且本地BGP表中显示为空,但在将路由传递给其他的IBGP邻居将local_pre值携带
4. 修改本地起源的BGP路由默认值,但BGP表中显示为空,再将此路由传递给IBGP邻居时,local_pre的值根据此命令设置
community
团体属性用于标识BGP路由,BGP路由可拥有多个团体属性
分类:
- 用于限制BGP路由传递范围(公认团体属性)
- Internet:默认所有路由属于internet团体,传递范围不受限制
- NO_export:不想AS外发送该路由
- No_export_Subconfed:不向AS外发送也不向AS内其他子AS发布该路由(联盟成员内传递)
- No_Advertise:不向任何BGP对等体发送该路由
- 用于标识BGP路由,BGP路由可拥有多个团体属性(自定义团体属性)
优先级:公认团体属性传递范围越小,优先级越高。
传递方式:
团体属性不会自动传递给邻居,需手动配置传递,在任何邻居之间import/export方向都可修改:peer 邻居地址 advertise-community
生成方式:
- 始发路由时添加团体属性
- 发送和接收BGP路由时添加团体属性
- 自定义团体属性采用RFC格式:AA:NN(AS号:自定义编号)
MED
MED:多出口鉴别器,是bgp的开销
控制外部流量如何进入本区域的手段
MED值越小越优先
MED默认值:
- 若自身直连或静态路由通过network、import-route注入bgp,其MED默认为0
- 若将IGP协议通过network或import-route注入bgp,MED值继承IGP路由的metric(cost)
- 华为default med命令对所有import的路由以及汇总路由生效,发送此路由给EBGP邻居时生效,发送给IBGP不生效。Local-RIB显示原始MED值
MED通告原则:
- 本地始发的路由MED值传递给所有邻居
- 从EBGP邻居得到的路由的MED不会传递给EBGP
- 从EBGP邻居得到的MED可以传递给IBGP
- 从IBGP得到的路由传递给EBGP时不携带MED
- 从联盟EBGP邻居或联盟内始发的路由的MED值在整个联盟保持传递
修改:
标签:MED,路径,BGP,EBGP,邻居,路由,属性 From: https://blog.csdn.net/uzumcc/article/details/1410970931.MED在IBGP和EBGP邻居in、out方向都可以修改
2.MED默认情况下只有在来自同一个AS的路由才比较MED属性,即AS-Path下一跳AS号相同的路由。若要修改,可通过:compare-different-as-med:始终比较MED属性值,且需AS内所有路由器均开启此命令