十三条选路原则
为什么? 每条路径有多个属性
0.优选下一跳可达
1.优选首选值大的
华为私有的 prefer-value
思科私有的 weight
prefer-value首选值默认为0
只影响本路由器,只能配置入向
1)peer x.x.x.x prefer-value ()
R2:
bgp 235
peer 10.1.3.3 preferred-value 10 //从10.1.3.3学来的路由中首选值设置为10
(强调:并不是对 10.1.3.3发送出去的路由修改首选值)
peer x.x.x.x preferred-value XX,命令会影响所有来自x.x.x.x peer的路由,如何能够不影响其他路由?
ACL 2001
rule permit source 101.1.1.0 0 //精确匹配101.1.1.0这个前缀,不匹配掩码
#
route-policy r3-r2-im permit node 10
if-match acl 2001
apply preferred-value 10
#
route-policy r3-r2-im permit node 20
#
bgp 235
peer 10.1.3.3 route-policy r3-r2-im import
#
refresh bgp all import //向所有bgp peer发送route-refresh message,其他peer收到route-refresh消息会立即发送bgp update更新
2.优选本地优先级高的
local-preference
是公认任意属性
公认:所有bgp路由器都能识别
任意:ibgp update携带
配置:
1.default local-preference
R3
bgp 235
default local-preference 350
影响:
1)发给所有ibgp邻居的所有路由的local-preference默认是350
2)收到所有ebgp邻居的所有路由local-preference默认也是350
优势:
如果是所有路由全部走R3,配置命令最少
缺点:
影响范围太大,影响到其他路由
2.route-policy
配置建议:
如果影响整个AS,peer x.x.x.x(ebgp) route-policy xx import
如果影响个别ibgp peer, peer x.x.x.x(ibgp) route-policy xx import //影响自己以及后面人
export //影响对方
总结:
local-preference是用于离开本AS去往外部AS,选择走最优路径
3.优选本地始发
优选本地始发(local属性)
带有local属性的:
1)network
2)import-route
3)自动聚合路由,import-route + summary automatic
4)手工聚合,aggregate
aggregate > summary automatic > network > import-route
4.优选AS-PATH短的
1)AS-PATH的表现形式:
1)AS_SEQ: 100 200 300 400
邻近 <-----始发
2)AS_SET:{12 13 14 15} //手工聚合
明细路由不同的AS号集合
3)AS_confed_SEQ:(64512 64544) //联邦配置
联邦的AS序列
4)AS_confed_SET:[64512 64513 64544] //手工聚合 + 联邦环境
明细路由中联邦AS号集合
2)选路:优选AS-PATH短
1)优选AS_SEQ最短的路径
2)AS_SET无论包含多少个AS号,视为同一个AS_SEQ
3)AS-PATH选路忽略AS_confed_SEQ 和 AS_confed_SET
3)在R2上学到101.1.2.0/24 走R3,通过AS-PATH进行选路
R1上做export
ACL 2001
rule permit source 101.1.2.0 0
#
route-policy r1-r2-ex permit node 10
if-match acl 2001
apply ap-path 800 900 1000 additive
#
route-policy r1-r2-ex permit node 20
#
bgp 1
peer 10.1.2.2 route-policy r1-r2-ex export
结果:
R2上学习到101.1.2.0/24 来自R1的路由的AS-PATH
A:101.1.2.0/24 1 800 900 1000
邻近 <----- 始发
默认配置 出向策略
出向策略优先 ---> 默认配置 ---> 入向策略
B:101.1.2.0/24 800 900 1000 1
C:101.1.2.0/24 1 1000 900 800
D:101.1.2.0/24 1000 900 800 1
R2上做import
ACL 2001
rule permit source 101.1.2.0 0
#
route-policy r1-r2-im permit node 10
if-match acl 2001
apply ap-path 800 900 1000 additive
#
route-policy r1-r2-im permit node 20
#
bgp 235
peer 10.1.1.1 route-policy r1-r2-ex import
切记:别随便任意增加AS-PATH
1.导致路由拒收
解决方案:peer x.x.x.x allow-as-loop //允许as-path中出现我自己的as号的数量
peer x.x.x.x substitute-as //允许替换掉自己的AS号
2.影响的范围太大
公认必遵属性,所有AS的bgp路由器都能识别,所有bgp update更新都携带,影响其他AS对于路径的选择
5.Origin
origin:起源属性:公认必遵
code:
0:igp (network)
1:egp (import-route egp,现在只有通过policy apply才有)
2:incomplete (import-route XXXX)
优选origin code小的:network > egp > incomplete
6.MED
MED和local-preference关系
1.这两个属性是相互联系,不可分割
他们是某一个路由方向影响选路的组成部分
local-preference是影响离开我AS去往其他AS选路
med是影响其他AS进入我AS选路的
2.这两个属性是相互独立
local-preference是公认任意属性,只传递ibgp
med是可选非传递属性,只能传递一个AS,不能传递到第三个AS
如果med和local-preference同时配置,优选local-preference
MED属性的优选:
1.MED的比较仅仅发生在邻近AS号相同的路径上
当比较med的时候,如果邻居AS号不一样,跳过med比较
例如:
med
20 0 235 64512i
30 0 10 64512i
邻近AS号不一样,所以这俩条路由不比med值,跳过比下一条规则
如果希望设备坚持比较med的话
bgp 1
compare-different-as-med //无视邻近AS号是否一样,强行比较med
2.默认med在联邦环境是不进行比较的
如果需要在联邦环境中比较med
bgp 1
bestroute med-confederation //只有当AS_PATH中不包含外部自治系统时才比较med的大小
3.默认med传出邻近AS,就会丢失,丢失=null(空),med的比较按照0来比较
bgp 1
bestroute med-none-as-maximum //当med丢失=null的时候,med按照最大值(2的32次方)进行比较
4.默认med比较是从上到下,最新和次新比较,胜者再往下比较
修改bgp med的比较次序
bgp 1
deterministic-med //按照邻近as分类比较
7.ebgp > ibgp
8.igp cost 小
9.如果配置了负载
前提:
1.前八条比较不出来
2.负载路由下一跳不能一样
bgp 负载分担
bgp 1
maximum load-balancing 2 //允许负载分担2条路由
10.优选最短的cluster-list
11.优选最小的router-id
bgp的router-id的特点: (在有RR的场景下,用originator-id代替router-id进行比较)
1.直接邻居关系,router-id不能相同
2.ebgp,router-id可以相同,bgp转发路由会修改router-id