BGP 12 条选路原则笔记
一、BGP 前言:
- 公认必遵(必须包括在每个Update报文里,转发):
Path Attribute - Origin:IGP ----------起源属性
Path Attribute - AS-Path:200 --------------AS路径
Path Attribute - Nexthop:10.1.12.1(BGP的下一跳不是 BGP 自己算的,是 IGP 给它的,BGP 做的是“优选”)------下一跳
- 公认任意(可能包含在Update报文里,转发):
Local_Preference:
Atomic_aggregate
- 可选过渡(转发):
Aggregator
Community
- 可选非过渡(不转发):
MED
Cluster-List
Originator-ID
二、12 条选路原则:
0、下一跳可达
1、preferred-value
华为私有属性: 我更偏向于哪条路(我,太主观了!)
*仅在本路由器有效,此属性外发不再携带
bgp 234
peer x.x.x.x preferred-value X #全体赋值
dis bgp routing-table x.x.x.x | x
也可以用 route-policy 改(个性化赋值):
route-policy X
if-match ip-prefix | acl X
apply prefered-value x #默认为 0
bgp 234
peer x.x.x.x route-policy X
2、Local-preference(公认任意)
在IGP中配置的本地优先,影响数据的出口
*从IBGP收到的路由如果和EBGP收到的路由相同,会互相影响(进行优选比较)
仅 IBGP 发送时有
发送时配置:default local-preference x
------------------以上越大越优-------以下越小越优-----------
3、 Local Originated 本地起源属性(公认必遵):
本地始发路由优于从其他对等体收到的路由,可理解为下一跳属性
本地始发路由再有优先级:
手动聚合 > 自动聚合 > network >import > 对等体学到的
4、As-Path(公认必遵):
作用:1、防环;2、当做路径度量值做选路(越少越优)
规则:有序列表(从右往左)
操作:additive、overwrite(重写)、none overwrite(重写清空)
peer x.x.x.x allow-as-loop #允许接受相同AS的路由(不需要改AS-path也可以收)
修改AS-Path和允许收相同AS,这两个操作很少用
5、Origin 起源属性(公认必遵):
i:network 声明的
e:from ebgp
?:import-route 引入的
route-policy X if match ip-prefix X
apply origin igp | egp | incomplete #改起源
6、MED: Multi-Exit Discriminator 多出口鉴别器(可选非过渡)
MED 相当于开销,默认为 0 ,仅在自己的 AS 内有效
MED 仅比较来自同一 AS 的路由,if 需要强制比较,加个参数:compare-different-as-med
当把 IGP 引入|发布到 IBGP 中时,会继承原来的 cost 值,变成 IBGP 的 MED
作用与第二条Local-preference相同,但 MED 属性可以发给 EBGP 邻居,影响其他 AS 过来的选路,只传给一个AS,一跳
route-policy X permit node 10
apply cost x
7、EBGP > IBGP:外来的和尚会念经 | 要发展,要到外面的世界去!因为我叫Border Gateway Protocol!
8、Next-hop cost smallest in IGP,以上都相同,没办法,同一 AS 开始内卷了!
-------------------以上8条完全相同,已可开启负载均衡--------------
bgp x
maximum load-balance x
9、Cluster_List:簇列表(反射次数少的)最短的
10、Router-ID(Originator-ID)最小的设备通告的路由
11、IP :地址最小的对等体通告的路由
三、总结:
常用的有:1权重、2LP、6MED
至于3LO、4As-path、5Origin这几种因素的更改有可能影响正常环境,一般少用(这三条正好是公认必遵)