BGP(Border Gateway Protocol )邊界網關協議05

 社團屬性:

 
BGP Community
 
BGP Community只是BGP路由可以攜帶的一種屬性,是BGP中的一個可選可傳遞屬性(Optional Transitive),所以可以選擇爲路由配置Community,也可以不配,如果配置,Community需要明確要求BGP路由器保留和傳遞該屬性,否則鄰居收不到路由的Community屬性。
 
都知道Peer Group是用來簡化BGP鄰居配置的,而BGP Community則可以簡化BGP路由在某方面的配置。對於Community 屬性,它只是BGP路由中攜帶的一個標籤而已,可以分成不同的類別,分爲衆所周知的Community和私有Community,也可以分爲標準Community和擴展Community(Extended  Community),它們的區別如下:
 
 
衆所周知的Community
衆所周知的Community被所有BGP路由器認識和理解,並且必須對攜帶衆所周知的Community的路由做相應的操作,BGP擁有4個預先定義的衆所周知的Community,分別爲
no-export—不將路由發給任何eBGP鄰居,也就是隻能將該路由在本AS內部傳遞。
no-advertise—不將路由發給任何BGP鄰居。
nternet—可以將路由發給任何BGP鄰居。
local-as—同no-export,即不將路由發到AS外。
注:衆所周知的Community爲固定格式,不可自定義,只能使用預定義的格式。
 
私有Community
 
私有Community可以理解爲BGP路由的自定義標籤,所以可以通過爲BGP路由配置私有Community來配置任何自定義的標籤,該標籤可以在任何時候被利用。例如一臺BGP路由器爲某個Community標籤配置策略後,那麼所有攜帶該Community標籤的路由都將獲得相應策略。
 
在正常情況下,BGP路由器要對某些一定範圍內的路由配置策略,必須使用prefix list或 access list將所有符合條件的路由匹配出來,然後調用之後再配置相應策略,如果是網絡中所有路由器都要對這些路由設置策略,那麼就必須在網絡中每臺設備上單獨使用大量重複的配置將路由匹配出來,再做相應策略,工作煩瑣並且容易出錯,而在使用私有Community之後,就可以將特定的路由設置私有Community,並將其傳遞給所有鄰居,最終所有路由器都對擁有該私有Community的路由配置策略,並且對大量路由設置私有Community只需要在一臺路由器上完成後,發給所有鄰居即可,可見私有Community可以減少網絡中路由器對相同路由的匹配工作,這就是標籤的效果。
 
私有Community的類型爲數字,長度爲32bit,但被分爲兩種格式:
 
單個32bit,如123,666
或者2字節長度的AS號碼加兩字節普通數字,稱爲AS:NN格式,範圍爲1:0 至 65534:65535。
默認路由器支持單個32bit格式,若要支持AS:NN格式,必須開啓BGP-Community New-Format功能。
 
標準Community
標準Community就是普通路由可以設置的Community,包括上面提到的衆所周知Community和私有Community。
擴展Community(Extended  Community)
擴展Community爲MPLS中的VRF路由傳遞所定義的,在MPLS中有所解釋。
注:BGP Community必須明確要求傳遞,否則鄰居收不到相應Community。
 
要匹配攜帶Community的路由,方法爲使用Community List,並且有數字list和命名list兩種,每兩條語句之間相隔10,以10遞增,一組數字list最多支持100條語句,而命名list則不受此限制,但並不是所有IOS都支持命名list。在使用Community List匹配指定路由條目後,則可使用route-map來調用Community List,從而爲指定路由設置相應參數和策略,最終應用該route-map。
注:Community可以傳遞的距離不受限制,鄰居可以再傳給其它鄰居,Community可以被多個路由器多次使用。
 
配置BGP Community

說明:

上圖中所有路由器都配有Loopback地址,地址分別爲:

R1  Loopback 0  1.1.1.1/32      Loopback 11  11.1.1.1/24

R2  Loopback 0  2.2.2.2/32      Loopback 22  22.2.2.2/24

R3  Loopback 0  3.3.3.3/32      Loopback 33  33.3.3.3/24

R4  Loopback 0  4.4.4.4/32      Loopback 44  44.4.4.4/24

R5  Loopback 0  5.5.5.5/32      Loopback 55  55.5.5.5/24

R6  Loopback 0  6.6.6.6/32      Loopback 66  66.6.6.6/24

 

3.測試no-export

說明:在R5上將路由55.5.5.0/24設置no-export後傳遞給R4,由於帶no-export的路由不能傳遞給任何eBGP鄰居,所以R6將無法收到R4轉發的55.5.5.0/24。

(1)查看R4的BGP路由

   Network          Next Hop            Metric LocPrf Weight Path

*  11.11.11.11/32    3.3.3.3                                0 123 i

*>                            2.2.2.2                                0 123 i

*> 22.22.22.22/32   2.2.2.2                  0             0 123 i

*> 33.33.33.33/32   3.3.3.3                  0             0 123 i

*> 44.44.44.44/32   0.0.0.0                  0         32768 i

*> 55.55.55.55/32   45.0.0.5                 0             0 5 i

*> 66.66.66.66/32   46.0.0.6                 0             0 6 i

*  100.1.1.0/24         3.3.3.3                                0 123 i

*>                             2.2.2.2                                0 123 i

*> 100.1.2.0/24       46.0.0.6                 0             0 6 i

*> 100.1.3.0/24      46.0.0.6                 0             0 6 i

 

說明:R4擁有全部的路由,其中包括R5發來的所有路由。

 

(2)查看R6的BGP路由

r6#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   46.0.0.4                               0 4 123 i

*> 22.22.22.22/32   46.0.0.4                               0 4 123 i

*> 33.33.33.33/32   46.0.0.4                               0 4 123 i

*> 44.44.44.44/32   46.0.0.4                 0             0 4 i

*> 55.55.55.55/32   46.0.0.4                               0 4 5 i

*> 66.66.66.66/32   0.0.0.0                  0         32768 i

*> 100.1.1.0/24     46.0.0.4                               0 4 123 i

*> 100.1.2.0/24     0.0.0.0                  0         32768 i

*> 100.1.3.0/24     0.0.0.0                  0         32768 i

說明:R4已將自己的全部路由發給R6。

 

(3)R5將自己的路由55.55.55.55/32設置no-export後發給R4 

access-list 5 permit 55.55.55.55

!

route-map filter permit 10

 match ip address 5

 set community no-export

!         

route-map filter permit 20

!         

router bgp 5

 neighbor 45.0.0.4 send-community

 neighbor 45.0.0.4 route-map filter out

 

說明:R5已將自己的路由55.5.5.0/24設置no-export,並且指示將community傳給R4。

 

 (4)查看R4收到的帶community的路由

r4#sh ip bgp community       

 

   Network          Next Hop            Metric LocPrf Weight Path

*> 55.55.55.55/32   45.0.0.5                 0             0 5 i

 

r4#

說明:R4已經收到R5發來的帶community的路由。

 

 

(5)查看R4收到的帶community的路由

R4#show ip bg 55.55.55.55 

BGP routing table entry for 55.55.55.55/32, version 11

Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer)

Flag: 0x880

  Not advertised to any peer

  5

    45.0.0.5 from 45.0.0.5 (5.5.5.5)

      Origin IGP, metric 0, localpref 100, valid, external, best

      Community: no-export

說明:R4收到的路由55.5.5.0/24的community爲no-export,也就是不將該路由傳給任何eBGP鄰居。

 

 

 

(6)查看R4的eBGP鄰居R6的路由情況

 

r6#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   46.0.0.4                               0 4 123 i

*> 22.22.22.22/32   46.0.0.4                               0 4 123 i

*> 33.33.33.33/32   46.0.0.4                               0 4 123 i

*> 44.44.44.44/32   46.0.0.4                 0             0 4 i

*> 66.66.66.66/32   0.0.0.0                  0         32768 i

*> 100.1.1.0/24     46.0.0.4                               0 4 123 i

*> 100.1.2.0/24     0.0.0.0                  0         32768 i

*> 100.1.3.0/24     0.0.0.0                  0         32768 i

說明:因爲R4的路由55.5.5.0/24的community爲no-export,也就是不將該路由傳給任何eBGP鄰居,所以R6沒有收到55.55.55.55/32。

 

4.測試no-advertise

 

說明:在R4上將路由44.4.4.0/24設置no-advertise後傳遞給R2,由於帶no-advertise的路由不能傳遞給任何BGP鄰居,所以R1將無法收到R2轉發的44.4.4.0/24。

(1)查看R2的BGP路由

r2#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*>i11.11.11.11/32   1.1.1.1                  0    100      0 i

*> 22.22.22.22/32   0.0.0.0                  0         32768 i

*> 44.44.44.44/32   4.4.4.4                  0             0 4 i

*> 66.66.66.66/32   4.4.4.4                                0 4 6 i

*>i100.1.1.0/24     1.1.1.1                  0    100      0 i

*> 100.1.2.0/24     4.4.4.4                                0 4 6 i

*> 100.1.3.0/24     4.4.4.4                                0 4 6 i

 

說明:R2擁有全部的路由,其中包括R4發來的所有路由。

 

 (2)查看R1的BGP路由

 

r1#sh ip bgp

 

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   0.0.0.0                  0               32768 i

*>i22.22.22.22/32   2.2.2.2                  0    100      0 i

*>i33.33.33.33/32   3.3.3.3                  0    100      0 i

*>i44.44.44.44/32   2.2.2.2                  0    100      0 4 i

* i                             3.3.3.3                  0    100      0 4 i

*>i66.66.66.66/32   2.2.2.2                  0    100      0 4 6 i

* i                             3.3.3.3                  0    100      0 4 6 i

*> 100.1.1.0/24     0.0.0.0                  0                32768 i

*>i100.1.2.0/24     2.2.2.2                  0    100       0 4 6 i

* i                            3.3.3.3                  0    100       0 4 6 i

*>i100.1.3.0/24     2.2.2.2                  0    100       0 4 6 i

* i                              3.3.3.3                  0    100      0 4 6 i

說明:R2已將自己的全部路由發給R1。

 

 (3)R4將自己的路由44.4.4.0/24設置no-advertise後發給R2

access-list 4 permit 44.44.44.44

!

route-map R4-R2 permit 10

 match ip address 4

 set community no-advertise

!

route-map R4-R2 permit 20

 

 neighbor 2.2.2.2 send-community

 neighbor 2.2.2.2 route-map R4-R2 out

 

說明:R4已將自己的路由44.4.4.0/24設置no-advertise,並且指示將community傳給R2。

 

(4)查看R2收到的帶community的路由

R2#show ip bgp 

*Oct 10 12:30:04.351: %SYS-5-CONFIG_I: Configured from console by console

R2#show ip bgp ro

R2#show ip bgp 44.44.44.44

BGP routing table entry for 44.44.44.44/32, version 11

Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer)

Flag: 0x880

  Not advertised to any peer

  4

    4.4.4.4 from 4.4.4.4 (4.4.4.4)

      Origin IGP, metric 0, localpref 100, valid, external, best

      Community: no-advertise

 

說明:R2收到的路由44.4.4.0/24的community爲no-advertise,也就是不將該路由傳給任何BGP鄰居。

 

 

 

(5)查看R2的鄰居R1的路由情況

 

r1#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   0.0.0.0                  0                32768 i

*>i22.22.22.22/32   2.2.2.2                  0    100      0 i

*>i33.33.33.33/32   3.3.3.3                  0    100      0 i

*>i44.44.44.44/32   3.3.3.3                  0    100      0        4 i

*>i66.66.66.66/32   2.2.2.2                  0    100      0     4 6 i

* i                              3.3.3.3                  0    100      0    4 6 i

*> 100.1.1.0/24     0.0.0.0                  0                  32768  i

*>i100.1.2.0/24     2.2.2.2                  0    100      0        4 6 i

* i                             3.3.3.3                  0    100      0     4 6 i

*>i100.1.3.0/24     2.2.2.2                  0    100      0     4 6 i

* i                            3.3.3.3                  0    100      0      4 6 i

說明:因爲R2的路由44.4.4.0/24的community爲no-advertise,也就是不將該路由傳給任何鄰居,所以R1沒有收到R2發來的44.4.4.0/24。

 

 

5.測試普通私有Community

 

說明:私有Community的功能爲路由標籤,通過利用Community標籤來匹配路由。

 

(1)R4將100.0.0.0/8的全部路由的Community設置爲 123,併發給R5

route-map R4-R5 permit 10

 match ip address 44

 set community 123

!

route-map R4-R5 permit 20

 

access-list 44 permit 100.0.0.0 0.255.255.255

 

 neighbor 45.0.0.5 send-community

 neighbor 45.0.0.5 route-map R4-R5 out

 

說明:R4將100.0.0.0/8的全部路由的Community設置爲 123,併發給R5

 

 (2)查看R5收到的帶community的路由

 

r5#sh ip bgp community

   Network          Next Hop            Metric LocPrf Weight Path

*> 100.1.1.0/24     45.0.0.4                                     0 4 123 i

*> 100.1.2.0/24     45.0.0.4                                     0 4 6 i

*> 100.1.3.0/24     45.0.0.4                                     0 4 6 i

 

說明:R4收到的帶community的路由爲全部100.0.0.0/8。

 

(3)查看R5當前BGP路由情況

 

r5#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   45.0.0.4                                     0 4 123 i

*> 22.22.22.22/32   45.0.0.4                                     0 4 123 i

*> 33.33.33.33/32   45.0.0.4                                     0 4 123 i

*> 44.44.44.44/32   45.0.0.4                 0                  0 4 i

*> 55.55.55.55/32   0.0.0.0                  0                  32768 i

*> 66.66.66.66/32   45.0.0.4                                     0 4 6 i

*> 100.1.1.0/24     45.0.0.4                                       0 4 123 i

*> 100.1.2.0/24     45.0.0.4                                       0 4 6 i

*> 100.1.3.0/24     45.0.0.4                                       0 4 6 i

說明:R5當前BGP路由正常,包括10.0.0.0/8。

 

 

 

(5)R5將所有community爲123的路由的weight值改爲123

 

ip community-list 5 permit 123

 

route-map weight permit 10

 match community 5

 set weight 123

!

route-map weight permit 20

 

neighbor 45.0.0.4 route-map weight in

 

說明:R5上community-list匹配community爲123的路由,並將weight值改爲123。

 

 

 

(6)查看R5修改後的路由情況

 

r5#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   45.0.0.4                               0 4 123 i

*> 22.22.22.22/32   45.0.0.4                               0 4 123 i

*> 33.33.33.33/32   45.0.0.4                               0 4 123 i

*> 44.44.44.44/32   45.0.0.4                 0             0 4 i

*> 66.66.66.66/32   45.0.0.4                               0 4 6 i

*> 100.1.1.0/24     45.0.0.4                               123 4 123 i

*> 100.1.2.0/24     45.0.0.4                               123 4 6 i

*> 100.1.3.0/24     45.0.0.4                               123 4 6 i

說明:community爲123的路由100.0.0.0/8的weight值已被改爲123。

 

 

6.測試AS:NN私有Community

 

(1)R4將100.0.0.0/8的全部路由的Community設置爲 4:123,併發給R5

注:刪除上題的route-map

access-list 44 permit 100.0.0.0 0.255.255.255

!

route-map R4-R5 permit 10

 match ip address 44

 set community 262267

!

route-map R4-R5 permit 20

 

 neighbor 45.0.0.5 send-community

 neighbor 45.0.0.5 route-map R4-R5 out

 

r4(config)#ip bgp-community new-format

r5(config)#ip bgp-community new-format

打上此命令再看:

route-map R4-R5 permit 10

 match ip address 44

 set community 4:123

!

route-map R4-R5 permit 20

說明:R4將100.0.0.0/8的全部路由的Community設置爲4: 123,併發給R5,

講解:

community屬性是一組4個8位的數值。RFC中規定:前2個8位表示 ,後2個8位表示出於管理自定義的標識符,格式爲AA:NN;CISCO的格式爲NN:AA,用ip bgp-community new-format將CISCO的格式轉爲RFC格式。 如果不更改,如上,4:123這個數值,將10進制轉換爲16進制,4=0004   123=007B    加一起:4007B 將此16進制轉換爲10進制等於262267

 

周知團體屬性也是靠這個數值來運作的。

 

7.測試錯誤AS號碼下的BGP鄰居

 

說明:當在指定BGP鄰居時,如果AS號碼錯誤,可以通過AS欺騙的形式來建立鄰居。

 

(1)在R5上配置BGP

r5(config-router)#neighbor 4.4.4.4 remote-as 100

 

說明:鄰居4.4.4.4應該是AS 4的,而R5錯指爲100。

 

(2)在R4上配置AS 欺騙

 

r4(config)#router bgp 4

R4(config-router)#nei 45.0.0.5 local-as 100

 

說明:R4將自己針對鄰居5.5.5.5的AS改爲100,以建立BGP鄰居。

 

(3)查看R5的BGP路由

 

r5#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 11.11.11.11/32   45.0.0.4                               0         100 4 123 i

*> 22.22.22.22/32   45.0.0.4                               0         100 4 123 i

*> 33.33.33.33/32   45.0.0.4                               0         100 4 123 i

*> 44.44.44.44/32   45.0.0.4                 0             0        100 4 i

*> 55.55.55.55/32   0.0.0.0                  0             32768 i

*> 66.66.66.66/32   45.0.0.4                               0          100 4 6 i

*> 100.1.1.0/24     45.0.0.4                               0            100 4 123 i

*> 100.1.2.0/24     45.0.0.4                               0             100 4 6 i

*> 100.1.3.0/24     45.0.0.4                               0            100 4 6 i

說明:R4在將所有路由發給R5時,除了原有的所有真正AS外,虛假AS 100也被添加進了AS_Path中,用以欺騙R5。

 

 (4)查看R6的BGP路由

 

r6#sh ip bgp

*> 55.55.55.55/32   46.0.0.4                               0 4 100 5 i

說明:對於R4與R5之間的虛假AS 100,在將路由發給R6時,這個AS同樣存在。

 

  (5)在AS_Path中移除虛假AS 100

R4(config-router)#nei 45.0.0.5 local-as 100 no-prepend 

說明:指定虛假AS 100不添加在AS_Path中。

 

對於R5來說,虛假的AS 100無法去除,因爲對方鄰居指定爲100,如果AS_Path中沒有AS 100,則會有錯誤。

 

 (6)再次查看R6的BGP路由

r6#sh ip bgp

*> 55.55.55.55/32   46.0.0.4                               0 4 5 i

說明:在將路由發給與虛假AS 100不相關的鄰居時,虛假AS 可以不添加到AS_Path中。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章