上期问题:在BGP联盟内部的EBGPIBGP对等体互相传递路由时,LP属性和MED属性是如何变化的呢?

 还记得我们说BGP联盟的规则时,有两条关于LP属性和MED属性的规则怎么说来着:

1路由的LOCAL_PREF属性在整个联盟中都被保留,而不仅仅是在为它们赋值的成员AS之内。

2:被宣告到联盟之内的路由的MED属性在整个联盟中都被保留。

由于在外界看来,BGP联盟实际上是一个AS,所以其LP属性和MED属性在整个BGP联盟中是被保留的。

 

 

上回说到交换机触类旁通,以MED属性和LP属性解决了出口流量控制的难题,BGP神功可谓已有小成。网络武林大会日期日近,交换机众人也已准备前往。

这一日,交换机率众师兄妹来与路由老祖辞行,老祖道:“徒儿,你天资聪颖,本门武功又尽得我真传,此次网络武林大会,必能以BGP神功名扬天下。但为师仍然有几句话,你须谨记。BGP神功心法你虽已熟记,然其中变化,未必能融会贯通。临敌之际,切忌生搬硬套,BGP神功之精髓所在,即随意挥洒,不拘细节,这些还需你自己领悟啊!”

交换机道:“徒儿谨记师父教诲,此去网络武林大会,必将师门武功发扬光大。”说罢便带着师弟师妹下山而去。

这日,交换机众人正行之际,迎面只见一群人立于路中,当中两人,一老一少,老者面貌清奇,一脸严肃。那少年却甚是清秀,不住左顾右盼。身后一众汉子,或坐或立,竟已将这必经之路堵住。交换机上前抱拳道:“在下交换机,路经此地,还请老丈让开道路,让我等赶路。”

老者微笑道:“阁下可是前往网络武林大会?”

交换机微怔,不知这老者何以得知,只得道:“正是。”

老者微笑不语,那清秀少年在旁说道:“呀,你就是那路由门下的交换机吧,听说你BGPIGP神功很厉害,只要你破得我几个师兄的阵法,我们就让你过去。”说罢纤手一挥,身后几个汉子一跃上前。

交换机微微不悦,仍恭敬道:“在下确是路由门下交换机,既然老丈有意指点,在下也只能领教各位高招了。”

老丈道:“我这阵法很简单,你看我这几个劣徒各自学到若干网段路由,这些网段的路由都分属于两个门派少林和武当。只是访问AS100访问少林的流量需要从交换机这里过,访问武当的流量需要从S127这里过。”


 

交换机看后心中暗喜:这阵法在我修习BGP之前,还真是难以处理,只是目前已然今非昔比。用BGP中的LP属性,可以轻松应对。只要我和S127把收到的少林路由和武当路由标明不同的LP属性,就可以完美的解决这个问题。

交换机转身对师弟师妹们道:“既然这样,我路由门下也不能坠了师门的名声。S97S77S67S57你们4个负责接收路由,然后全部发给我和S127,我们给路由打上不同的LP属性,这个阵法可破也。”

说罢,已与那几个汉子交上了手。

 

题外话:这里,交换机的想法没错,可是他却忽略了一个问题。按照我们上一期所说的LP属性的配置方法,交换机需要对每一个发过来的路由,配置前缀列表,并且配置路由策略,为符合该前缀列表的路由打上LP属性。这样如果发过来的路由数量非常大的时候,这样的配置会非常繁琐,并且容易出错。那么小伙伴们先想一想,如何解决这个问题呢。

 

甫一交手,交换机BGP神功运转如意,颇觉得心应手,眼光微转,只见那清秀少年直望向自己这边,脸上似有紧张之色。交换机忖道:“他如此关心师兄,我出手还是留点分寸,到时也不伤双方和气。”哪知一念未了,突觉路由大量涌至,顿觉手忙脚乱,忙集中精神应付。但是路由却越积越多,每条路由都需要配置前缀列表和路由策略,眼看已无法支撑。再看S127S127修为不如自己,情况比自己更糟。交换机焦急万分,这阵法虽简单,却直接粗暴,自己大意轻敌,看来今日一败在所难免了。忽然,脑海中闪出老祖临行前得嘱咐:“BGP神功之精髓所在,即随意挥洒,不拘细节。临敌之际,万不可生搬硬套。”自己只知LP属性,难道BGP中没有其他方法可破此阵了么?灵光一现,交换机已想到了一个方法,对师弟们大声喊道:“团队属性。”

 

题外话:何为团队属性(Community)?

团队属性也是BGP路由属性的一种,利用团队属性可以将路由策略应用于一组路由。大家可以回忆一下,我们用LPMEDAS_PATH属性来解决BGP路由的各种问题的时候,无一例外都要用到路由策略,而路由策略很多都是基于前缀来进行处理的。当需要处理路由特别多的时候,我们的配置和维护工作量就会大幅度增加,在大型网络中,这种配置和维护的成本是难以接受的。所以我们可以对需要做同一策略的路由标识一个相同的团队属性,这样就可以基于团队属性来对路由实施策略了。

我们还是以交换机遇到的问题为例,先将场景简化一下:

 这里我们要求R3发给R4的少林路由均打上LP属性值100,而发给R4的武当路由均打上LP属性值200。如何通过通过团队属性来实现这个目的呢?

一般的做法是,我们先要求R1通过路由策略,将发给R3的少林路由打上团队属性100:1。而发给R3的武当路由打上团队属性200:1

注意:团队属性的团体号取值有两种形式:

1:整数形式,取值范围是0~4294967295

2AA:NN形式,AANN的取值范围均为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  /这条必配,否则R3BGP路由不生效

#

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:1200:1对应的BGP路由。

 

可以看到,所有发来的少林路由都被打上了团队属性100:1,而武当路由被打上了200:1

我们在R4上查看BGP路由表:

 

可以看到,所有少林路由已经被打上了LP属性值100,而所有武当路由已经被打上了LP属性值200

 

除了可以为路由配置团队属性值外,还能指定路由属于一些众所周知(Well-known)的团队。

下面我们简单介绍一下几种众所周知的团队属性:

1Internet:设备收到携带该团队属性的路由可以将之发送给任何对等体,缺省情况下任何路由都属于该团体。

2No_Advertise:设备收到携带该团队属性的路由后,不向任何对等体发送该路由。

3No_Export:设备收到携带该团队属性的路由后,不向AS外(EBGP对等体)发送该路由。

4No_Export_Subconfed:设备收到携带该团队属性的路由后,只能在AS内传递,并且如果配置BGP联盟,不向其他子AS发送该路由。

下面以No_Export说明一下,其他周知团队属性类似。

假设上例中,AS1不希望AS2能够访问本AS中的少林网段和武当网段,这时就可以利用No_Export来实现。先看一下R2BGP路由表:

 

这时,R2上是有AS1的路由的。我们在R1上修改如下配置:

#

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团队属性,查看R2BGP路由表:

R2上已经没有AS1的路由。

 

交换机大喝一声,师弟们顿时领悟,通过团队属性,阵法运行顿时又恢复正常。良久,老者长叹一声,说道:“你们都下去吧。”交换机收功上前道:“几位大叔神功精妙,在下远所不及,若不是身有要事,必留下和诸位再切磋切磋。”

老者道:“年轻人胜而不娇,也当真难得。路由老祖收了个好徒弟啊!你们过去吧。”说罢,摆摆手让身后众人让开道路。交换机众人鱼贯而过,却见那清秀少年脸上紧张之色已去,此时却一脸微笑,好似遇到了什么开心的事情。交换机暗忖:“这少年也忒奇怪,刚才一幅紧张自己师兄的样子,现在却好像若无其事。”未及多想,已然跟上众人离去。

 

本期问题:BGP路由经常数以万计,如果有大量不同但是又非常相似的团队属性需要实施同样的路由策略(比如:需要对携带团队属性“100:1200:1300:1400:1500:1…”的路由实施相同的策略),该如何简化配置呢?