本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹整合多重協定標籤交換(MPLS),其內容全部關於擴充。它提供了一個技術解決方案框架,可在傳統分割的基礎結構中帶來簡單的端到端流量和/或服務。它既利用了分層基礎架構的優點,又提高了網路設計的可擴充性和簡便性。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
當您檢視基於網路資料包的服務的歷史時,可以觀察到網路業務價值的變化。從分散的連線增強以使應用儘可能流暢,到合作技術以支援移動合作。最後,將按需雲服務與應用服務一起引入,以最佳化組織使用的工具,並提高穩定性和擁有成本。
圖1
這種持續不斷的網路價值和功能增強導致對網路簡單、可管理性、整合和穩定性的需求更為普遍,而網路之所以被分割,是因為操作孤島相互脫節,而且沒有真正的端到端路徑控制。現在,需要將所有這些功能與易於管理、為100,000個節點提供可擴充性並使用當前高可用性和快速融合技術的單一體系結構結合使用。這就是統一MPLS帶來的好處,即將網路分割為單個控制平面和端到端路徑可視性。
現代網路要求
如何在具有更複雜應用需求的日益擴大的網路中簡化MPLS操作?
使用不同接入技術的傳統MPLS挑戰
統一MPLS吸引力總結在以下清單中:
統一MPLS是通過在傳統/傳統MPLS中新增額外功能來定義的,它提供了更好的可擴充性、安全性、簡單性和可管理性。為了提供MPLS服務,需要端到端標籤交換機路徑(LSP)。目標是保持MPLS服務(MPLS VPN、MPLS L2VPN)不變,但引入更高的可擴充性。為此,請將某些IGP字首移動到邊界網關協定(BGP)(提供商邊緣(PE)路由器的環回字首),然後由提供商邊緣將字首端到端分發。
圖2
在討論Cisco Unified MPLS架構之前,瞭解使用的主要功能非常重要,以便實現這一點。
必須具有可擴展的方法才能在網段之間交換字首。您可以簡單地將IGP(開放最短路徑優先(OSPF)、中間系統到中間系統(IS-IS)或增強型內部網關路由協定(EIGRP)合併到單個域中。但是,IGP不能承載100,000個字首。為此選擇的協定是BGP。它是一種經過充分驗證的協定,支援具有100,000條路由的網際網路和具有數百萬條目的多協定標籤的MPLS-VPN環境。Cisco Unified MPLS使用BGP-4與標籤資訊交換(RFC3107)。 當BGP分發路由時,它還可以分發對映到該路由的MPLS標籤。路由的MPLS標籤對映資訊包含在包含路由資訊的BGP更新消息中。如果未更改下一跳,則保留該標籤;如果下一跳發生更改,則更改該標籤。在Unified MPLS中,區域邊界路由器(ABR)的下一跳會改變。
當您在兩個BGP路由器上啟用RFC 3107時,路由器會互相通告它們隨後可以隨路由傳送MPLS標籤。如果路由器成功協商其傳送MPLS標籤的能力,則路由器會將MPLS標籤新增到所有傳出BGP更新。
需要標籤交換才能保留資料段之間的端到端路徑資訊。結果,每個段變得足夠小,可由操作員管理,同時在兩個不同的IP揚聲器之間分發了電路資訊用於路徑感知。
如何運作?
圖3
在圖3中,您可以看到標籤發現協定標籤了交換機路徑(LDP LSP)的三個網段,並且接入網路沒有啟用LDP。目標是將它們連線在一起,以便在預聚合(Pre-Agg)節點之間有一個單一MPLS路徑(內部BGP(iBGP)分層LSP)。由於網路是單個BGP自治系統(AS),因此所有作業階段都是iBGP作業階段。每個網段在IGP域內運行自己的IGP(OSPF、IS-IS或EIGRP)和LDP LSP路徑。在Cisco Unified MPLS中,加入網段的路由器(ABR)必須是具有Next-Hop-Self和RFC 3107的BGP內聯路由反射器,以便承載在會話上配置的IPv4 +標籤。這些BGP揚聲器位於稱為ABR的思科統一MPLS架構內。
為什麼ABR的內聯路由反射器?
統一MPLS的目標之一是擁有高度可擴展的端到端基礎設施。因此,每個分段應保持簡單,以便操作。所有對等體都是iBGP對等體,因此整個網路中的所有iBGP揚聲器之間都需要全網狀對等體。如果存在數千個BGP揚聲器,這將導致非常不實用的網路環境。如果ABR是路由反射器,iBGP對等的數目將減少為「每個網段」的BGP揚聲器數量,而不是整個AS的「所有」BGP揚聲器之間。
為什麼選擇Next-Hop-Self?
BGP在遞迴路由查詢的基礎上運行。這樣做是為了適應所利用的底層IGP中的可擴充性。對於遞迴查詢,BGP使用附加到每個BGP路由條目的下一跳。因此,例如,如果來源節點希望將封包傳送到目的地節點,且封包到達BGP路由器,則BGP路由器在其BGP路由表中執行路由查詢。它會找到一條通往Destination-Node的路由,並找到下一跳作為下一步。此下一跳必須為底層IGP所知。最後一步是,BGP路由器根據附加到該下一躍點的IP和MPLS標籤資訊向前轉發資料包。
為了確保每個網段內僅需要由IGP知道下一跳,需要連線到BGP條目的下一跳位於網段內,而不是位於相鄰網段或較遠網段內。如果使用Next-Hop-Self功能重寫BGP Next-Hop,請確保Next-Hop在本地網段內。
放在一起
圖4
圖4提供了一個示例,說明第3層VPN字首「A」和標籤交換如何操作,以及如何建立MPLS標籤堆疊以具有兩個PE之間的流量的端到端路徑資訊。
網路被劃分為三個獨立的IGP/LDP域。路由器上路由和轉發表的大小降低是為了實現更好的穩定性和更快的收斂。LDP用於在域內構建域內LSP。RFC 3107 BGP IPv4+標籤用作域間標籤分發協定,以跨域構建分層BGP LSP。BGP3107在統一MPLS架構中的轉發標籤堆疊中插入一個額外標籤。
域內 — LDP LSP
域間 — BGP分層LSP
圖5
PE31向PE11通告VPN字首「A」(帶有L3VPN服務標籤30),並通過端到端域間分層BGP LSP將下一跳作為PE31的環回。現在,檢視VPN字首「A」從PE11到PE31的轉發路徑。
當您檢視MPLS標籤堆疊時,在MPLS交換環境中會觀察到資料包根據前一個字首和標籤交換在源裝置和目的裝置之間的交換。
圖6
這是在BGP故障情形中使用的思科技術。在BGP重新收斂過程中,網路收斂時不會丟失傳統的秒數。使用BGP PIC時,大多數故障場景可以縮短到低於100毫秒的重新收斂時間。
這是怎麼做到的?
傳統上,當BGP檢測到故障時,它會針對每個BGP條目重新計算最佳路徑。當路由表包含數千個路由條目時,這可能需要相當長的時間。此外,此BGP路由器需要將這些新最佳路徑分發到其每個鄰居,以通知他們網路拓撲更改和最佳路徑更改。最後一步是,每個收件人BGP揚聲器都需要進行最佳路徑計算,以便找到新的最佳路徑。
每當第一個BGP揚聲器檢測到錯誤時,它都會啟動最佳路徑計算,直到其所有鄰居BGP揚聲器都重新計算完畢為止,流量可能會被丟棄。
圖7
適用於IP和MPLS VPN的BGP PIC功能可改善網路故障後的BGP融合。這種融合適用於核心和邊緣故障,並且可用於IP和MPLS網路。用於IP的BGP PIC和MPLS VPN功能在路由資訊庫(RIB)、轉發資訊庫(FIB)和思科快速轉發(CEF)中建立並儲存備份/備用路徑,以便當檢測到故障時,備份/備用路徑可以立即接管,從而實現快速故障轉移。
通過對下一跳資訊進行單次重寫,即可恢復流量。此外,網路BGP收斂發生在後台中,但流量不再受到影響。此重寫在50毫秒內發生。如果使用此技術,網路收斂時間將從幾秒縮短到50毫秒,再加上IGP收斂。
BGP Add-Path改進了BGP條目在BGP揚聲器之間通訊的方式。如果某個BGP發言人有不止一個條目通往某個目的地,則BGP發言人只會將該目的地的最佳路徑條目傳送給其鄰居。結果是,不會做出任何規定以允許通告同一目標的多個路徑。
BGP Add-Path是一項BGP功能,它允許更多路徑僅作為最佳路徑,並允許同一目標的多個路徑,而不用新路徑隱式替換任何以前的路徑。使用BGP路由反射器時,為了協助BGP PIC,BGP的此擴充尤其重要,因此根據路由反射器,AS內的不同BGP揚聲器可存取更多的BGP路徑,而僅作為「最佳BGP路徑」。
在鏈路或節點出現故障後實現50毫秒恢復的操作可以通過引入稱為無環備用節點(LFA)的新技術大大簡化。LFA增強了鏈路狀態路由協定(IS-IS和OSPF),以便以無環方式找到備用路由路徑。LFA允許每台路由器定義並在鄰接關係(網路節點或鏈路)發生故障時使用預定的備份路徑。為了在鏈路或節點出現故障時提供50毫秒的恢復時間,可以部署MPLS TE FRR。但是,這要求為建立和管理TE通道新增另一個通訊協定(資源保留通訊協定,或RSVP)。儘管這對於頻寬管理可能是必需的,但保護和恢復操作不需要頻寬管理。因此,新增RSVP TE的相關開銷被認為非常高,可以簡化鏈路和節點的保護。
LFA可以提供簡單而簡單的技術,而無需在這些場景中部署RSVP TE。通過這些技術,如今在大規模網路中互連的路由器可以為鏈路和節點故障提供50毫秒的恢復,而無需操作員進行配置。
圖8
LFA-FRR是一種機制,可為IP、MPLS、透過MPLS的乙太網路(EoMPLS)、透過MPLS的ATM反向多工(IMA)、透過MPLS的封包交換網路電路模擬服務(CESoPSN)以及透過MPLS網路的無結構分時多工(SAToP)中的單點傳播流量提供本地保護。但是,某些拓撲(如環拓撲)需要單獨由LFA-FRR無法提供的保護。遠端LFA-FRR功能在此類情況下非常有用。
遠端LFA-FRR將LFA-FRR的基本行為擴展到任何拓撲。它將發生故障的節點周圍的流量轉發到距離此節點多跳的遠端LFA。在圖9中,如果C1和C2之間的鏈路無法到達A1,則C2將資料包通過定向LDP會話傳送到C5,後者可以到達A1。
圖9
在遠端LFA-FRR中,節點動態計算其LFA節點。確定備用節點(非直接連線)後,節點自動建立到備用節點的定向標籤分發協定(LDP)會話。定向LDP會話交換用於特定前向糾錯(FEC)的標籤。
當鏈路發生故障時,節點使用標籤堆疊將流量通道到遠端LFA節點,以便將流量轉發到目的地。到遠端LFA節點的所有標籤交換和隧道在本質上是動態的,不需要預調配。整個標籤交換和隧道機制是動態的,不涉及任何手動調配。
對於域內LSP,遠端LFA FRR用於環拓撲中的單播MPLS流量。遠端LFA FRR為IGP路由表中的每個字首預計算備份路徑,這樣節點在遇到故障時可以快速切換到備份路徑。這樣提供的恢復時間大約為50毫秒。
當以前的所有工具和功能都整合到網路環境中時,它將建立Cisco Unified MPLS網路環境。這是大型服務提供商的架構示例。
圖10
以下是統一MPLS的簡化示例。
預聚合和蜂窩站點網關路由器 — Cisco IOS
圖11
200:200 | MPC社群 |
300:300 | 聚合社群 |
核心IGP域 | ISIS級別2 |
聚合IGP域 | ISIS級別1 |
訪問IGP域 | OSPF 0區域 |
圖12
! IGP Configuration
router isis core-agg
net 49.0100.1010.0001.0001.00
address-family ipv4 unicast
metric-style wide
propagate level 1 into level 2 route-policy drop-all ! Disable L1 to L2 redistribution
!
interface Loopback0
ipv4 address 10.10.10.1 255.255.255.255
passive
!
interface TenGigE0/0/0/0
!
interface TenGigE0/0/0/1
circuit-type level-2-only ! Core facing ISIS L2 Link
!
interface TenGigE0/0/0/2
circuit-type level-1 ! Aggregation facingis ISIS L1 Link
!
route-policy drop-all
drop
end-policy
! BGP Configuration
router bgp 100
ibgp policy out enforce-modifications
bgp router-id 10.10.10.1
address-family ipv4 unicast
allocate-label all ! Send labels with BGP routes
!
session-group infra
remote-as 100
cluster-id 1001
update-source Loopback0
!
neighbor-group agg
use session-group infra
address-family ipv4 labeled-unicast
route-reflector-client
route-policy BGP_Egress_Filter out ! BGP Community based Egress filtering
next-hop-self
!
neighbor-group mpc
use session-group infra
address-family ipv4 labeled-unicast
route-reflector-client
next-hop-self
!
neighbor-group core
use session-group infra
address-family ipv4 labeled-unicast
next-hop-self
community-set Allowed-Comm
200:200,
300:300,
!
route-policy BGP_Egress_Filter
if community matches-any Allowed-Comm then
pass
圖13
interface Loopback0
ipv4 address 10.10.9.9 255.255.255.255
!
interface Loopback1
ipv4 address 10.10.99.9 255.255.255.255
! Pre-Agg IGP Configuration
router isis core-agg
net 49.0100.1010.0001.9007.00
is-type level-1 ! ISIS L1 router
metric-style wide
passive-interface Loopback0 ! Core-agg IGP loopback0
!RAN Access IGP Configuration
router ospf 1
router-id 10.10.99.9
redistribute bgp 100 subnets route-map BGP_to_RAN ! iBGP to RAN IGP redistribution
network 10.9.9.2 0.0.0.1 area 0
network 10.9.9.4 0.0.0.1 area 0
network 10.10.99.9 0.0.0.0 area 0
distribute-list route-map Redist_from_BGP in ! Inbound filtering to prefer
labeled BGP learnt prefixes
ip community-list standard MPC_Comm permit 200:200
!
route-map BGP_to_RAN permit 10 ! Only redistribute prefixes
marked with MPC community
match community MPC_Comm
set tag 1000
route-map Redist_from_BGP deny 10
match tag 1000
!
route-map Redist_from_BGP permit 20
! BGP Configuration
router bgp 100
ibgp policy out enforce-modifications
bgp router-id 10.10.9.10
bgp cluster-id 909
neighbor csr peer-group
neighbor csr remote-as 100
neighbor csr update-source Loopback100 ! Cell Site - Routers RAN IGP
loopback100 as source
neighbor abr peer-group
neighbor abr remote-as 100
neighbor abr update-source Loopback0 ! Core POP ABRs - core-agg IGP
loopback0 as source
neighbor 10.10.10.1 peer-group abr
neighbor 10.10.10.2 peer-group abr
neighbor 10.10.13.1 peer-group csr
!
address-family ipv4
bgp redistribute-internal
network 10.10.9.10 mask 255.255.255.255 route-map AGG_Comm ! Advertise with
Aggregation Community (300:300)
redistribute ospf 1 ! Redistribute RAN IGP prefixes
neighbor abr send-community
neighbor abr next-hop-self
neighbor abr send-label ! Send labels with BGP routes
neighbor 10.10.10.1 activate
neighbor 10.10.10.2 activate
exit-address-family
!
route-map AGG_Comm permit 10
set community 300:300
圖14
interface Loopback0
ip address 10.10.13.2 255.255.255.255
! IGP Configuration
router ospf 1
router-id 10.10.13.2
network 10.9.10.0 0.0.0.1 area 0
network 10.13.0.0 0.0.255.255 area 0
network 10.10.13.3 0.0.0.0 area 0
圖15
Interface lookback0
ip address 10.10.11.1 255.255.255.255
! IGP Configuration
router isis core-agg
is-type level-2-only ! ISIS L2 router
net 49.0100.1010.0001.1001.00
address-family ipv4 unicast
metric-style wide
! BGP Configuration
router bgp 100
ibgp policy out enforce-modifications
bgp router-id 10.10.11.1
address-family ipv4 unicast
network 10.10.11.1/32 route-policy MPC_Comm ! Advertise Loopback-0 with MPC Community
allocate-label all ! Send labels with BGP routes
!
session-group infra
remote-as 100
update-source Loopback0
!
neighbor-group abr
use session-group infra
address-family ipv4 labeled-unicast
next-hop-self
!
neighbor 10.10.6.1
use neighbor-group abr
!
neighbor 10.10.12.1
use neighbor-group abr
community-set MPC_Comm
200:200
end-set
!
route-policy MPC_Comm
set community MPC_Comm
end-policy
行動封包閘道(MPG)的回送首碼為10.10.11.1/32,因此該首碼是有益的。現在,請檢視資料包如何從CSG轉發到MPG。
MPC字首10.10.11.1由Pre-agg(路由標籤1000)為CSG路由器所知,並且它可以作為帶有傳出LDP標籤31(域內LDP LSP)的標籤資料包轉發。 MPC社群200:200在Pre-agg節點中使用路由標籤1000進行對映,而重分發在OSPF中。
CSG#sh mpls forwarding-table 10.10.11.1 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
34 31 10.10.11.1/32 0 Vl40 10.13.1.0
MAC/Encaps=14/18, MRU=1500, Label Stack{31}
在Pre-agg節點中,MPC字首通過基於社群的過濾從BGP重分佈到RAN接入OSPF進程,而OSPF進程重分佈到BGP。為了使端到端IP可達性,這種受控重分發是必需的,同時每個網段具有最小的所需路由。
10.10.11.1/32字首通過連線MPC 200:200社群的分層BGP 100來識別。從核16020區域邊界路由器(ABR)接收的BGP 3107標籤和LDP標籤22被新增到頂部,以便在下一跳遞迴查詢之後進行域內轉發。
Pre-AGG1#sh ip route 10.10.11.1
Routing entry for 10.10.11.1/32
Known via "bgp 100", distance 200, metric 0, type internal
Redistributing via ospf 1
Advertised by ospf 1 subnets tag 1000 route-map BGP_TO_RAN
Routing Descriptor Blocks:
* 10.10.10.2, from 10.10.10.2, 1d17h ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: 16020
Pre-AGG1#sh bgp ipv4 unicast 10.10.11.1
BGP routing table entry for 10.10.11.1/32, version 116586
Paths: (2 available, best #2, table default)
Not advertised to any peer
Local
<SNIP>
Local
10.10.10.2 (metric 30) from 10.10.10.2 (10.10.10.2)
Origin IGP, metric 0, localpref 100, valid, internal, best
Community: 200:200
Originator: 10.10.11.1, Cluster list: 0.0.3.233, 0.0.2.89
mpls labels in/out nolabel/16020
Pre-AGG1#sh bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.10.11.1/32 10.10.10.1 nolabel/16021
10.10.10.2 nolabel/16020
Pre-AGG1#sh mpls forwarding-table 10.10.10.2 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
79 22 10.10.10.2/32 76109369 Vl10 10.9.9.1
MAC/Encaps=14/18, MRU=1500, Label Stack{22}
Pre-AGG#sh mpls forwarding-table 10.10.11.1 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
530 16020 10.10.11.1/32 20924900800 Vl10 10.9.9.1
MAC/Encaps=14/22, MRU=1496, Label Stack{22 16020}
字首10.10.11.1通過域內IGP(ISIS-L2)和根據MPLS轉發表已知。可通過LDP LSP訪問。
ABR-Core2#sh ip route 10.10.11.1
Routing entry for 10.10.11.1/32
Known via "isis core-agg", distance 115, metric 20, type level-2
Installed Sep 12 21:13:03.673 for 2w3d
Routing Descriptor Blocks
10.10.1.0, from 10.10.11.1, via TenGigE0/0/0/0, Backup
Route metric is 0
10.10.2.3, from 10.10.11.1, via TenGigE0/0/0/3, Protected
Route metric is 20
No advertising protos.
為了在分段區域之間分配字首,將使用帶標籤的BGP(RFC 3107)。需要駐留在IGP的分段區域內的是與中心基礎設施相關的PE和地址的環回。
將不同區域連線在一起的BGP路由器是充當BGP路由反射器的ABR。這些裝置使用Next-Hop-Self功能,以避免需要在IGP內擁有整個自治系統的所有下一跳,而不是只擁有PE和中央基礎架構的IP地址。根據BGP Cluster-ID完成環路檢測。
對於網路恢復能力,具有BGP新增路徑功能的BGP PIC應與BGP一起使用,LFA應與IGP一起使用。以上示例中未使用這些功能。
目前尚無適用於此組態的具體疑難排解資訊。