BGP选路调整的配置与思路
参考阅读
一、实验搭建
实验拓扑如下:
说明:R3的L1、2;R5的L1、2、3在配置完BGP后宣告到BGP中,进行选路和路由汇总的调整优化
1.1 BGP建邻配置
所有AS之间均采用直连链路建立邻居,配置较为简单,不做过多赘述,配置完成后查看邻居的建立情况
[R1]router id 10.0.1.1
[R1]bgp 64513
[R1-bgp]peer 10.0.12.2 as-number 64513
[R1-bgp]peer 10.0.14.4 as-number 64512 [R1-bgp]quit
[R2]router id 10.0.2.2
[R2]bgp 64513
[R2-bgp]peer 10.0.12.1 as-number 64513
[R2-bgp]peer 10.0.23.3 as-number 64514
[R2-bgp]peer 10.0.25.5 as-number 64515 [R2-bgp]quit
[R3]router id 10.0.3.3
[R3]bgp 64514
[R3-bgp]peer 10.0.23.2 as-number 64513 [R3-bgp]quit
[R4]router id 10.0.4.4
[R4]bgp 64512
[R4-bgp]peer 10.0.14.1 as-number 64513
[R5]router id 10.0.5.5
[R5]bgp 64515
[R5-bgp]peer 10.0.25.2 as-number 64513 [R5-bgp]quit
注意:R2上对R1将下一跳属性改为自己,防止吓一跳不优,导致路由不优的问题
[R2]bgp 64513
[R2-bgp]peer 10.0.12.1 next-hop-local
1.2 配置团体属性
团体属性有普通、特殊两种团体属性
在R5上宣告L1、2、3,并宣告进BGP中,为10.1.5.5/24这个网段的路由携带团体值为100的属性值
1、宣告路由
[R5]bgp 64515
[R5-bgp]network 10.1.5.5 255.255.255.0
[R5-bgp]network 10.2.5.5 255.255.255.0
[R5-bgp]network 10.3.5.5 255.255.255.0
2、每台路由器上对邻居都使能传递团体属性
[R1]bgp 64513
[R1-bgp]peer 10.0.14.4 advertise-community
[R1-bgp]peer 10.0.12.2 advertise-community
[R2]bgp 64513
[R2-bgp]peer 10.0.12.1 advertise-community
[R2-bgp]peer 10.0.23.3 advertise-community
[R2-bgp]peer 10.0.25.5 advertise-community
[R3]bgp 64514
[R3-bgp]peer 10.0.23.2 advertise-community
[R4]bgp 64512
[R4-bgp]peer 10.0.14.1 advertise-community
[R5]bgp 64515
[R5-bgp]peer 10.0.25.2 advertise-community
3、R5上制作策略,使10.1.5.0/24网段带上100的策略
1、抓路由
[R5]acl number 2000
[R5-acl-basic-2000]rule 0 permit source 10.1.5.0 0.0.0.255
2、制作策略
[R5]route-policy com permit node 10
[R5-route-policy]if-match acl 2000
[R5-route-policy]apply community 100
3、对邻居调用
[R5]bgp 64515
[R5-bgp]peer 10.0.25.2 route-policy com export
在R2、R1上查看效果
这条带100属性值的路由R4也学习到了
注意:要明白为什么R5上宣告了3条自己的回环,这里为什么只有一条?
以上就是普通的团体属性的配置,下面配置一下特殊的团体属性;
需求:
- 在R5上使用路由策略为路由10.2.5.0/24添加特殊的团体属性no-export
- 为10.3.5.0/24添加特殊的团体属性no-advertise
1、抓路由
[R5]dis ip ip-prefix noex
Prefix-list noex
Permitted 24
Denied 25
index: 10 permit 10.2.5.0/24
[R5]dis ip ip-prefix noad
Prefix-list noad
Permitted 15
Denied 3
index: 10 permit 10.3.5.0/24
2、制作策略
[R5-route-policy]di th
[V200R003C00]
#
route-policy com permit node 10
if-match acl 2000
apply community 100
#
route-policy com permit node 20
if-match ip-prefix noex
apply community no-export
#
route-policy com permit node 30
if-match ip-prefix noad
apply community no-advertise
#
route-policy com permit node 40
#
return
3、在普通的属性值配置中已经调用过,这里不在调用了
验证查看
总结:
- 对于使用了特殊团体属性no-export后的BGP路由10.2.5.0/24,R2不向其AS外发送,但会发布给其AS内的R1
- 而对于使用no-advertise属性的BGP路由10.3.5.0/24,R2则不向任何对等体发送
在路由器上查看其解释
[Router-route-policy]apply community ?
INTEGER<0-4294967295> Specify community number
STRING<3-11> Specify aa<0-65535>:nn<0-65535>
internet Internet(well-known community attributes)
no-advertise Do not advertise to any peer (well-known community attributes)
no-export Do not export to external peers(well-known community attributes)
no-export-subconfed Do not send outside a sub-confederation(well-known community attributes)
none No community attribute
1.3 路由汇总时利用团体属性
首先将R3上的L1、2宣告进BGP中
[R3]bgp 64514
[R3-bgp]network 10.1.3.3 255.255.255.0
[R3-bgp]network 10.2.3.3 255.255.255.0
需求:
R5发布的10.1.5.0/24和R3发布的10.2.3.0/24汇总成一个A类网10.0.0.0/8。通告时抑制明细路由,并且该汇总路由最后通告给R4时携带的团体属性为200。对路由10.1.3.0/24保留明细通告给R4。
配置思路:
1、对需要进行操作的路由带上标准的团体属性值 相当于确立目标对象
2、使用团体属性过滤列表,过滤出指定的团体值的路由 相当于抓路由,但是抓的是标有团体值的路由
3、做路由策略,匹配第二步的过滤列表
4、aggre的抑制明细时调用
具体配置:
1、首先,在R上对10.2.3.0/24路由添加100的团体属性,三步走;即抓路由、做策略、对邻居调用
1、抓路由
[R3]acl number 2000
[R3-acl-basic-2001]rule 0 permit source 10.2.3.0 0.0.0.255
2、做策略
[R3-route-policy]di th
[V200R003C00]
#
route-policy comm permit node 10
if-match acl 2000
apply community 100
#
route-policy comm permit node 20
#
return
3、对邻居调用
[R3-bgp]peer 10.0.23.2 route-policy comm_r3 export
在邻居R2上查看配置情况,可见,收到了这条带着100属性值的路由
至此,10.2.3.0/24 10.1.5.0/24这两条路由都携带了100的属性值;
2、使用团体过滤列表,过滤出100属性值的路由
[R1]ip community-filter 1 permit 100
3、制作一个策略,匹配这个团体过滤列表,用于在路由汇总时过滤这个列表中的明细路由
[R1]route-policy macomm permit node 10
[R1-route-policy]if-match community-filter 1
需求中说:
并且该汇总路由最后通告给R4时携带的团体属性为200;那么在即抑制明细有要重新给属性值的情况下就要使用attribute-policy,所以再制作一个策略,用于给汇总后的路由携带200属性值
[R1]route-policy adcomm permit node 10
[R1-route-policy]apply community 200:1 additive
4、最后,就是再R1上做出汇总了
[R1-bgp]aggregate 10.0.0.0 255.0.0.0 detail-suppressed origin-policy macom attribute-policy adcom
R4上验证查看,可见与预期相符
二、分析
-
如果将10.2.5.0/24这条路由的属性也改成no advertise,思考此时在R2、R1、R4上再分别查看BGP路由表,这几条路由的传递情况
no advertise就是不传递给其他的所有邻居(IBGP、EBGP);所以只有R2能看到这条路由,其他设备都看不到 -
思考如何在R4上实现同时保留10.1.3.0/24和10.2.3.0/24这两条路由的明细, 仅抑制路由10.1.5.0/24的明细。
思路:
仅抑制10.1.5.0/24的话,就要再抑制明细后使用origin-policy对这条路由的明细进行抑制,使用团体过滤列表,
详细步骤如下:
1、首先再R5上将10.1.5.0/24网段的路由携带成99的团体属性
2、使用团体过滤列表,过滤出99属性值的路由
[R1]ip community-filter 2 permit 99
3、制作一个策略,匹配这个团体过滤列表,用于在路由汇总时过滤这个列表中的明细路由
[R1]route-policy necomm permit node 10
[R1-route-policy]if-match community-filter 2
4、注意aggregate的写法
[R1-bgp]aggregate 10.0.0.0 255.0.0.0 detail-suppressed origin-policy necom
R4上验证查看,可见与预期相符
至此,实验完成,你学废了吗?