论剑BGP8

四:仅发送聚合路由和选定的明细路由

在上述场景下,通过仅发送聚合路由和选定的明细路由,我们还可以实现链路的备份和负载分担,方法如下:

1:让R1-R2的链路只宣告192.168.1.0/24192.168.2.0/24这两条路由。

2:让R3-R4的链路只宣告192.168.3.0/24192.168.4.0/24这两条路由

3:通过上述两条链路宣告聚合路由作为备份,再任一条链路出现故障的情况下,所有该链路上访问AS100的流量都会迅速被切换到另外一条链路上。

 这里,我们需要R1R3分别发送聚合路由和一部分明细路由,这时,我们会用到aggregate命令的另外一个参数“suppress-policy”。下面给出R1R3的关键配置:

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 suppress-policy SUPPRESS  /聚合路由时使用抑制列表SUPPRESS,对于匹配路由策略SUPPRESS的明细路由进行抑制。

  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

#

route-policy SUPPRESS permit node 5  /配置路由策略,注意这里只能配置if-match子句,用来匹配被抑制的路由。

 if-match ip-prefix SUPPRESS

#

ip ip-prefix SUPPRESS index 10 permit 192.168.3.0 24  /配置前缀列表

ip ip-prefix SUPPRESS index 20 permit 192.168.4.0 24

#

R3的关键配置:

#

bgp 100

 peer 12.1.1.2 as-number 200

 #

 ipv4-family unicast

  undo synchronization

  aggregate 192.168.0.0 255.255.0.0 suppress-policy SUPPRESS

  network 192.168.1.0

  network 192.168.2.0

  network 192.168.3.0

  network 192.168.4.0

  peer 12.1.1.2 enable

#

route-policy SUPPRESS permit node 5

 if-match ip-prefix SUPPRESS

#

ip ip-prefix SUPPRESS index 10 permit 192.168.1.0 24

ip ip-prefix SUPPRESS index 20 permit 192.168.2.0 24

#

我们通过抑制特定的明细路由,实现了R1R3只宣告聚合路由和特定的明细路由,在R5上查看BGP路由表:

可以看到,R5上聚合路由有两个下一跳,而192.168.1.0/24192.168.2.0/24这两条路由的下一跳为R2,而192.168.3.0/24192.168.4.0/24这两条路由的下一跳为R4。这就实现了访问AS100不同网段的流量的负载分担,而一旦有一条链路出现故障,由于聚合路由的存在,可以将流量快速切换到另外一条链路上。

 

五:仅聚合特定的明细路由

依然是这个场景下,假定我们要求R1只将192.168.1.0/24192.168.2.0/24这两条路由进行聚合,而聚合其余的明细路由。如图:

这里,我们可以用到aggregate命令的“origin-policy”参数。下面给出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 detail-suppressed origin-policy ORIGIN  /这里只有匹配路由策略ORIGIN的路由被聚合,其他明细路由未被聚合。并只宣告聚合路由

  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

#

route-policy ORIGIN permit node 5  /配置路由策略ORIGIN,注意这里只能配置if-match子句,匹配前缀列表ORIGIN的路由

 if-match ip-prefix ORIGIN

#

ip ip-prefix ORIGIN index 10 permit 192.168.1.0 24  /配置前缀列表

ip ip-prefix ORIGIN index 20 permit 192.168.2.0 24

#

这样,就实现了只聚合特定的明细路由,而其余明细路由未被聚合,我们查看一下R2BGP路由表:

可以看到,R2BGP路由表中,只有一条聚合路由,和两条明细路由。由于192.168.1.0/24192.168.2.0/24这两条路由已被聚合,而R1上又配置了detail-suppressed参数,所以这两条明细路由并未发送给R2,而其余明细路由由于未被聚合,所以被发送给了R2,这里还需要说明的是,只有被聚合的明细路由(192.168.1.0/24192.168.2.0/24)均失效的情况下,聚合路由才会实效,而其余明细路由失效与否是不会影响聚合路由的。

 

六:修改聚合路由的属性

还是这个场景,在R5上,聚合路由的下一跳有两个,分别是R2R4,而我们很可能要求手动实现R5选择R4作为优选下一跳,而选择R2作为备份下一跳。看过第五回的小伙伴们可能会说,MED属性可以解决这个问题。如果用MED属性,我们需要在R2R4上部署路由策略,这里我们采用另外一种方式:在发送聚合路由的时候,可以修改聚合路由的属性。

由于明细路由均为我们手动NetworkR1的,所以路由的Origin属性均为IGP,而当两条BGP路由的Origin分别为IGPIncomplete时,BGP会优选Origin属性为IGP的路由。所以我们可以将R1发送给R2的聚合路由属性修改为Incomplete

这时,我们会用到了aggregate命令的另一个参数“attribute-policy”。下面给出具体配置:

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 attribute-policy ATTRIBUTE  /按照路由策略ATTRIBUTE修改聚合路由属性

  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

#

route-policy ATTRIBUTE permit node 5  /配置路由策略ATTRIBUTE修改属性为incomplete

 apply origin incomplete

#

我们查看R5BGP路由表:

可以看到,BGP优选了R4作为优选下一跳,由于R4对应的路由Ogn值为“I”代表该路由的Origin属性为IGP,而R2对应的路由的Ogn值为“?”代表该路由的Origin属性为Incomplete

 

交换机侃侃而谈,与会众人均点头称是。IP长老点头笑道:“自古英雄出少年,路由老祖门下,果然卓有见识,名不虚传啊,这管理网络江湖中路由,和优化路由表的任务就交给你了!”

 

本期问题:到此,我们已经提到了BGP的多种属性。小伙伴们可能会有困扰,这么多属性,如果BGP的选路结果矛盾该怎么办呢?这里小伙伴们可以先行思考一下,我们会在下期做详细的解答。

你可能感兴趣的:(论剑BGP8)