BGP路由协议的那些事?(下)
上期问题:在BGP联盟内部的EBGP和IBGP对等体互相传递路由时,LP属性和MED属性是如何变化的呢?
还记得我们说BGP联盟的规则时,有两条关于LP属性和MED属性的规则怎么说来着:
1:路由的LOCAL_PREF属性在整个联盟中都被保留,而不仅仅是在为它们赋值的成员AS之内。
2:被宣告到联盟之内的路由的MED属性在整个联盟中都被保留。
由于在外界看来,BGP联盟实际上是一个AS,所以其LP属性和MED属性在整个BGP联盟中是被保留的。
上回说到交换机触类旁通,以MED属性和LP属性解决了出口流量控制的难题
如果遇到下图中的情况,该怎么办呢?
遇到这种情况我们可以使用“团队属性”
题外话:何为团队属性(Community)?
团队属性也是BGP路由属性的一种,利用团队属性可以将路由策略应用于一组路由。大家可以回忆一下,我们用LP、MED、AS_PATH属性来解决BGP路由的各种问题的时候,无一例外都要用到路由策略,而路由策略很多都是基于前缀来进行处理的。当需要处理路由特别多的时候,我们的配置和维护工作量就会大幅度增加,在大型网络中,这种配置和维护的成本是难以接受的。所以我们可以对需要做同一策略的路由标识一个相同的团队属性,这样就可以基于团队属性来对路由实施策略了。
我们还是以遇到的问题为例,先将场景简化一下:
这里我们要求R3发给R4的北京路由均打上LP属性值100,而发给R4的上海路由均打上LP属性值200。如何通过团队属性来实现这个目的呢?
一般的做法是,我们先要求R1通过路由策略,将发给R3的北京路由打上团队属性100:1。而发给R3的上海路由打上团队属性200:1。
注意:团队属性的团体号取值有两种形式:
1:整数形式,取值范围是0~4294967295
2:AA:NN形式,AA和NN的取值范围均为0~65535
我们要求R2也同样在将路由发给R3时打上团队属性。这样,我们在R3上就可以通过路由策略,将携带团队属性100:1的路由打上LP属性值100,将携带团队属性200:1的路由打上LP属性值200,这样配置和管理的工作量就小了很多。下面看一下具体配置。
R1的关键配置:
#
bgp 1
peer 11.1.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
network 1.1.1.0 255.255.255.0
network 2.2.2.0 255.255.255.0
peer 11.1.1.2 enable
peer 11.1.1.2 route-policy R1 export /对R3出方向使用路由策略R3
peer 11.1.1.2 advertise-community /注意这个必配,对R3发送路由时携带团队属性,缺省情况下,BGP不将团队属性发送给任何对等体。
#
route-policy R1 permit node 5 /配置路由策略,所有匹配前缀列表shaolin的路由打上团队属性100:1
if-match ip-prefix shaolin
apply community 100:1
#
route-policy R1 permit node 10 /配置路由策略,所有匹配前缀列表wudang的路由打上团队属性200:1
if-match ip-prefix wudang
apply community 200:1
#
ip ip-prefix shaolin index 10 permit 1.1.1.0 24 /前缀列表shaolin匹配前缀1.1.1.0/24
ip ip-prefix wudang index 10 permit 2.2.2.0 24 /前缀列表wudang匹配前缀1.1.1.0/24
#
R2的关键配置:
#
bgp 2
peer 12.1.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
network 3.3.3.0 255.255.255.0
network 4.4.4.0 255.255.255.0
peer 12.1.1.2 enable
peer 12.1.1.2 route-policy R2 export
peer 12.1.1.2 advertise-community
#
route-policy R2 permit node 5
if-match ip-prefix shaolin
apply community 100:1
#
route-policy R2 permit node 10
if-match ip-prefix wudang
apply community 200:1
#
ip ip-prefix shaolin index 10 permit 3.3.3.0 24
ip ip-prefix wudang index 10 permit 4.4.4.0 24
#
R3的关键配置:
#
bgp 100
peer 11.1.1.1 as-number 1
peer 12.1.1.1 as-number 2
peer 13.1.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
peer 11.1.1.1 enable
peer 12.1.1.1 enable
peer 13.1.1.2 enable
peer 13.1.1.2 route-policy R3 export /对R3出方向实施路由策略R3
peer 13.1.1.2 next-hop-local /这条必配,否则R3上BGP路由不生效
#
route-policy R3 permit node 5 /配置路由策略R3,所有匹配团队属性过滤器1的路由打上LP属性值100
if-match community-filter 1
apply local-preference 100
#
route-policy R3 permit node 10 /配置路由策略R3,所有匹配团队属性过滤器2的路由打上LP属性值200
if-match community-filter 2
apply local-preference 200
#
ip community-filter 1 permit 100:1 /配置团队属性过滤器1,允许团体属性100:1
ip community-filter 2 permit 200:1 /配置团队属性过滤器2,允许团体属性200:1
#
配置完成后,我们在R3上通过命令display bgp routing-table community 100:1和命令display bgp routing-table community 200:1查看团队属性100:1和200:1对应的BGP路由。
可以看到,所有北京路由已经被打上了LP属性值100,而所有上海路由已经被打上了LP属性值200。
除了可以为路由配置团队属性值外,还能指定路由属于一些众所周知(Well-known)的团队。
下面我们简单介绍一下几种众所周知的团队属性::
1:Internet:设备收到携带该团队属性的路由可以将之发送给任何对等体,缺省情况下任何路由都属于该团体。
2:No_Advertise:设备收到携带该团队属性的路由后,不向任何对等体发送该路由。
3:No_Export:设备收到携带该团队属性的路由后,不向AS外(EBGP对等体)发送该路由。
4:No_Export_Subconfed:设备收到携带该团队属性的路由后,只能在AS内传递,并且如果配置BGP联盟,不向其他子AS发送该路由。
下面以No_Export说明一下,其他周知团队属性类似。
假设上例中,AS1不希望AS2能够访问本AS中的北京网段和上海网段,这时就可以利用No_Export来实现。先看一下R2的BGP路由表:
这时,R2上是有AS1的路由的。我们在R1上修改如下配置:文章来源:https://www.toymoban.com/news/detail-675763.html
#
route-policy R1 permit node 5
if-match ip-prefix shaolin
apply community 100:1 no-export
#
route-policy R1 permit node 10
if-match ip-prefix wudang
apply community 200:1 no-export
#
这样可以使R1在发送路由时也携带No_Export团队属性,查看R2的BGP路由表:
R2上已经没有AS1的路由。文章来源地址https://www.toymoban.com/news/detail-675763.html
到了这里,关于BGP路由协议的那些事?(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!