目錄

簡介

必要條件

需求

採用元件

慣例

背景資訊

網路圖表

不含theas-set引數的彙總

具有theas-set引數的聚合

更改聚合路由的屬性

使用advertise-map聚合特定路由的子集

將suppress-map用於其他配置命令的影響

相關資訊

簡介

本文檔介紹如何在使用  aggregate-address  命令時操作不同的屬性以及對傳播有何影響。

必要條件

需求

思科建議您瞭解以下主題：

- 基本BGP操作。有關更多資訊，請參閱BGP案例分析。

採用元件

本文件所述內容不限於特定軟體和硬體版本。但是，本檔案中的組態已使用Cisco IOS®軟體版本12.2(28)進行測試。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

背景資訊

邊界網關協定(BGP)允許使用 aggregate-address address mask [as-set] [summary-only] [suppress-map map-name ] [advertise-map map-name ] [attribute-map map-name ]命令將特定路由匯聚成一條路由。當您發出aggregate-address 命令且不帶任何引數時，不會繼承各個路由屬性（如AS_PATH或community），這將導致粒度損失。本文檔說明如何在使用  aggregate-address  命令時操作不同的屬性以及對傳播有何影響。

網路圖表

網路圖表

不帶as-set  引數的聚合

使用  as-set  引數可以建立具有自治系統(AS)數學集的聚合地址。此參  as-set  數彙總了所有單個路由的AS_PATH屬性。這些示例配置使您可以檢查此功能以及該引數如何幫助BGP檢測和避免環路。

路由器A

Current configuration:

hostname RouterA

!

interface Serial1

ip address 10.2.2.2 255.0.0.0

!

interface Loopback0

ip address 10.160.20.11 255.255.0.0

!

router bgp 100

network 10.160.20.0

!--- Router A advertises network 10.160.20.0/16.

neighbor 10.2.2.1 remote-as 300

!

end

路由器B

Current configuration:

hostname RouterB

!

interface Serial0

ip address 10.3.3.3 255.0.0.0

!

interface Loopback0

ip address 10.160.10.1 255.255.0.0

!

router bgp 200

network 10.160.10.0

!--- Router B advertises network 10.160.10.0/16.

neighbor 10.3.3.1 remote-as 300

!

end

路由器C

Current configuration:

hostname RouterC

!

interface Serial0

ip address 10.2.2.1 255.0.0.0

!

interface Serial1

ip address 10.3.3.1 255.0.0.0

!

interface Serial2

ip address 10.4.4.1 255.0.0.0

!

router bgp 300

neighbor 10.2.2.2 remote-as 100

neighbor 10.3.3.3 remote-as 200

neighbor 10.4.4.4 remote-as 400

aggregate-address 10.160.0.0 255.0.0.0 summary-only

!--- The network is summarized, and Router C only

!--- advertises 10.160.0.0/8.

!

end

路由器D

Current configuration:

hostname RouterD

!

interface Serial0

ip address 10.4.4.4 255.0.0.0

!

router bgp 400

neighbor 10.4.4.1 remote-as 300

!

end

路由器C (AS-300)聚合分別來自AS-100和AS-200的路由10.160.20.0/16和10.160.10.0/16。之所以執行此操作，是因為您已在路由器C上配置了  summary-only  引數。路由器C只會向路由器D宣告聚合10.160.0.0/8。彙總10.160.0.0/8是無類域間路由(CIDR)路由。更具體的10.160.10.0/16和10.160.20.0/16路由被抑制，如路由器C上的以下BGP表所示：

RouterC# show ip bgp BGP table version is 6, local router ID is 10.4.4.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.160.0.0/8 0.0.0.0 32768 i s> 10.160.10.0 10.3.3.3 0 0 200 i s> 10.160.20.0 10.2.2.2 0 0 100 i

以下是路由器D的BGP表。觀察聚合路由的路徑資訊：

RouterD# show ip bgp BGP table version is 6, local router ID is 10.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.160.0.0/8 10.4.4.1 0 300 i

聚合路由10.160.0.0/8被認為起源於原始碼IGP的AS-300。該路由丟失了AS-200的單個字首10.160.10.0/16和AS-100的10.160.20.0/16的所有特定AS_PATH資訊。

具有as-set  引數的聚合

現在在路由器C上配置  aggregate-address 命令中的  as-set  引數。以下是新組態：

路由器C

Current configuration:

hostname RouterC

!

interface Serial0

ip address 10.2.2.1 255.0.0.0

!

interface Serial1

ip address 10.3.3.1 255.0.0.0

!

interface Serial2

ip address 10.4.4.1 255.0.0.0

!

router bgp 300

neighbor 10.2.2.2 remote-as 100

neighbor 10.3.3.3 remote-as 200

neighbor 10.4.4.4 remote-as 400

aggregate-address 10.160.0.0 255.0.0.0 summary-only as-set

!--- With the as-set configuration command, the aggregate

!--- inherits the attributes of the more-specific routes.

!

end

請看此引數對路由器上  show ip bgp  輸出的影響：

RouterD# show ip bgp BGP table version is 2, local router ID is 10.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.160.0.0/8 10.4.4.1 0 300 {200,100} i

在使用  as-set  引數的情況下，BGP表中聚合路由的路徑資訊更改為包含來自300 {200,100}的集合。此集指示聚合實際彙總了透過AS-200和AS-100的路由。因為資訊記錄了路由經過的路徑，所以  as-set  資訊對於避免路由環路變得重要起來。

在任何封閉網路中，此聚合資訊透過BGP進行傳播，然後傳播回  as-set  列出的某個AS。此傳輸會產生回圈的可能性。BGP的環路檢測行為會在聚合更新  as-set  中標出它自己的AS編號並刪除該聚合。此動作可防止回圈。

注意： as-set引數包含聚合彙總的每個獨立路由的相關資訊。單個路由中的更改會導致聚合的更新。在本例中，如果10.160.10.0/16斷開，則聚合的路徑資訊將從300 {200,100}更改為300 {200}。彙總已更新。如果聚合彙總了數十條或數百條路由，並且形成聚合的路由存在問題，則可能會出現持續抖動。

更改聚合路由的屬性

帶  as-set 引數的聚合部分向您介紹了如何使用  as-set   來儲存特定路由的AS_PATH屬性。在某些情況下，可以要求更改聚合路由的屬性。此類屬性的範例包括測量結果、群體和來源。

影響

本節介紹如何使用  attribute-map 引數操作  aggregate-address   屬性。在這種情況下，您將用  no-export  社群屬性配置一個或多個特定的聚合路由。路由器A將社群屬性設定  no-export   為網路10.160.20.0/16，並向路由器C通告網路。此段落顯示組態。當路由器聚合10.160.0.8  no-export  時，路由器C繼承社群屬性。因此，沒有向路由器D通告10.160.0.0/8。路由器B、C和D的配置不會更改。以下是路由器A的新組態：

路由器A

Current configuration:

hostname RouterA

!

interface Serial1

ip address 10.2.2.2 255.0.0.0

!

router bgp 100

network 10.160.20.0

!--- Router A advertises network 10.160.20.0/16.

neighbor 10.2.2.1 remote-as 300

neighbor 10.2.2.1 send-community

neighbor 10.2.2.1 route-map SET_NO_EXPORT out

!

access-list 1 permit 10.160.20.0 0.0.255.255

route-map SET_NO_EXPORT permit 10

match ip address 1

set community no-export

!--- This sets the community attribute no-export.  at Router A for route 10.160.20.0/16 ! end

以下是路由器C上10.160.0.0/8的BGP表：

RouterC# show ip bgp 10.160.0.0 BGP routing table entry for 10.160.0.0/8, version 9 Paths: (1 available, best #1, not advertised to EBGP peer) Not advertised to any peer {200,100}, (aggregated by 300 10.4.4.1) 0.0.0.0 from 0.0.0.0 (10.4.4.1) Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2 Community: no-export

該社群會  no-export  停止路由器C通告指向eBGP對等體路由器D的聚合路由。路由器D顯示它尚未從路由器C獲知10.160.0.0：

RouterD# show ip bgp 10.160.0.0 % Network not in table

您可以在路由器C上配置attribute-map引數，以便處理從no-export到none的聚合路由的團隊屬性。使用此配置可以將聚合通告給路由器D。

路由器C

Current configuration:

hostname RouterC

!

interface Serial0

ip address 10.2.2.1 255.0.0.0

!

interface Serial1

ip address 10.3.3.1 255.0.0.0

!

interface Serial2

ip address 10.4.4.1 255.0.0.0

!

router bgp 300

neighbor 10.2.2.2 remote-as 100

neighbor 10.3.3.3 remote-as 200

neighbor 10.4.4.4 remote-as 400

aggregate-address 10.160.0.0 255.0.0.0

as-set summary-only attribute-map Map

!--- Use of the attribute-map argument allows

!--- you to change the community of the aggregate.

!

route-map Map permit 10

set community none

!--- This sets the community of the aggregate to none.

end

現在，檢視路由器C的10.160.0.0/8的BGP表。由於聚合路由沒有社群集，路由器C會向路由器D通告10.160.0.0/8。

RouterC# show ip bgp 10.160.0.0 BGP routing table entry for 10.160.0.0/8, version 6 Paths: (1 available, best #1) Advertised to non peer-group peers: 10.2.2.2 10.3.3.3 10.4.4.4 {200,100}, (aggregated by 300 10.4.4.1) 0.0.0.0 from 0.0.0.0 (10.4.4.1) Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2

路由器D上的  show ip bgp 160.0.0.0   輸出表明路由器D已從路由器C學習了聚合路由10.160.0.0/8。

RouterD# show ip bgp 10.160.0.0 BGP routing table entry for 10.160.0.0/8, version 10 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300 {200,100}, (aggregated by 300 10.4.4.1) 10.4.4.1 from 10.4.4.1 (10.4.4.1) Origin IGP, localpref 100, valid, external, best

使用advertise-map  聚合特定路由的子集

如果您可以控制形成聚合路由的單個字首，則可以更輕鬆地確定聚合可以承載哪些屬性。更改聚合路由的屬性部分中的示例從聚合路由中排除了字首10.160.20.0。在這種情況下，彙總10.160.0.0/8不會繼承社群屬性  no-export 。為了進行此更改，請在路由器C上配置  advertise-map   引數。

路由器C

Current configuration:

hostname RouterC

!

interface Serial0

ip address 10.2.2.1 255.0.0.0

!

interface Serial1

ip address 10.3.3.1 255.0.0.0

!

interface Serial2

ip address 10.4.4.1 255.0.0.0

!

router bgp 300

neighbor 10.2.2.2 remote-as 100

neighbor 10.3.3.3 remote-as 200

neighbor 10.4.4.4 remote-as 400

aggregate-address 10.160.0.0 255.0.0.0

as-set summary-only advertise-map SELECT_SP_ROUTE

!--- You exclude a particular prefix with the

!--- use of advertise-map.

!

access-list 1 permit 10.160.10.0 0.0.255.255

!

route-map SELECT_SP_ROUTE permit 10

match ip address 1

!

end

現在，檢視路由器C的10.160.0.0/8的BGP表：

RouterC# show ip bgp 10.160.0.0 BGP routing table entry for 10.160.0.0/8, version 15 Paths: (1 available, best #1) Advertised to non peer-group peers: 10.2.2.2 10.4.4.4 200, (aggregated by 300 10.2.2.1) 0.0.0.0 from 0.0.0.0 (10.2.2.1) Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2

只有AS-200是聚合的AS_PATH資訊的一部分；AS-100不是資訊的一部分。此外，沒有從10.160.20.0/16繼承  no-export   的社群。因此，會向路由器D通告聚合路由。  show ip bgp 160.0.0.0   輸出顯示了宣告：

RouterD# show ip bgp 10.160.0.0 BGP routing table entry for 10.160.0.0/8, version 7 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300 200, (aggregated by 300 10.4.4.1) 10.4.4.1 from 10.4.4.1 (10.4.4.1) Origin IGP, localpref 100, valid, external, atomic-aggregate, best ip bgp 10.160.0.0

注意：因為聚合as-set僅包含AS-200，所以AS-100中的路由器A接受聚合路由並在路由表中安裝該路由。BGP環路檢測機制導致該路由被接受。BGP環路檢測機制不會在as-set中檢測自己的AS。

suppress-map

RouterA# show ip bgp BGP table version is 3, local router ID is 10.160.20.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.160.0.0/8 10.2.2.1 0 300 200 i *> 10.160.20.0 0.0.0.0 0 32768 i

與其他配置命令一起使用的影響

aggregate-address  命令包括其他配置命令，例如  suppress-map 。為了瞭解組合使用所有配置命令所產生的影響，請注意當使用  as-set  配置命令時，  aggregate-address  僅會繼承來自更具體路由的屬性。例如，  aggregate-address  可繼承的屬性包括  no-export  和  no-advertise 。

- 當將  suppress-map  配置命令與  summary-only  配置命令一起使用時，  summary-only  配置命令不會產生任何作用。使用  suppress-map  配置命令時，不會通告  suppress-map  抑制的更具體的路由。但是，除聚合路由之外，  suppress-map  未涉及的路由也會進行通告。因此，本部分中的說明適用於在使用或不使用  summary-only configuration  命令的情況下使用  suppress-map  命令。

- 當您將  as-set  與  suppress-map 一起使用時，雖然不會對受抑制的路由進行通告，但聚合路由會繼承所有受抑制路由的屬性。但可透過使用其他配置命令(如  attribute-map )覆蓋繼承的屬性。更改聚合路由的屬性部分介紹了如何使用  attribute-map 。

- 將  as-set  和  suppress-map  配置命令與  advertise-map 一起使用時，聚合形成。聚合只會從  advertise-map 中選擇的路由繼承屬性，不會考慮  suppress-map  是否抑制路由。請參閱使用  advertise-map 聚合特定路由的子集部分。

- 當您使用  advertise-map  和  attribute-map  以及  as-set  和其他配置命令時，  attribute-map  將覆蓋  advertise-map 中選擇的屬性。

一般來說，當使用  advertise-map 時，只有  advertise-map  影響聚合。如果沒有  advertise-map ，聚合會繼承更具體路由（包括受到抑制和未受抑制路由）的屬性。在這兩種情況下，您可使用  attribute-map  配置命令覆蓋選擇的屬性。

相關資訊

- BGP：常見問題

- 疑難排解 BGP

- BGP 支援頁面

- 思科技術支援與下載