1、BGP community属性 community属性。这是不同于选路属性的一个属性。该属性具有以下几个特点; 1 community是一个任选可透明传送属性,它可以简化策略的执行。 2它是cisco的一个专有属性,现在在RFC1997中已被标准化。 3 commnity属性标明一个目的地作为一些目的地团体中的一个成员,这些目的地共享一个或多个共同的特性。 4 community值可以自己定义,另外有几个已经定义好的团体属性: NO_ADVERTISE:表示携带该值的路由不能公布给EBGP和IBGP邻居 NO_EXPORT:表示携带该值的路由不能公布给EBGP邻居 LOCA
2、L_AS:(NO_EXPORT_SUBCONFED)携带该值的路由可以公布给联盟内的其它子自治系统但不能在构成联盟的AS以外进行公布。 试验步骤如下: 配置BGP,在本实验中要建立联邦 我们顺便学习一下联邦 配置团体属性,让2.2.2.0网络只被R2学习到 配置团体属性,让22.22.22.0网络只被R2,R3学习到 配置团体属性,让222.222.222.0网络只被R2,R3,R4学习到 配置团体属性,让R1不传递2.2.2.0这条路由 二 试验配置 配置BGP r1#sh run | b r b router bgp 100 no synchroniza
3、tion network 2.2.2.0 mask 255.255.255.0 network 22.22.22.0 mask 255.255.255.0 network 222.222.222.0 neighbor 12.0.0.2 remote-as 234 no auto-summary r2#sh run | b r b router bgp 64512 no synchronization bgp confederation identifier 234 /指明联邦号是234 neighbor 12.0.0.1 remote-as 100
4、neighbor 23.0.0.3 remote-as 64512 /R3跟它处于联邦内同一个子AS中 neighbor 23.0.0.3 next-hop-self /指定下一跳是它自己 no auto-summary r3#sh run | b r b router bgp 64512 no synchronization bgp confederation identifier 234 bgp confederation peers 64513 /指明该联邦内的另一个子AS neighbor 23.0.0.2 remote-as 6451
5、2 neighbor 34.0.0.4 remote-as 64513 /R4跟它处于联邦内不同子AS之间 no auto-summary r4#sh run | b r b router bgp 64513 no synchronization bgp confederation identifier 234 bgp confederation peers 64512 neighbor 34.0.0.3 remote-as 64512 neighbor 45.0.0.5 remote-as 500 no auto-summary r5#sh
6、 run | b r b router bgp 500 no synchronization neighbor 45.0.0.4 remote-as 234 no auto-summary 查看网络 r2#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 12.0.0.1 0 0 100 i *> 22.22.22.0/24 12.0.0.1 0
7、 0 100 i *> 222.222.222.0 12.0.0.1 0 0 100 i r3#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i2.2.2.0/24 23.0.0.2 0 100 0 100 i *>i22.22.22.0/24 23.0.0.2 0 100 0 100 i *>i222.22
8、2.222.0 23.0.0.2 0 100 0 100 i 在R2上已经修改了下一跳,所以这时下一跳已经是R2自己了。 r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path * 2.2.2.0/24 23.0.0.2 0 100 0 (64512) 100 i * 22.22.22.0/24 23.0.0.2 0 100 0 (64512) 1
9、00 i * 222.222.222.0 23.0.0.2 0 100 0 (64512) 100 i 注意在R4上看,下一跳依然是R2;为什么不是R3呢?因为R3,R4虽然在同一联邦内,但它们在不同的子AS之间,应该是EBGP关系。EBGP之间传递路由时,下一跳因该是EBGP邻居。但这里为什么不是呢。这就是联邦内EBGP与联邦外EBGP的不同之处。所以现在这些路由的下一跳对于R4来说是不可达的,所以现在路由无法优化,也就无法向R5传递。现在在R3上修改下一跳 r3(config)#router bgp 64512 r3(config-ro
10、uter)#neighbor 34.0.0.4 next-hop-self r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 22.22.22.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 222.222.222.0 34.0.0.3
11、 0 100 0 (64512) 100 i 这时,在R4上看,下一跳已经变成了R3,路由可以优化。注意在AS路径中可以看到路由经过了子AS 64512 r5#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 45.0.0.4 0 234 100 i *> 22.22.22.0/24 45.0.0.4 0 234 1
12、00 i *> 222.222.222.0 45.0.0.4 0 234 100 i R5上也可以收到这些路由了,注意R5的AS路径看不到子AS,只能看到联邦的总AS号。因此可以得出这样的结论:联邦内的子AS对于联邦外部来说是隐藏的,不可见的。 到现在为止,所有路由器都可以学习到路由,下面就要应用团体属性来控制路由的传递了。 三 配置团体属性,让2.2.2.0网络只被R2学习到 这里最合适的community属性应该是:no_advertise因为它不会向任何EBGP IBGP邻居公布路由。 r1(confi
13、g)#access-list 1 permit 2.2.2.0 0.0.0.255 /用ACL匹配该路由 r1(config)#route-map WY permit 10 r1(config-route-map)#match ip add 1 r1(config-route-map)#set community no-advertise /设定团体属性 r1(config)#route-map WY permit 20 /与ACL一样route-map最后也隐藏了一句deny any,所以在这里要允许所有,要不然其它两条路由会因为匹配不上而无法从R1传递出去。 r1(conf
14、ig)#router bgp 100 r1(config-router)#neighbor 12.0.0.2 route-map WY out /在进程下出方向调用route-map r1(config-router)#neighbor 12.0.0.2 send-community /让R2传递该社团属性 先在R2上进行查看; r2#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 12.0.0.1 0
15、 0 100 i *> 22.22.22.0/24 12.0.0.1 0 0 100 i *> 222.222.222.0 12.0.0.1 0 0 100 i R2可以学习到该路由 在R3上查看 r3#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i22.22.22.0/24 23.0.0.2 0 100
16、0 100 i *>i222.222.222.0 23.0.0.2 0 100 0 100 i 可以看到R3已经收不到2.2.2.0这个网络了,往后的路由器也无法收到了。所以社团属性 No_advertise满足了只让R2学到该路由的需求。 四 配置团体属性,让22.22.22.0网络只被R2,R3学习到 因为R2,R3处于联邦内同一个子AS,意思是该路由不能传递出这个子AS,所以可以用community属性:LOCAL_AS r1(config)#access-list 2 permit 22.22.22.0 0.0.0
17、255 r1(config)#route-map WY permit 10 r1(config-route-map)#match ip add 2 r1(config-route-map)#set community local-AS r1(config)#route-map WY permit 20 现在进行查看 r2#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 12.0.0.1 0
18、 0 100 i *> 22.22.22.0/24 12.0.0.1 0 0 100 i *> 222.222.222.0 12.0.0.1 0 0 100 i R2可以学习到。 r3#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i2.2.2.0/24 23.0.0.2 0 100 0 100 i *>i
19、22.22.22.0/24 23.0.0.2 0 100 0 100 i *>i222.222.222.0 23.0.0.2 0 100 0 100 i R3也可以学到 r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 22.22.22.0/24
20、 34.0.0.3 0 100 0 (64512) 100 i *> 222.222.222.0 34.0.0.3 0 100 0 (64512) 100 i 为什么R4依然可以学习到,难道属性没起作用吗?显然属性没有起作用,这是因为R2向R3传递该路由时没有让R3继承这个属性,所以R4依然可以学习到,现在必须在R2上配置让R3继承这个属性,这样R3向R4传递路由时团体属性才能生效。 r2(config)#router bgp 64512 r2(config-router)#neighbor
21、23.0.0.3 send-community 在R2上配置让R3继承该属性 r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 222.222.222.0 34.0.0.3 0 100 0 (64512) 100 i 现在R4就收不到这条路由了,R5当然也收不到,LOCAL_AS团体属性满足
22、了这个需求。 五 配置团体属性,让222.222.222.0网络只被R2,R3,R4学习到 这个需求意思是让这条路由不传到联邦外(大AS之外),所以要用NO_EXPORT属性 r1(config)#access-list 3 permit 222.222.222.0 0.0.0.255 r1(config)#route-map WY permit 10 r1(config-route-map)#match ip add 3 r1(config-route-map)#set community no-export r1(config)#route-map WY
23、permit 20 为了让R4能继承到该属性,必须在R1,R2,R3都配置send-community以便让该属性进行传递。在配置了传递属性之后,现在进行查看 r4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 34.0.0.3 0 100 0 (64512) 100 i *> 22.22.22.0/24 34.0.0.3 0 100 0 (64512)
24、100 i *> 222.222.222.0 34.0.0.3 0 100 0 (64512) 100 i R4可以收到 r5#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 45.0.0.4 0 234 100 i *> 22.22.22.0/24 45.0.0.4 0 234
25、 100 i R5已经学习不到222.222.222.0了。需求满足。 但上面的做法有一个明显的缺点就是要在R1,R2,R3上配置传递该属性,比较麻烦。 现在用另一种比较简单的方法。 在R4上直接进行配置。 r4(config)#access-list 1 permit 222.222.222.0 0.0.0.255 r4(config)#route-map WY permit 10 r4(config-route-map)#match ip add 1 r4(config-route-map)#set community no-export r4(conf
26、ig)#route-map WY permit 20 r4(config)#router bgp 64513 r4(config-router)#neighbor 34.0.0.3 route-map WY in 指定R3向R4传递路由时应用该route-map,所以是in方向的。 现在在R5上进行查看 r5#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 2.2.2.0/24 45.0.0.4 0 234 100 i *> 22.22.22.0/24 45.0.0.4 0 234 100 i 这时,R5已经学习不到这条路由了,可见这种做法也起了作用 六 <>






