簡介
本文檔介紹如何在使用 aggregate-address 命令時操作不同的屬性以及對傳播有何影響。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文件所述內容不限於特定軟體和硬體版本。但是,本檔案中的組態已使用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 配置命令覆蓋選擇的屬性。
相關資訊