BGP路由聚合

在BGP協議中,路由能夠分爲自動聚合和手支聚合兩種。
自動聚合:只對重分佈到BGP中的路由生效,自動聚合會聚合到主類網絡,這會致使不精確的彙總,咱們不該該在生產環境中使用自動聚合。命令:summary automatic
手工聚合:要求本路由器至少有一條明細路由才能進行手工聚合,而且要使用network通告明細路由。命令:aggregate 。手工聚合後面能夠攜帶一些參數,下面咱們分別就這些參數進行簡單的講解。node

  1. Detail-suppressed:對於華爲路由器來說,在進行BGP的手工聚合時,默認不會抑制明細路由,即在手工聚合之後,會將彙總路由和明細路由都通告給鄰居。使用Detail-suppressed能夠抑制明細路由的通告,只通告彙總路由給鄰居。
  2. AS_set:攜帶路由起源的AS屬性,用於防環。當在非明細路由起源的AS聚合路由時,默認會丟棄明細路由的起源AS屬性,這樣可能致使環路,可添加AS_set屬性則會攜帶明細起源的AS號到路徑屬性的最右邊,若是明細從多個AS產生,明會使用{}括起來。
  3. Attribute-policy:能夠更改路由的屬性,好比一條路由的起源屬性更改成incomplete.
  4. Suppress-policy:抑制策略,若是使用Detail-suppressed則會抑制全部的路由,而使用Suppress-policy則只會抑制被route-policy匹配的路由。
    下面咱們經過實驗,來驗證一下這些屬性。
    拓撲圖以下:
    在拓撲中:R4和R2 R3創建IBGP鄰居,R1同R2和R3創建直連的EBGP鄰居,R1上有三個環回口11.1.1.1/32,11.1.1.2/32,11.1.1.3/32,將它們通告到BGP中。

BGP路由聚合

實驗一:自動聚合
在R1上重分佈直連,並進行自動聚合
R1:
bgp 100
summary automatic #自動聚合只對重分佈的路由生效,對於network的不生效。
import-route direct網絡

在R2上查看結果,發現已經能看到這條彙總路由了。
R2:
<R2>display bgp routing-table app

> 11.0.0.0 123.1.1.1 0 100? 已經沒有掩碼了
> 123.0.0.0 123.1.1.1 0 100?ide

實驗二:手工聚合
在默認狀況下,手工聚合不抑制明細路由,明細和彙總路由會一塊兒通告給鄰居。
[R1-bgp]display this
[V200R003C00]
#
bgp 100
router-id 11.1.1.1this

aggregate 11.1.1.0 255.255.255.252
network 11.1.1.1 255.255.255.255
network 11.1.1.2 255.255.255.255
network 11.1.1.3 255.255.255.255 orm

在R1上查看BGP表,發現有明細路由和彙總路由,都是有效且最優的。
[R1-bgp]display bgp routing-table
> 11.1.1.0/30 127.0.0.1 0 i
> 11.1.1.1/32 0.0.0.0 0 0 i
> 11.1.1.2/32 0.0.0.0 0 0 i
> 11.1.1.3/32 0.0.0.0 0 0 irouter

在R2上查看BGP表,能夠看到明細,也能夠看到彙總路由
<R2>display bgp routing-table
> 11.1.1.0/30 123.1.1.1 0 100i
> 11.1.1.1/32 123.1.1.1 0 0 100i
> 11.1.1.2/32 123.1.1.1 0 0 100i
> 11.1.1.3/32 123.1.1.1 0 0 100iblog

實驗三: 在R1上通告彙總路由而且抑制明細
R1:
bgp 100
aggregate 11.1.1.0 255.255.255.252 detail-suppressed
network 11.1.1.1 255.255.255.255
network 11.1.1.2 255.255.255.255
network 11.1.1.3 255.255.255.255 路由

在R1和R2上查看BGP表:
[R1-bgp]display bgp routing-table # 明細路由被抑制了,不會通告給鄰居
*> 11.1.1.0/30 127.0.0.1 0 i
s> 11.1.1.1/32 0.0.0.0 0 0 i
s> 11.1.1.2/32 0.0.0.0 0 0 i
s> 11.1.1.3/32 0.0.0.0 0 0 i博客

<R2>display bgp routing-table #在R2上已經看不到明細路由了
*> 11.1.1.0/30 123.1.1.1 0 100i

實驗四: 在R2上聚合11.1.1.0/30的路由,添加AS_set屬性。
咱們取消在R1上作的手工聚合,改爲在R2上作聚合,若是不加AS_set,則這條聚合路由在AS200中默認不是沒有AS_path屬性的。
R2:
bgp 200
aggregate 11.1.1.0 255.255.255.252

在R2和R4上查看BGP表,這條路由都沒有AS_path屬性。
<R2>display bgp routing-table

*> 11.1.1.0/30 127.0.0.1 0 i

<R4>display bgp routing-table

*>i 11.1.1.0/30 22.1.1.1 100 0 i

在R2上將聚合路由帶上as_set屬性,這樣會在聚合路由上添加明細路由起源自哪一個AS,用於防環。若是這些明細來自不一樣的AS,則會在AS_path的最右邊使用{}將產生明細的多個AS放入{}中。
[R2-bgp]aggregate 11.1.1.0 255.255.255.252 as-set

接着在R2和R4上查看BGP表
[R2-bgp]display bgp routing-table

*> 11.1.1.0/30 127.0.0.1 0 100i

<R4>display bgp routing-table
*>i 11.1.1.0/30 22.1.1.1 100 0 100i

實驗五:更改聚合路由的屬性,將起源屬性更改成未完成
R2:

route-policy ATT1 permit node 10
apply origin incomplete

aggregate 11.1.1.0 255.255.255.252 as-set attribute-policy ATT1

查看BGP表,發現11.1.1.0/30這條匯聚路由的起源屬性變成了?。
<R2>display bgp routing-table
*> 11.1.1.0/30 127.0.0.1 0 100?

<R4>display bgp routing-table
*>i 11.1.1.0/30 22.1.1.1 100 0 100?
實驗六:在R2上聚合11.1.1.0/30,只抑制11.1.1.2這一條明細路由。
[R2-bgp]aggregate 11.1.1.0 255.255.255.252 as-set attribute-policy ATT1 suppress-policy supp

route-policy supp permit node 10
if-match acl 2000

acl number 2000
rule 10 permit source 11.1.1.2 0

查看R2的BGP表,發現11.1.1.2/32的路由是存在的(被抑制),但這條路由在R4上是不存在的。
[R2]display bgp routing-table

> 11.1.1.0/30 127.0.0.1 0 100?
> 11.1.1.1/32 123.1.1.1 0 0 100i
s> 11.1.1.2/32 123.1.1.1 0 0 100i
*> 11.1.1.3/32 123.1.1.1 0 0 100i

[R2]display bgp routing-table 11.1.1.2 32,被抑制的路由,沒有通告給任何的鄰居。

BGP local router ID : 22.1.1.1
Local AS number : 200
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 11.1.1.2/32:
From: 123.1.1.1 (11.1.1.1)
Route Duration: 00h08m12s
Direct Out-interface: GigabitEthernet0/0/2
Original nexthop: 123.1.1.1
Qos information : 0x0
AS-path 100, origin igp, MED 0, suppressed, pref-val 0, valid, external, best, select, active, pre 255
Not advertised to any peer yet

[R2]display bgp routing-table 11.1.1.1 32 像這條路由,就通告到R4上去了。

BGP local router ID : 22.1.1.1
Local AS number : 200
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 11.1.1.1/32:
From: 123.1.1.1 (11.1.1.1)
Route Duration: 00h08m38s
Direct Out-interface: GigabitEthernet0/0/2
Original nexthop: 123.1.1.1
Qos information : 0x0
AS-path 100, origin igp, MED 0, pref-val 0, valid, external, best, select, active, pre 255
Advertised to such 1 peers:
44.1.1.1

<R4>display bgp routing-table

*>i 11.1.1.0/30 22.1.1.1 100 0 100?
i 11.1.1.1/32 123.1.1.1 0 100 0 100i
i 11.1.1.3/32 123.1.1.1 0 100 0 100i

#:有博客中,爲縮減篇幅,將輸出的BGP表的信息進行了刪減,只保留了一些跟實驗現象有關的內容。

手動刷新BGP的路由。<R2>refresh bgp all import <R2>refresh bgp all export