BGP路由聚合

BGP路由聚合

BGP在AS之间传递路由信息,随着AS数量的增多,单个AS规模的扩大,BGP路由表将变得十分庞大,因此带来如下两类问题:

  1. 存储路由表将占用大量的内存资源传输和处理路由信息需要消耗大量的带宽资源
  2. 如果传输的路由条目出现频繁的更新和撤销,对网络的稳定性会造成影响。

本节将介绍BGP的路由聚合对上述两种问题的处理,下面我们将从以下三个方面进行具体介绍:
○ BGP路由聚合的必要性,解决BGP网络存在的问题。
○ BGP路由聚合的配置方法
○ BGP路由聚合带来的问题讨论

总结,BGP网络面临的问题

  1. 路由数量庞大,占用内存,消耗带宽
  2. BGP网络震荡,导致稳定性下降

BGP路由聚合的必要性
路由聚合
如图所示,AS 100内有4个用户网段,AS 200内有4个用户网段。AS 300连接了一个Client AS,该AS内的路由器比较低端,处理能力较低,因此既希望能访问AS100与AS 200内的网段,又不希望接收过多的明细路由,如何解决该问题?
解:在RTC上面做路由汇总(路由聚合)

路由汇总,能有效减少BGP路由器通告的路由条目的数量,减小设备的路由表规模,并将拓扑变化产生的影响限制在一个相对更小的范围内。

BGP路由聚合方式:

  1. 静态方式聚合(野路子)
  2. 自动聚合(一般不用)
  3. 手动聚合(真正靠谱)

BGP路由聚合方式–静态
BGP路由静态方式聚合
场景:AS 100内有4个用户网段,RTA通过路由聚合屏蔽明细路由,只将一条聚合后的路由10.1.8.0/22发布给AS 200内的RTB。

BGP路由聚合–静态方式聚合(野路子)

  1. 做汇总的静态路由
  2. network发布出去
  3. 同时配置路由策略,过滤掉明细路由,达到汇总效果

实验:
静态路由聚合

接口配置
R1路由器
[Huawei]sysname R1
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.1.13.1 24
[R1-GigabitEthernet0/0/0]

R2路由器
[Huawei]sysname r2
[r2]int g 0/0/0
[r2-GigabitEthernet0/0/0]ip add 10.1.23.2 24

R3路由器
[Huawei]sysname R3
[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ip add 10.1.13.3 24
[R3-GigabitEthernet0/0/07q
[R3]int g 0/0/1
[R3-GigabitEthernet0/0/1]ip add 10.1.23.3 24
[R3]int g 0/0/2
[R3-GigabitEthernet0/0/2]ip add 10.1.34.3 24
[R3-GigabitEthernet0/0/2]

R4路由器
[Huawei]sysname R4
[R4]int g 0/0/0
[R4-GigabitEthernet0/0/0]ip add 10.1.34.4 24

BGP邻居配置

#配置BGP邻居
[R1]bgp 1
[R1-bgp]peer 10.1.13.3 as-number 3

[r2]bgp 2
[r2-bgp]peer 10.1.23.3 as 3

[R3]bgp 3
[R3-bgp]peer 10.1.13.1 as 1
[R3-bgp]peer 10.1.23.2 as 2
[R3-bgp]peer 10.1.34.4 as 4

[R4]bgp 4
[R4-bgp]peer 10.1.34.3 as 3

#R1添加环回口,并发布出去
[R1]int 1o 0
[R1-LoopBack0lip add 192.168.1.1 24
[R1-LoopBack0]q
[R1]int lo 1
[R1-LoopBack1]ip add 192.168.2.1 24
[R1-LoopBack1]q

#发布环回口
[R1]bgp 1
[R1-bgp]network 192.168.1.0 24
[R1-bgp]network 192.168.2.0 24
[R1]dis bgp routing-table # 查看发布的两条BGP路由信息,R3、R4上面也可以查看到这两条BGP路由信息

R2添加环回口,并宣告
[r2]int lo 1
[r2-LoopBack1]ip add 172.16.1.1 24
[r2-LoopBack1]q
[r2]int 1o 2
[r2-LoopBack2]ip add 172.16.2.1 24
[r2-LoopBack2]q

#路由宣告
[r2]bgp 2
[r2-bgp]network 172.16.1.0 24
[r2-bgp]network 172.16.2.0 24

#R3上配置一条汇总的静态路由
[R3]ip route-static 192.168.0.0 255.255.252.0 nu
[R3]ip route-static 192.168.0.0 255.255.252.0 NULL 0
[R3]dis ip routing-table protocol static #查看静态路由

#汇总的静态路由发布出去
[R3-bgp]network 192.168.0.0 22
[R3-bgp]dis this #查看当前BGP进程下的配置
[R3-bgp]dis bgp routing-table #汇总路由:192.168.0.0/22

同理,静态的172.16网段也是如此
做汇总的静态路由
[R3]ip route-static 172.16.0.0 255.255.252.0 nu
[R3lip route-static 172.16.0.0 255.255.252.0 NULL 0
[R3]bgp 3
[R3-bgp]network 172.16.0.0 22
这时,R3上出现了172.16.0.0的汇总路由

但是,利用静态方式强行汇总,这种路由不是严格意义上的BGP路由汇总,而是利用BGP发布路由的特点,利用静态路由先汇总,然后network发布出去,只不过明细路由还在。
此时,需要利用一些策略,过滤掉明细路由即可。
#匹配汇总路由
[R3]ip ip-prefix 1 permit 172.16.0.0 22
[R3]ip ip-prefix 1 permit 192.168.0.0 22
[R3]bgp 3
[R3-bgp]peer 10.1.34.4 ip-prefix 1 export
[R3-bgp]refresh bgp all export
[R3]dis bgp routing-table 172.16.0.0 #查看路由详细信息,汇总路由的标志是:network route
#记得触发更新:refresh bgp all export,此时,明细路由过滤完成,在R4上只有汇总路由

#这里在R4上添加一个环回口,并发布,作为二级运营商的一个用户:
[R4]int lo 0
[R4-LoopBack0]ip add 4.4.4.4 24
[R4]bgp 4
[R4-bgp]network 4.4.4.0 24
[R4-bgp]q
[R4]ping -a 4.4.4.4 192.168.1.1 #可以ping通
[R4]ping -a 4.4.4.4 172.16.1.1  #可以ping通
[R1]dis bgp routing-table # R1上会学习到4.0网段的路由

# 假设,R1上两条静态路由没有了
[R1-bgp]undo network 192.168.1.0 24
[R1-bgp]undo network 192.168.2.0 24
#此时,R3上就不会有明细路由了,但是静态的汇总路由还在,因为这并不是真正的汇总路由,只是因为写了一条静态的路由放在这儿,发布出去,并且,R4上面也会看到静态汇总路由

#静态的汇总:明细路由失效,汇总路由依然在,不受明细路由的影响,也就是,明细路由出现故障,那么在访问这些故障网段的时候,报文还是会发到R3上面,R3再丢掉,这就会导致R3上面大量的带宽被浪费。

#因此,虽然结合策略达到了汇总的效果:network route,但,这不是一种推荐的方法,只是钻了BGP发布路由的空子,是一种野路子。

总结:
利用静态路由执行BGP路由汇总

  • 并不是真正意义上的BGP路由汇总,只是利用BGP发布路由的特点来实现汇总的效果。
  • 明细路由并不会被抑制,还是会正常的通告给邻居,需要做明细路由的过滤(利用策略)。
  • 丢失明细路由的某些BGP路由属性,存在路由环路的风险。
  • 明细路由是否存在,和汇总路由之间不存在依赖关系,导致汇总路由不能真实的反映网络的现状。

BGP路由聚合–自动聚合(一般不用)
BGP路由自动聚合
BGP自动汇总(一般不用)

  1. 仅对自身通过import-route命令发布的路由生效,对邻居传来的或者network产生的BGP路由无效。
  2. 只能汇总成主类网络号,汇总精确度差,容易产生黑洞路由或次优路由。
  3. 明细路由会被抑制。
#把上面去掉的明细路由,再加回来
[R1]bgp 1
[R1-bgp]network 192.168.1.0 24
[R1-bgp]network 192.168.2.0 24

#去掉静态路由配置
[R3]undo ip route-static 192.168.0.0 22 NULL 0
[R3]undo ip route-static 172.16.0.0 22 NULL 0 

#汇总的静态路由删掉了,也就不需要发布了
[R3-bgp]undo net
[R3-bgp]undo network 172.16.0.0 22
[R3-bgp]undo network 192.168.0.0 22
[R3-bgp]dis this
[V200R003C00]
bgp 3
peer 10.1.13.1 as-number 1
peer 10.1.23.2 as-number 2
peer 10.1.34.4 as-number 4
#
ipv4-family unicast
 undo synchronization #关闭同步功能
 peer 10.1.13.1 enable
 peer 10.1.23.2 enable
 peer 10.1.34.4 enable
 peer 10.1.34.4 ip-prefix 1 export
#
return

# 一条命令即可开启自动汇总:summary automatic
[R3-bgp]summary automatic

# 此时,因为R3上面没有import-route产生的路由,所以没有实现汇总

# 接下来,R3上面引入静态路由,并发布:
[R3]ip route-static 1.1.1.0 30 NULL 0
[R3]bgp 3
[R3-bgp]network 1.1.1.0 30
[R3-bgp]q
[R3]dis bgp routing-table 
# 这里,因为也不是import-route引入的,所以并没有自动汇总
# 这里,将network引入,更改为import引入
[R3-bgp]undo network 1.1.1.0 30
[R3-bgp]import-route  static
# 成功自动汇总,但只能汇总成主类网络号

#另外,之前的配置静态路由加的策略,此时一定要删掉
[R3-bgp]undo peer 10.1.34.4 ip-prefix 1 export

此时,1.1.1.0/30成功汇总(前提是import-route引入),明细路由也被抑制,其他的192.168和172.16是network引入的,不汇总也不抑制。
BGP路由汇总--自动
*代表有效路由,>代表最优路由,s代表抑制路由
BGP路由汇总--自动

BGP路由聚合–手动聚合(真正靠谱)

BGP手动汇总,主流方式

  • 只要是在BGP路由表中存在的路由,都能被手动汇总
  • 可以实现精确汇总,可以支持CIDR
  • 可以对汇总路由的属性做编辑
  • 可以继承明细路由的相关属性,防止环路(起源属性、团体属性)
  • 明细路由全部失效,汇总路由才会失效
  • 默认情况下,明细路由依然会通告出去,需要抑制

AS_PATH和as set:

AS_PATH 记录路由传递的AS的次序,有序的
as-set { } 无序的AS _PATH,防环用的,并不表明路由传递的次序,{ }中无论多少个AS号,都只算1个AS长度。

明细路由和汇总路由:

只要明细路由还有,汇总路由就不会失效。
明细路由只是删除部分,汇总路由依然存在,只有全部删除,汇总路由才会没有。

面临问题:

BGP路由聚合带来的问题–潜在环路

原因:聚合路由丢失了原明细路由的AS_PATH属性,导致产生环路风险。
BGP路由聚合的环路问题
BGP路由聚合带来的问题–解决方法
解决之法:汇总路由的AS_PATH属性依旧携帯着明细路由的路径信息,避免环路产生。
BGP环路解决方法

# R3的BGP配置情况
[R3]bgp 3
[R3-bgp]dis this
[V200R003C00]
bgp 3
 peer 10.1.13.1 as-nunber 1
 peer 10.1.23.2 as-number 2
 peer 10.1.34.4 as-nunber 4
 #
 ipv4-family unicast
 undo synchronization
 sumnary automatic
 import-route static
 peer 10.1.13.1 enable
 peer 10.1.23.2 enable
 peer 10.1.34.4 enable

# 关闭自动聚合
[R3-bgp]undo summary automatic

#去掉import-route引入的静态路由
[R3-bgp]undo import-route static

#开始手动聚合
[R3-bgp]aggregate 172.16.0.0 22
[R3-bgp]dis bgp routing-table


虽然成功执行了一次BGP路由汇总,但是丢失了AS_PATH属性,明细路由也还在在这里插入图片描述
手动聚合路由的标志:Aggregated route
手动聚合路由
因为在R3上面手动聚合,丢失了AS_PATH属性,所以在R4上面查看BGP路由表,origin属性值从R3的开始。
origin属性
针对手动路由聚合,AS_PATH属性丢失,以及明细路由依然存在问题,下面是解决方法:抑制,继承

  1. aggregate 汇总路由
  2. detail-suppressed 抑制明细路由
  3. as-set 继承AS号
#抑制、继承
[R3-bgp]aggregate 172.16.0.0 22 ?
[R3-bgp]aggregate 172.16.0.0 22  detail-suppressed ?
[R3-bgp]aggregate 172.16.0.0 22  detail-suppressed as-set
[R3-bgp]dis this 

BGP手动聚合路由的配置情况
BGP路由手动聚合
聚合后的路由信息:
*代表有效路由,>代表最优路由,s代表抑制路由,2i中,as_path 2,i代表network方式引入
BGP手动聚合

[R3-bgp]aggregate 192.168.0.0 22  detail-suppressed as-set

BGP汇总路由
此时,在R4上面的效果,路由已聚合,明细路由被抑制,AS_PATH属性继承。
BGP路由聚合
目前,路由传到R1、R2后,一看AS_PATH,直接丢弃,不接收,R1不收含有AS 1 的自己的汇总路由,R2同理不收含有AS 2 的自己的汇总路由:

BGP路由聚合

利用策略对BGP属性进行修改

[R3]route-policy att permit node 10
[R3-route-policy]apply cost 999
[R3-route-policy]apply origin incomplete
[R3-route-policy]apply community no-export
[R3-route-policy]q

# 汇总明细路由,aggregate 汇总, as-set 继承, detail-supressed 抑制,attribute-policy 属性
[R3-bgp]aggregate 172.16.0.0 22 as-set detail-suppressed attribute-policy att
[R3-bgp]dis cu

查看汇总路由及属性
BGP汇总路由属性

# 团体属性继续修改
[R3]route-policy att permit node 10
[R3-route-policy]dis this
[V200R003C00]
#
route-policy att permit node 10
 apply cost 999
 apply origin incomplete
 apply community no-export
return
[R3-route-policy]apply community 3:100

#然后,挤牙膏,并刷新
[R3]bgp
[R3-bgp]peer 10.1.34.4 advertise-community
[R3-bgp]q
[R3]q
<R3>refresh bgp all export

#继续新的实验,在R1上把192.168的路由再次发布
[R1-bgp]net
[R1-bgp]network 192.168.1.0 
[R1-bgp]network 192.168.2.0

R3上查看明细路由,汇总路由:
BGP路由

# 在R2上面建立两个环回口3 4,并发布
[r2-LoopBack3]ip add 192.168.3.1 24
[r2-LoopBack3]int lo 4
[r2-LoopBack4]ip add 192.168.4.1 24
[r2-LoopBack4]dis this

[r2-bgp]network 192.168.3.0
[r2-bgp]network 192.168.4.0 

[r2-bgp]dis this
[V200R003C00]
bgp 2
 peer 10.1.23.3 as-number 3
 #
 ipv4-family unicast
 undo synchronization
 network 0.0.0.0
 network 172.16.1.0 255.255.255.0
 network 172.16.2.0 255.255.255.0
 network 192.168.3.0
 network 192.168.4.0
 peer 10.1.23.3 enable
 #
return

#添加新的汇总路由:
[R3-bgp]aggregate 192.168.0.0 255.255.248.0 as-set detail-suppressed

#干掉之前的
[R3-bgp]undo aggregate 192.168 0.0 255.255.252.0
[R3-bgp]dis this
[R3-bgp]dis bgp routing-table

R3上查看BGP路由表,发现汇总路由用大括号把明细路由的AS_PATH继承下来了
BGP的AS号继承
对于192.168网段的路由,因为R3上进行了汇总,同时也对明细路由进行了抑制,继承了AS_PATH,所以汇总路由传不到R1、R2,同时R1、R2之间明细路由也因为抑制无法互传,R1、R2之间无法访问192.186网段。
解决方法:利用策略:

#配置策略,分别去往R1、R2
[R3]ip ip-prefix 1 permit 192.168.0.0 21
[R3]route-policy as1 permit node 10
[R3-route-policy]if-match ip-prefix 1
[R3-route-policy]apply as-path 2 overwrite
[R3-route-policy]q

[R3]route-policy as2 permit node 10
[R3-route-policy]if-match ip-prefix 1
[R3-route-policy]apply as-path 1 overwrite

#其他路由正常放行:
[R3]route-policy as1 permit node 20
[R3]route-policy as2 permit node 20

#应用策略
[R3-bgp]peer 10.1.13.1 route-policy as1 export
[R3-bgp]peer 10.1.23.2 route-policy as2 export

汇总路由传过来啦
BGP汇总路由

总结

BGP路由聚合在IPV4网络中支持:自动聚合和手动聚合。
BGP路由聚合在IPV6网络中支持:手动聚合。

BGP路由聚合方式:

  1. 静态方式聚合(野路子,静态汇总路由+network发布+策略过滤明细路由)
  2. 自动聚合(一般不用,仅对自身import-route发布的路由生效,汇总成主类网络,明细路由会被抑制)
  3. 手动聚合(真正靠谱,精确汇总,支持属性编辑、继承,配合策略效果好)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值