属性分类:负载均衡
◆公认:公认强制:AS-PATH ;next-hop ;origin(如何被引进BGP内的)ide
公认自由决定:local preference ; atomic aggregate汇总路由(原子聚合)
oop
◆可选: 可选传递(若是不支持,原封不动传给邻居)学习
aggregator(聚合者)用于标示汇总路由在哪被汇总的atom
community (团体属性)spa
可选非传递(若不支持,也不传给邻居)
3d
med 惟一控制两个AS之间且不会影响其余AS的选路属性
orm
originator-ID 防环。防止传回起源路由器
router
cluster-list 防环。RR时,防止传回起源cluster
blog
◆ weight属性:
cisco私有,优选高的。
不发送给任何BGP邻居,仅本地有效
########################################################################################
选路
BGP表中 一般 有不少到达同一目的地的路径
BGP默认 不 负载均衡
路径选择基于属性,并非基于带宽等缘由
最佳路径提交到路由表管理进程,并与其它路由协议对比管理距离。
路径决策过程:
在没有同步问题,下一跳可达的状况下;
0.5,
1,更高的weight(本地路由器)
2,更高local-preference(本AS)
3,起源于本身的路由(下一跳=0.0.0.0)
4,更短的as-path列表
5,起源属性 IGP<EGP<incomplete
6,更小的med
7,EBGP优于IBGP
8,选择最近的BGP邻居路由
8.5,
9, 若果配置的maxinum-paty,会负载均衡
10,对于EBGP,选择最老的路由
11,更低的邻居IBGP的路由器ID
12,更短的cluster-list
13,更小的邻居IP
◆1,weight(cisco私有)
- 优选最大的,范围0-65535,本地有效,控制本路由器
- 从BGP邻居学到的路由weight=0;本地宣告、重分布和汇总的weight=32768
修改方法:
1, neighbor x.x.x.x weight xxx (从x.x.x.x邻居学到的路由都增长xxx)
2, route-map test permit 10
set weight xxx
只能在本地入方向作
实验;
R1,R2运行ospf
R1,R2用loopback创建IBGP邻居
R1-R3,R2-R3直连创建EBGP邻居
R3:本地network3.1.1.1进bgp
R1 R2默认从R3学到
方法1: R1:nei 13.1.1.3 wei 1
方法2: ip prefix-list 3.1 permit 3.1.1.1/32
route-map wei permit 10
match ip address prefix-list 3.1
set weight 2
router bgp 100
nei 13.1.1.3 route-map wei in
◆2,local-prefrence
- 优选最大的
- 只在ibgp之间传递(AS内),EBGP之间不传递,即不能再ebgp的出方向作
- 从ebgp邻居学到和本地产生的bgp条目 local-preference=100,
- 修改:
1,能够经过 bgp default local-prefrence xxx 修改(只对EBGP传来的路由起做用)
2,route-map loc permit 10
set local-prefrence xxx
不能再ebgp邻居出方向作
- local-preference默认是100
sho ip bgp 中看到空,空=100
sho ip bgp x.x.x.x 看明细可见local-preference
实验:
R1-R2 sho ip bgp 学到R3的路由都是从R2-R1 且能看到两条
R1:
ip prefix-list 3.1 permit 3.1.1.1/32
route-map pre permit 10
match ip add prefix-list 3.1
set local-pre 101
route-map pre permit 1000
router bgp 100
nei 13.1.1.3 route-map pre in
sho ip bgp 显示学到3.1.1.1从R3学到,且只能看到一条,
由于R1从R3学到的local-preference=101,而后传给R2。R2学到3.1.1.1从R1的local=101,从R3的local=100,因此R2学到3.1.1.1显示从R1学到,因此不会再传回给R1,即R1只有一条从R3学到的
##########################################################################################
3,起源于本地路由器的路由
优选从本地始发的路由(包括本地network配置的重分布,在IGP表中已经有一些须要被配置路由聚合的地址,在BGP中用aggregate-address命令配置的路由聚合)
注意:对于cisco IOS,若是从本地往BGP里注入一条路由,缺省weight=32768,因为这个weight值很大,会根据第一条选路原则成为最优。
实验:经过route-map 设置weigh=0 验证前两条没法选出最优,经过选择本地路由为最优。
###########################################################################################
4,AS-PATH
- 除了用于选路,还能够防环(EBGP之间防环 )。
- 前3条选不出最优时,优选AS-PATH 长度最短的条目
注意:修改AS-PATH 只能在EBGP 邻居关系之间进行,IBGP邻居关系是不能够的
修改方法:
◆ 1,route-map。
as-path 只能够在EBGP 邻居关系的out和in方向去修改
- out 方向作:加在原本AS号的前=右边
- In 方向作:加在原本AS号的后=左边
注意:上图,AS200 宣告3.1.1.1后,R1 R2默认经过R3的路径为最优。修改AS时必定不能用100,由于本身本事也是100,bgp防环就会收了。最好不要使用现网中与其余AS相同的,最好使用BGP表中存在的AS,因此最好使用3.1.1.1的AS,即AS200。
R1: ip prefix-list 3.1 permit 3.1.1.1/32
route-map AS per 10
match ip add prefix-list 3.1
set as-path prepend 200
route-map AS per 1000
router bpg 100
nei 13.1.1.3 route-map AS in
clear ip bgp * soft
sho ip bgp
◆方法2
last-as 表示在离开这个路由器 最近的AS号,重复增长次数
route-map xx permit 10
match ip add 1
set as-path prepend last-as 数字(加多少次)
注: 当上述两个方法同时配置时,哪一个生效?
set as-path prepend 200
set as-path prepent last-as 2
in/out 方向时,as-path prepend和last-as,都是last-as先生效,而后as-path prepend才生效
- 聚合 聚合后的路由包含多个AS{} 内的AS算几个? 一个
- 联邦 联邦内()内的小AS算几个? 一个也不算
- neighgor xxx remove-private-AS 删除私有AS号,起源于本AS无效,在出方向作
◆ 如何跳过 as-path 选路原则
bgp bestpath as-path ignor
##########################################################################################
5,起源代码 origin
- 经过前4条不能选出最优,优选最低起源类型的BGP路由
- 最低起源类型顺序 IGP 优于 EGP 优于 incomplete,其中EGP方式如今不用了
- 经过network,aggregate方式产生的BGP路由的起源属性是 i 。
- 经过重分布产生的BGP路由的起源属性是 incomplete
◆5.1:
i ----- igp //network x.x.x.x mask x.x.x.x
e ----- egp //不用了
?----- 重分布
◆5.2:
origin在EBGP/EBGP的in/out方向均可以作
route-map xx permit 10
match ip add prefix-list 1
set origin incomlete (?)
##########################################################################################
6,MED
用途: 在两个AS之间,有多个BGP链接的状况下。MED用于影响从相邻AS到本AS的路由选择,即用于影响邻居AS到本AS的路由从哪一个接口进来,这是经过向相邻EBGP邻居发送具备不一样MED值的路由条目来实现的。可是须要注意的是:选路过程的实现是相邻AS的路由器自身根据13条选路原则独立完成,MED值的比较是前5条没法选出最优时才起做用。
实验:R3上设置3.1.1.1的路由,空着R1 R2到达R3的选路
R3:ip prefix-list 3.1 permit 3.1.1.1/32
ip route-map med-r1 per 10
match ip add pre 3.1
set metric 150
ip route-map med-r1 permit 1000
ip route-map med-r2 per 10
match ip add pre 3.1
set metric 200
ip route-map med-r2 per 1000
router bgp 200
nei 13.1.1.1 route-map med-r1 out
nei 23.1.1.2 route-map med-r2 out
clear ip bgp * soft
R1 R2:
sho ip bgp
MED的生成:
1,本地network方式生成的BGP条目,会带上IGP的metric,(同时也会带上路由的下一跳,开启汇总后会被取消)会传给全部邻居。
2,若是从EBGP邻居学习到的BGP条目的metric值传递给其余IBGP邻居,但不穿给EBGP。
-------- 以上表示MED 只传递一次EBGP邻居 --------
3,若从IBGP邻居学习到一条BGP路由的metric=0或其余值,缺省不会传给EBGP邻居,显示为空
4,汇总方式产生的BGP条目,metric为空
5,重分布方式生成的BGP条目,metric为IGP的cost、metric、hop若是开启自动汇总会被清除
6,缺省状况下,空metric视为 0 。
优选最小MED值的路由(范围0-4294967295)
A,只有在经过两条路径获得第一个AS是同一个AS时才进行MED比较;任何子自治域的联盟系统都会被忽略,即从不一样联邦AS学到的路由都会比较MED.
B,若是路由器配置了 bgp always-compare-med,在所有的路径进行MED比较。可是这须要全体AS都同时启用这个功能
C,若是路由器配置了 bgp bestpath med confed,将对全部仅包括AS_CONFED_SEQUENCE的路径进行比较MED。默认不比较
D,若果接收到的路径没有分配MED,则将此路径分配0,除非 路由器配置了bgp bestpath med missing-as-worst,将被看作MED值为4294967295的路由将在注入到路由表以前改成4294967294
bgp deterministic-med
是指把路由过来的MED值进行分组
同一个AS的分同一组
其余AS的分一组
先比较同一个AS的med值,在和其余AS的med值比较路由器那个最小的router-ID
###########################################################################################
七、EBGP > IBGP
与EBGP的AD小于IBGP的AD无关
EBGP>联盟EBGP>EBGP
###########################################################################################
八、最近的BGP邻居
指的去往BGP邻居用的IGP路由的metric值
对EBGP,IBGP邻居都生效
EBGP和IBGP选路的最后一条
###########################################################################################
九、配置了maxinum-path [IBGP],存在多条等价的路径,会负载均衡
其实这不算是选了的原则,是指当前面的8条选不出最优时,在BGP的进程下配置了maxinum-path命令后,会产生负载均衡‘
router bgp 3
maximum-path ?
<1-6>number of path
ibgp Ibgp-multipath
非等价负载均衡----bgp dmzlink-bw // 先进程启用
neighbor x.x.x.x dmzlink-bw // 再对邻居启用
###########################################################################################
EBGP之间选路的最后一条,以后11-13都只针对IBGP
十、对于EBGP。优选存在时间最长的路由
bgp bestpath compare-routerid //跳过第10条选路,从11条选(最小router-ID)
- 优选最老的路由(最早被学习的路由)
1,次步骤能够将路由摆动的影响减到最小,由于新接收到的路径不会取代老的,即便这条新接收的路径是经过下面说起到的额外路径选择标准来进行选择的。这使得只在IBGP路径下应额外的选择步骤更有意义。
2,次步骤能够被bgp bestpath compare_routerid跳过
3,若是路由器标志是同样的,此步骤能够被跳过,由于这说明命路由器正在从本身那里路由
4,若是当前没有最优路由,此步骤能够被跳过,当提供摸个路径的路由器宕机,就会发送丢失
##########################################################################################
11,lowest router-ID
优选最小的 IBGP 的rotuer-ID
- 在有RR的状况下 不比较router-ID,比较起源ID,起始者标示将代替router-ID在选路中的做用,不会用到第11条选路原则,会用12,13条选路。
- 一个路由器从多个RR收到相同路由进行最优选择时,第11条选路用的router-ID将被更为originator-ID(此ID即便本AS学得路由的第一跳路由器的router-ID,是RR的一个client),而不是RR的router-ID,所以若是BGP路由只是从一个ASBR学校到而后传入AS内部,将不会用的第11条,用12或13
- 若是在同一时间学习到多条到同一目的地的路由,优选最小BGP-router-ID的路由,注意,若是一个路径包括路由反射器
RR的状况下不比较路由器的router-ID,而是originator-ID,即被反射的client的router-ID
###########################################################################################
12,cluster list length
多条路径的始发路由器ID相同,那么选择cluster-list短的
由于每进通过一个RR,cluster-list会加上这个RR的clusterd-id
##########################################################################################
13, lowest neighbor IP address
BGP优选来自最低的邻居地址的路径,是BGP的neighbor配置中的地址