簡介
本檔案介紹如何設定Cisco IOS®中邊界閘道通訊協定(BGP)所承載的累積內部閘道通訊協定(AIGP)指標屬性。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
背景資訊
本節概述了AIGP指標屬性及其使用的一些重要注意事項。
AIGP指標屬性概述
公司可能希望實施一種網路設計,即使用多個內部網關協定(IGP)來拆分網路,每個協定都包含一個BGP自治系統。這是出於可擴充性的原因,因為網路對於一個IGP來說變得太大。BGP在承載某些路由時有助於擴展,否則這些路由將由IGP承載。使用AIGP的解決方案適用於具有不同受同一管理控制的BGP自治系統的網路。
以下是範例:
端到端服務是多協定標籤交換(MPLS)VPN。當網路中有大量提供商邊緣(PE)路由器時,IGP必須攜帶太多路由。解決方案是讓BGP承載PE路由器的環回介面。用於確保MPLS標籤交換路徑(LSP)不端到端中斷的解決方案是使用BGP IPv4 +標簽。這意味著PE路由器和連線不同IGP域的邊界路由器之間使用RFC 3107。
此解決方案的問題在於,邊界路由器或PE路由器無法再根據最短端到端度量來決定最佳路徑,因為不再有在整個網路中運行的IGP。此問題的解決方案是新的BGP屬性,稱為累計IGP指標屬性或AIGP指標屬性。此BGP不可傳遞屬性攜帶路徑的累計度量,以便BGP發言人接收這些路徑的端到端度量的知識。
BGP發言者必須在轉發路由之前將下一跳度量中的路由新增到AIGP度量屬性中的當前值。
附註:在比較本地優先順序後,立即執行一個路由的路徑比較。請參閱BGP最佳路徑選取演演算法思科檔案,以取得有關BGP最佳路徑選取演演算法的詳細資訊。
此解決方案類似於將多出口鑑別器(MED)設定為IGP度量的解決方案。但是在這種情況下,步驟6(最低MED)會決定最佳路徑。此步驟在步驟4之後,其中最短路徑決定最佳路徑。通常在到達步驟6之前已找到最佳路徑。使用AIGP解決方案時,會更改正常的BGP決定,以便在步驟3之後檢查AIGP,以確定路由是否已在本地通告。如果不同的鄰居自治系統(AS)與BGP發言人對等,則表示必須啟用always-compare-med值。
AIGP指標屬性在RFC 7311中指定,該屬性是BGP的累計IGP指標屬性。為了在成本社群中承載AIGP指標值,需要使用draft-retana-idr-aigp-cost-community(使用成本社群承載累計IGP指標)中指定的步驟。
附註:歸屬BGP AIGP指標可在不同路由域通過BGP互連的網路中提供最佳路由。
BGP最佳路徑選取演演算法的變更
使用AIGP時,系統會對BGP最佳路徑選取演演算法作以下變更:
- 修改BGP最佳路徑選擇演算法,以便在步驟3(本地通告路由)後立即並在驗證下一跳有效後比較AIGP。
- 當路由器根據AIGP路徑考慮AIGP路徑時,會將AIGP指標的值新增到通往下一躍點的指標中。
- 當路由器針對非AIGP路徑考慮AIGP路徑時,BGP會預設優先使用具有AIGP屬性的路徑。
- 將最低的IGP指標與BGP下一躍點比較時,會考慮AIGP成本。
- 如果通向下一跳的路由具有AIGP度量,則該度量將新增到通向下一跳的IGP度量中。此總和是路由的新IGP指標(內部成本)。當BGP路由遞迴到另一個BGP路由時,會發生這種情況。
重要注意事項
如果網路中的IGP屬於不同型別(開放最短路徑優先(OSPF)、中間系統到中間系統(IS-IS)、增強型內部閘道路由通訊協定(EIGRP)),則使用AIGP屬性產生的指標不會導致一致或合理的結果。如果在不同的域中使用相同的IGP,則必須使用相同的度量設定以確保一致的結果。
為使邊界路由器或PE路由器能夠確定多條路徑(基於AIGP衍生指標),它們必須首先接收多條路徑。因此,可能需要啟用其他路徑(ADD-Path)或通告最佳外部BGP功能。
為AIGP啟用的BGP對等體以及未置於單獨更新組中的對等體。此外,在成本群體中為AIGP啟用的BGP對等體會置於單獨的更新組中。
適用於舊版路由器的解決方案
如果網路中有路由器無法使用AIGP(舊版路由器),則有兩種可能的解決方案:
- 路由器可以將AIGP轉換為開銷社群,將其連線到路由,並將路由通告到舊版路由器。
- 路由器可以將AIGP轉換為MED,將其連線到路由,並將路由通告給舊版路由器。
設定
本節介紹如何配置AIGP度量屬性。
啟用AIGP屬性的傳輸
必須與明確啟用內部BGP(iBGP)和外部BGP(eBGP)會話的 neighbor ip-address aigp
指令。
以下是驗證BGP對等點是否啟用AIGP的方式:
P3#show bgp ipv4 unicast neighbors 10.1.9.2 | in AIGP
For address family: IPv4 Unicast
AIGP is enabled
發起AIGP
可以將AIGP設定為IGP度量或值。此外,AIGP只能針對某些特定路由設定,通過 route-map
.當AIGP的發起者看到IGP指標發生變化時,它應該傳送一個新的BGP更新,其中包含受影響的路由的新AIGP值。
AIGP度量可以自動設定為IGP度量或某個任意32位值:
P1(config-route-map)#set aigp-metric ?
<0-4294967295> manual value
igp-metric metric value from rib
此示例說明如何將AIGP度量設定為IGP路由的度量:
ip prefix-list loopback seq 5 permit 10.100.1.1/32
!
route-map redistribute-loopback permit 10
match ip address prefix-list loopback
set aigp-metric igp-metric
用於禁用AIGP繫結的旋鈕
如果啟用此命令,則BGP不會使用AIGP斷開,除非兩個路徑都具有AIGP度量屬性。這表示當一條路徑沒有AIGP屬性時,不會在兩個路徑之間的最佳路徑選取流程中評估AIGP屬性。
以下是範例:
router bgp 65000
bgp bestpath aigp ignore
適用於舊版路由器的解決方案
如果路由器PE2沒有支援AIGP度量屬性的軟體(它是傳統路由器),則可以使用兩種解決方案。
將AIGP轉換為成本社群
配置路由器P3和P4,以便將IGP成本轉換為路由器可以通告給舊版路由器的成本群體:
P3#show run | beg router bgp
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 send-community both
neighbor 10.1.9.2 aigp send cost-community 100 poi igp-cost transitive
P4#show run | beg router bgp
router bgp 65000
address-family ipv4
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 send-community both
neighbor 10.1.10.2 aigp send cost-community 100 poi igp-cost transitive
您必須允許傳送的路由器傳送延伸社群。這意味著您必須指定 send-community extended
或 send-community both
屬性(neighbor x.x.x.x send-community
)。
以下是範例:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 6
Paths: (2 available, best #1, table default)
Advertised to update-groups:
6
Refresh Epoch 2
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, localpref 100, valid, external, best
Extended Community: Cost(transitive):igp:100:6
mpls labels in/out 17/16
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 15
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external
Extended Community: Cost(transitive):igp:100:11
mpls labels in/out 17/30
rx pathid: 0, tx pathid: 0
如圖所示,路由器PE2選擇了成本最低(100:6與100:11)的路徑作為最佳路徑。
AIGP到MED的轉換
配置路由器P3和P4,以便將IGP成本轉換為路由器可以通告給舊式路由器的MED。
路由器P3上的配置如下:
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 send-community both
neighbor 10.1.9.2 aigp send med
路由器P4上的配置如下:
router bgp 65000
address-family ipv4
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 send-community both
neighbor 10.1.10.2 aigp send med
驗證
的輸出 debug bgp ipv4 unicast updates in
命令顯示AIGP指標屬性的用法:
PE2#
BGP(0): 10.1.9.4 rcvd UPDATE w/ attr: nexthop 10.1.9.4, origin ?, aigp-metric 22,
merged path 65000 65001, AS_PATH
當您檢視本文檔部分中提供的影象時,可以看到,網路AS 6500中的所有鏈路的OSPF開銷為10,路由器P1和P4之間以及P2和P3之間的鏈路的OSPF開銷為100,路由器P3和P1之間的鏈路的開銷為5。
如路由器P3所示,這是10.100.1.1/32的路由:
P3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 9
Paths: (2 available, best #1, table default)
Additional-path-install
Path advertised to update-groups:
5
Refresh Epoch 5
65001
10.100.1.3 (metric 6) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x0, tx pathid: 0x0
Path not advertised to any peer
Refresh Epoch 5
65001
10.100.1.5 (metric 21) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, backup/repair, all
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x1, tx pathid: 0x1
這是路由器P4上看到的10.100.1.1/32的路由:
P4#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 9
Paths: (2 available, best #2, table default)
Additional-path-install
Path not advertised to any peer
Refresh Epoch 5
65001
10.100.1.3 (metric 16) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, backup/repair, all
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x0, tx pathid: 0x1
Path advertised to update-groups:
35
Refresh Epoch 5
65001
10.100.1.5 (metric 11) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x1, tx pathid: 0x0
如路由器PE2所示,這是10.100.1.1/32的路由:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 4
Paths: (2 available, best #2, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, localpref 100, valid, external
mpls labels in/out 18/17
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external, best
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0x0
路由器P3上的最佳路徑是具有IGP指標6的路徑,路由器P1是下一跳。路由器P4上的最佳路徑是具有IGP指標11的路徑,路由器P2是下一跳。路由器P3和P4向路由器PE2傳送它們的最佳路徑。路由器PE2選擇來自路由器P4的路徑作為最佳路徑,之所以這樣決定,是因為路由器PE2上的兩個BGP路徑非常相似,並且步驟10是分路器:最舊的外部路徑獲勝。這意味著從路由器PE2到路由器PE1的流量採用路徑PE2-P4-P2-PE1。但是,當您考慮IGP成本時,最短的總路徑是PE2-P3-P1-PE1。
使用以下資訊驗證通向路由器PE2(10.100.1.7)的路由器P3和P4上的AIGP度量屬性:
路由器P3的輸出如下:
router bgp 65000
address-family ipv4
bgp additional-paths select all
bgp additional-paths receive
bgp additional-paths install
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 aigp
neighbor 10.1.9.2 send-label
neighbor 10.100.1.7 activate
neighbor 10.100.1.7 aigp
neighbor 10.100.1.7 next-hop-self
neighbor 10.100.1.7 send-label
路由器P4的輸出如下:
router bgp 65000
address-family ipv4
bgp additional-paths select all
bgp additional-paths receive
bgp additional-paths install
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 aigp
neighbor 10.1.10.2 send-label
neighbor 10.100.1.7 activate
neighbor 10.100.1.7 aigp
neighbor 10.100.1.7 next-hop-self
neighbor 10.100.1.7 send-label
您可以看到路由器P3現在具有:
P3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 30
Paths: (2 available, best #2, table default)
Additional-path-install
Path not advertised to any peer
Refresh Epoch 11
65001
10.100.1.5 (metric 21) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal,
backup/repair, all
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 28/31
rx pathid: 0x1, tx pathid: 0x1
Path advertised to update-groups:
5
Refresh Epoch 11
65001
10.100.1.3 (metric 6) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 28/30
rx pathid: 0x0, tx pathid: 0x0
路由器P4現在具有:
P4#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 30
Paths: (2 available, best #1, table default)
Additional-path-install
Path advertised to update-groups:
35
Refresh Epoch 11
65001
10.100.1.5 (metric 11) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 16/31
rx pathid: 0x1, tx pathid: 0x0
Path not advertised to any peer
Refresh Epoch 11
65001
10.100.1.3 (metric 16) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal,
backup/repair, all
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 16/30
rx pathid: 0x0, tx pathid: 0x1
路由器P3和P4上路徑的IGP度量沒有更改,但路由器PE2現在從路由器P3和P4接收具有AIGP屬性的路由。
路由器PE2可以看到兩條路徑。每個路徑都有AIGP屬性,而具有最低AIGP指標屬性的路徑現在會獲選:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 6
Paths: (2 available, best #1, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 18/17
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, aigp-metric 11, localpref 100, valid, external
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0
如果從路由器P3收到的路徑長於從路由器PE2上的路由器P4收到的路徑,則路由器PE2仍會從路由器P3中選擇最佳路徑。您可以增加路由器P3通告的路徑,通過 route-map
和 as-prepending
.
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 route-map as_path out
route-map as_path permit 10
set as-path prepend last-as 1
現在,路由器PE2具有來自路由器P3的路由,在AS路徑中增加一個AS:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 7
Paths: (2 available, best #1, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, aigp-metric 11, localpref 100, valid, external
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0
由於AIGP度量屬性,路由器PE2仍然從路由器P3中選擇最佳路徑。在檢查AS路徑長度之前執行AIGP檢查。
如果刪除在路由器P4上將AIGP傳送到路由器PE2的功能,則路由器PE2會收到來自路由器P4的沒有AIGP度量屬性的路徑。但是,路由器PE2仍然具有來自帶有AIGP的路由器P3的路徑。路由器PE2優先使用帶AIGP的路徑,而不是不使用AIGP的路徑,並且它從路由器P3中選擇最佳路徑:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 2
Paths: (2 available, best #2, table default)
Advertised to update-groups:
6
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external
mpls labels in/out 17/30
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
65000 65001 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 17/nolabel
rx pathid: 0, tx pathid: 0x0
附註:如果您希望路由器PE2在BGP最佳路徑選擇過程中忽略AIGP,請配置 bgp bestpath aigp ignore
指令。
疑難排解
目前尚無適用於此組態的具體疑難排解資訊。