文档名称文档密级
上期问题:BGP路由经常数以万计,如果有大量不同但是又非常相似的团队属
性需要实施同样的路由策略(比如:需要对携带团队属性
“100:1、200:1、300:1、400:1、500:1…”的路由实施相同的策略),该如何简化配置呢?参照我们上回所说,如果需要对携带团队属性“100:1、200:1、300:1、400:1、500:1…”的路由实施相同的策略,我们必须配置多条团队属性过滤器:ip community-filter 1 permit 100:1ip community-filter 2 permit 200:1ip community-filter 3 permit 300:1ip community-filter 4 permit 400:1ip community-filter 5 permit 500:1
这样不免非常麻烦,这时我们可以用到高级团队属性过滤器。高级团队属性过滤器作用和普通团队属性过滤器一致,不同点就在于其过滤器的编号为100~199。高级团队属性过滤器可以使用正则表达式来制定团体,这一点在使用AA:NN格式的团队属性时非常有用。如上面这个例子,如果我们使用高级团队属性过滤器,则只需要配置一条命令即可:ip community-filter 101 permit .*:1
关于正则表达式,这里不多做介绍。在使用路由策略,尤其是使用AS_PATH和团队属性时,正则表达式是一个非常有用的工具,可以极大的降低我们的配置工作量,有兴趣得小伙伴可以查找相关资料了解。
交换机一行人路上稍遇拖延,赶到网络武林大会之时,各大门派都已然到了。交换机忙入场落座,环顾四周,中间一席,坐的正是那武林盟主IP长老。见参会者已到齐,IP长老起身,对着场下众人摆摆手,道:“承蒙诸位赶来参会,老朽感激不尽,诸位匆匆赶来,想必还未曾互相认识,老朽忝居主位,就为大家介绍一下。这位便是VPN掌门虚通长老。”说罢,一老者站起来向众人致意,旁边站着一明艳少女。
交换机定睛望去,不由吃了一惊,这正是那日在路上设阵相阻的老者,未想到竟是这VPN一派之长。霎时间心头涌起了一阵自得之意,手心中微微出汗。VPN享誉江湖,自己居然曾战胜过VPN门下阵法,实是意外之喜。但见那虚通长老身旁的少女甚是眼熟,好似在哪
2020-6-3
华为保密信息,未经授权禁止扩散
第1页, 共12页
文档名称文档密级
里见过,却一时想不起来。
正想间,IP长老已介绍完场上众人,继续说道:“这次邀诸位前来,实是有一事困扰江湖日久,想借诸位之智,看有无妙方可解。江湖上门派日多,路由表规模已10万计,如此庞大的路由,管理之难,已日益严重,虽有BGP神功调配,也渐渐难以支撑,不知各位可有解决之道。”
路由问题,自首先由路由门下解决。众人的目光一下投向交换机。交换机思考半晌,说道:“路由管理之难,其中一要因在于地址分配混乱,路由随意发布。若以规范,使路由先聚合,而后发布,必可降低路由表大小,缓解路由管理之难。”
题外话:由于BGP中自动聚合限制非常多,实际效果非常不理想,所以绝大部
分情况下,我们会采用手动聚合的方式。手动聚合有两种方式,下面就给小伙伴们介绍一下:
一:利用静态路由进行聚合
这种方式是先在路由表中为聚合地址创建静态表项,之后再利用network命令宣告该聚合地址,如下面这个例子:AS 100192.168.1.0/24192.168.2.0/24192.168.3.0/24192.168.4.0/24192.168.0.0/16AS 20011.1.1.0/24R1R2如图,AS100中有192.168.1.0/24、192.168.2.0/24、192.168.3.0/24和192.168.4.0/24四个内部网络,现在要将4个内部网络的路由聚合成一条192.168.0.0/16这条路由。R1的关键配置:#bgp 100
peer 11.1.1.2 as-number 200 #
ipv4-family unicast
2020-6-3
华为保密信息,未经授权禁止扩散
第2页, 共12页
文档名称文档密级
undo synchronization
network 192.168.0.0 255.255.0.0 /将聚合路由发布到BGP中 peer 11.1.1.2 enable#
ip route-static 192.168.0.0 255.255.0.0 NULL0 /配置一条指向NULL0的静态聚合路由#
由于聚合路由本身并不是合法的终端目的地址,因而静态路由指向Null接口,该路由在R1的路由表中仅代表一条精确路由。如果数据包的目的地址属于AS100的C类地址,那么AS100的外部路由器将撇配该聚合路由并转发给R1,到了路由器R1之后,数据包将被匹配到更精确的地址,并被转发到正确的内部下一跳路由器。如果因某种导致更精确的C类地址不在R1路由表中的话,将把该数据包转发到Null接口并予以丢弃。我们查看R2的BGP路由表:
R2的路由表中只有一条聚合路由,其他明细路由均未进入R2的路由表。
二:通过aggregate命令手动聚合路由,并抑制明细路由
在上面这种简单的场景下,通过静态路由进行聚合的方式已经足够了,但是对于拓扑结构或者路由策略稍微复杂一些的情况,通过静态路由进行聚合的方式不建议被使用,我们可以使用aggregate命令进行手动聚合。下面我们具体说明下aggregate命令极其参数的作用。先在上面那个简单的例子中使用aggregate命令。
R1的关键配置:#
bgp 100
peer 11.1.1.2 as-number 200 #
ipv4-family unicast undo synchronization
aggregate 192.168.0.0 255.255.0.0 detail-suppressed
2020-6-3
华为保密信息,未经授权禁止扩散
第3页, 共12页
文档名称文档密级
network 192.168.1.0 network 192.168.2.0 network 192.168.3.0 network 192.168.4.0 peer 11.1.1.2 enable#
想要宣告由aggregate命令指定的聚合路由,必须通过重分布或者network命令使至少一个更精确的地址进入BGP路由表。这里我们查看R1和R2的BGP路由表:
可以看到,R1的BGP路由表中包含了所有精确路由,而R2的路由表中只有一条聚合路由,这是因为我们在aggregate命令中配置了detail-suppressed参数,使R1只会将聚合路由发送给R2。而R1的BGP路由表中,明细路由前面都有“s”的标志,代表这些路由已经被抑制。
三:同时发送聚合路由和明细路由
对于像上面这种简单拓扑来说,确实不需要同时宣告聚合路由和明细路由。我们再看一下下面这个例子:
2020-6-3华为保密信息,未经授权禁止扩散
第4页, 共12页
文档名称文档密级
AS 100R111.1.1.0/24明细路由+聚合路由AS 200R213.1192.168.1.0/24192.168.2.0/24192.168.3.0/24192.168.4.0/24.1.0/24仅聚合路由12.1.1.0/24R3R414.0/21.1.4R5如图,AS100多归属到AS200,AS200需要从AS100接受全部路由以设置路由策略,但AS200仅能向AS300发送聚合路由。这个场景下,AS100就需要将全部路由发送给AS200。
这里一种简单的解决方式是利用我们上一回中所说的团队属性。让AS100发送给AS200的明细路由携带NO_EXPORT团队属性。配置以R1为例R1的关键配置:#bgp 100
peer 11.1.1.2 as-number 200 #
ipv4-family unicast undo synchronization
aggregate 192.168.0.0 255.255.0.0 /路由聚合为192.168.0.0/16,并且不抑制明细路由
network 192.168.1.0 network 192.168.2.0 network 192.168.3.0 network 192.168.4.0 peer 11.1.1.2 enable
peer 11.1.1.2 route-policy COMMUNITY export /对R2出方向使用路由策略COMMUNITY
peer 11.1.1.2 advertise-community /对R2发送携带团队属性的路由#
route-policy COMMUNITY permit node 5 /配置路由策略COMMUNITY,对匹配前缀列表AGGREGATE的路由不设置团队属性 if-match ip-prefix AGGREGATE apply community none#
route-policy COMMUNITY permit node 10 /未匹配上一个节点的路由,为其打上团
2020-6-3
华为保密信息,未经授权禁止扩散
第5页, 共12页