BGP中有标准community属性和拓展community属性,拓展community属性在MP-BGP中引入,指RTSOO。标准community属性在运行商的网络中用于区分用户路由,与路由标记(tag)有异曲同工的功能。

下面的这个实验简单演示一下community的使用。

拓扑:

 

说明:

1.              R1,R2属于运营商网络AS12R3,R4,R5都属于客户网络,其中R3,R4是两个公司的分部,他们之间建立通信。

2.              R2通过OSPF 23获取客户R3的路由,R1分别通过OSPF14OSPF15这两个进程获取R4,R5的路由。

3.              R1,R2使用loopback 0建立BGP peer,通过静态路由实现TCP连接。

 

配置:

1.  完成基础配置实现IGP通信

R1#sh ip int brie

Interface                  IP-Address      OK? Method Status                Protocol

Serial0/0                  12.1.1.1        YES manual up                    up     

Serial0/2                  14.1.1.1        YES manual up                    up     

Serial0/3                  15.1.1.1        YES manual up                    up     

Loopback0                 1.1.1.1         YES manual up                   up     

R1#sh run | b router ospf 

router ospf 14

 router-id 14.1.1.1

 log-adjacency-changes

network 14.1.1.1 0.0.0.0 area 0

!

router ospf 15

 router-id 15.1.1.1

 log-adjacency-changes

 network 15.1.1.1 0.0.0.0 area 0

!

ip route 2.2.2.2 255.255.255.255 Serial0/0 12.1.1.2

 

R2:

R2#sh ip int brie

Interface                  IP-Address      OK? Method Status                Protocol

Serial0/0                  12.1.1.2        YES manual up                    up     

Serial0/1                  23.1.1.2        YES manual up                    up     

Serial0/2                  unassigned      YES unset  administratively down down   

Serial0/3                  unassigned      YES unset  administratively down down   

Loopback0                  2.2.2.2         YES manual up                    up     

R2#sh run | b router ospf

router ospf 23

 router-id 23.1.1.2

 log-adjacency-changes

 network 23.1.1.2 0.0.0.0 area 0

!

ip route 1.1.1.1 255.255.255.255 Serial0/0 12.1.1.1

 

R3:

R3#sh ip int brie

Interface                  IP-Address      OK? Method Status                Protocol

Serial0/1                  23.1.1.3        YES manual up                    up     

Serial0/2                  34.1.1.3        YES manual up                    down   

Loopback0                  3.3.3.3         YES manual up                    up     

R3#sh run | b router ospf

router ospf 23

 router-id 3.3.3.3

 log-adjacency-changes

 passive-interface Loopback0

 network 3.3.3.3 0.0.0.0 area 0

 network 23.1.1.3 0.0.0.0 area 0

 

R4,R5配置略

 

2.  完成BGP配置

R1:

router bgp 12

 no synchronization

 bgp router-id 1.1.1.1

 bgp log-neighbor-changes

neighbor 2.2.2.2 remote-as 12

 neighbor 2.2.2.2 update-source Loopback0

 no auto-summary

 

R2:

router bgp 12

 no synchronization

 bgp router-id 2.2.2.2

 bgp log-neighbor-changes

neighbor 1.1.1.1 remote-as 12

 neighbor 1.1.1.1 update-source Loopback0

no auto-summary

 

3.  配置community列表,建立route-map

我们需要分别把OSPF23OSPF14重发布进BGP12,在重发布的时候应用route-map打上community属性。

首先我们使用启用community的新版格式,cisco IOS默认的格式不好用。使用下面的命令启用。在R2,R3全局模式下启用。

ip bgp-community new-format

 

         R1:

R1(config)#route-map set-community-ospf14

R1(config-route-map)#set community 12:14

R1(config-route-map)#exi

 

R2(config)#route-map set-community-ospf23

R2(config-route-map)#set community 12:23

R2(config-route-map)#exi

4.  IGP重发布进BGP      

IGP重发布进如BGP,结合前面步骤中定义的route-map

R1(config)#router b 12

R1(config-router)#redis ospf 14 route-map set-community-ospf14

 

 

R2(config)#router b 12

R2(config-router)#redis ospf 23 route-map set-community-ospf23

 

 

5.  BGP重发布进IGP

BGP重发布进IGP是不推荐的,如果非要如此的话一定要做好过滤。本实验其实就是对这种情况做的一种过滤方法。默认情况下BGP不可以 重发布进IGP,我们首先开启重发布功能,然后定义community-list route-map调用来进行过滤。

R1:

ip community-list 10 permit 12:23

route-map match-community-ospf23 permit 10

match community 10

 

router ospf 14

redistribute bgp 12 subnets route-map match-community-ospf23

 

R2:

ip community-list 10 permit 12:14

route-map match-community-ospf14 permit 10

match community 10

 

router ospf 23

redistribute bgp 12 subnets route-map match-community-ospf14

6.最后,还有一个重要的小细节不能忘:想peer传递community属性

R1:

Router b 12

neighbor 2.2.2.2 send-community

 

R2:

Router b 12

neighbor 1.1.1.1 send-community

7.检查

R1#sh ip bgp community 12:14

BGP table version is 17, local router ID is 1.1.1.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

              r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

 

   Network          Next Hop            Metric LocPrf Weight Path

*> 4.4.4.4/32       14.1.1.4                65         32768 ?

*> 14.1.1.0/24      0.0.0.0                  0         32768 ?

R1#sh ip b community 12:23

BGP table version is 17, local router ID is 1.1.1.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

              r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path

*>i3.3.3.3/32       23.1.1.3                65    100      0 ?

*>i23.1.1.0/24      2.2.2.2                  0    100      0 ?

 

R4#sh ip route ospf

     3.0.0.0/32 is subnetted, 1 subnets

O E2    3.3.3.3 [110/1] via 14.1.1.1, 00:15:56, Serial0/0

     23.0.0.0/24 is subnetted, 1 subnets

O E2    23.1.1.0 [110/1] via 14.1.1.1, 00:15:56, Serial0/0

 

总结:其实这也是一种对等模型的×××,因为他符合对等模型的定义,运营商了解客户的路由,不同客户之间实现了路由的分离。本实验只演示了一对客户网络,所以还不能够很明显的观察到×××的特点,如果使用多组的客户对等起来的话就比较容易看出来了。但是,这种模型带来的问题就是管理开销比较大,拓展性不高。MPLS ×××是一个很好的解决方案。

这个实验主要就是简单演示下community的使用,需要注意一些小细节,当初我就在上面搞了好半天才做成功。好,到此结束!