此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍统一多协议标签交换(MPLS),其全部内容是扩展。它提供技术解决方案框架,以在传统分段的基础设施中提供简单的端到端流量和/或服务。它利用分层基础设施的优点,提高了可扩展性和网络设计的简单性。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
当您查看基于数据包的网络服务的历史记录时,可以观察到网络业务价值的变化。这从为使应用尽可能流畅而进行的离散连接增强,到为支持移动协作而采用的协作技术。最后,在应用服务中引入按需云服务,以优化与组织一起使用的工具,并提高稳定性和拥有成本。
图 1
网络的持续价值和功能增强导致对网络简便性、可管理性、集成性和稳定性的需求更加普遍,因为网络因运营孤岛分散而被分割,而且没有真正的端到端路径控制。现在,我们需要将其与易于管理、可扩展至100,000个节点并使用当前高可用性和快速融合技术的单个架构结合起来。这是Unified MPLS的优势,即将分段的网络划分到单个控制平面和端到端路径可见性中。
现代网络要求
在应用需求更复杂且规模越来越大的网络中,您如何简化MPLS操作?
传统MPLS面临不同接入技术的挑战
统一MPLS吸引力在以下列表中汇总:
统一MPLS通过传统/传统MPLS增加额外功能来定义,并提供更高的可扩展性、安全性、简单性和可管理性。为了提供端到端MPLS服务,需要端到端标记交换路径(LSP)。目标是保持MPLS服务(MPLS VPN、MPLS L2VPN)的原样,但引入更高的可扩展性。为此,请将一些IGP前缀移入边界网关协议(BGP)(提供商边缘(PE)路由器的环回前缀),然后将这些前缀端到端分配。
图 2
在讨论思科统一MPLS架构之前,了解实现此目标所使用的关键功能非常重要。
在网段之间交换前缀时,必须使用可扩展的方法。您只需将IGP(开放最短路径优先(OSPF)、中间系统到中间系统(IS-IS)或增强型内部网关路由协议(EIGRP))合并到单个域。但是,IGP不能承载100,000个前缀。为此选择的协议是BGP。它是一种久经考验的协议,支持包含100,000条路由的Internet和包含数百万条条目的MPLS-VPN环境。思科统一MPLS使用BGP-4与标签信息交换(RFC3107)。 当BGP分发路由时,它还可以分发映射到该路由的MPLS标签。路由的MPLS标签映射信息在包含路由信息的BGP更新消息中传输。如果下一跳未更改,则会保留标签,如果下一跳更改,则标签会更改。在统一MPLS中,下一跳在区域边界路由器(ABR)发生更改。
当您在两台BGP路由器上启用RFC 3107时,路由器会相互通告,它们随后可以通过路由发送MPLS标签。如果路由器成功协商其发送MPLS标签的能力,则路由器会向所有传出BGP更新添加MPLS标签。
需要交换标签以保留网段之间的端到端路径信息。结果,每个分段变得足够小,以便由操作员管理,同时在两个不同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)必须是BGP内联路由反射器,并带有Next-Hop-Self和RFC 3107,以便在会话上配置IPv4 +标签。这些BGP扬声器位于Cisco Unified MPLS架构中,称为ABR。
为什么ABR是内联路由反射器?
统一MPLS的目标之一是拥有高度可扩展的端到端基础设施。因此,每个网段应保持简单,以便运行。所有对等项都是iBGP对等项,因此整个网络内所有iBGP扬声器之间需要全网状对等项。如果有数千个BGP扬声器,则会导致一个非常不切实际的网络环境。如果ABR被设置为路由反射器,则iBGP对等的数量将减少为BGP扬声器的“每段”数量,而不是整个AS的“所有”BGP扬声器之间的数量。
为什么选择Next-Hop-Self?
BGP在递归路由查找的基础上运行。这样做是为了在所使用的基础IGP中适应可扩展性。对于递归查找,BGP使用连接到每个BGP路由条目的下一跳。因此,例如,如果源节点希望将数据包发送到目标节点,并且如果数据包到达BGP路由器,则BGP路由器在其BGP路由表中执行路由查找。它找到通往目的节点的路由,并找到下一跳作为下一步。此下一跳必须由底层IGP知道。最后一步,BGP路由器根据连接到该下一跳的IP和MPLS标签信息将数据包转发出去。
为了确保在每个网段内IGP只需要知道下一跳,需要连接到BGP条目的下一跳位于网段内,而不是邻居或更远的网段内。如果使用Next-Hop-Self功能重写BGP下一跳,请确保下一跳位于本地网段内。
汇总归纳
图 4
图4提供了L3 VPN前缀“A”和标签交换如何运行的示例,以及如何创建MPLS标签堆栈来获取两个PE之间流量的端到端路径信息。
网络被划分为三个独立的IGP/LDP域。路由器上路由和转发表的缩减是为了实现更好的稳定性和更快的收敛。LDP用于在域内构建域内LSP。RFC 3107 BGP IPv4+标签用作域间标签分发协议,以跨域构建分层BGP LSP。BGP3107在统一MPLS架构的转发标签堆栈中插入一个额外标签。
域内 — LDP LSP
域间 — BGP分层LSP
图 5
VPN前缀“A”由PE31通过L3VPN服务标签30和下一跳作为PE31的环回,通过端到端域间分层BGP LSP通告给PE11。现在,查看从PE11到PE31的VPN前缀“A”的转发路径。
当您查看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扩展对于BGP PIC尤其重要,以便AS中的不同BGP扬声器能够根据路由反射器访问更多BGP路径,作为“最佳BGP路径”。
引入一种称为无环替代(LFA)的新技术,可显着简化链路或节点故障后实现50毫秒恢复的操作。LFA增强了链路状态路由协议(IS-IS和OSPF),以便以无环方式查找备用路由路径。LFA允许每台路由器在邻接(网络节点或链路)失败时定义并使用预定的备份路径。为了在链路或节点发生故障时提供50毫秒的恢复时间,可以部署MPLS TE FRR。但是,这需要添加另一协议(资源预留协议或RSVP)来设置和管理TE隧道。虽然这可能是带宽管理所必需的,但保护和恢复操作不需要带宽管理。因此,为了简单保护链路和节点,与添加RSVP TE相关的开销被认为很高。
LFA可提供简单易用的技术,而无需在此类场景中部署RSVP TE。通过这些技术,当今大型网络中互连的路由器可以为链路和节点故障提供50毫秒的恢复,而无需操作员进行配置。
图 8
LFA-FRR是一种机制,为IP、MPLS、MPLS以太网(EoMPLS)、MPLS ATM反向多路复用(IMA)、MPLS分组交换网络电路仿真服务(CESoPSN)和结构 — MPLS中的单播流量提供本地保护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是CSG路由器从路由标记为1000的Pre-agg获知的,并且可以作为带有传出LDP标签31(域内LDP LSP)的标记数据包转发。 MPC社区200:200在OSPF中重分发时与预聚合节点中的路由标记1000映射。
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}
在预聚合节点中,MPC前缀通过基于社区的过滤从BGP重分发到RAN访问OSPF进程,OSPF进程重分发到BGP。为了使端到端IP可达性,同时每个网段都有最低要求的路由,必须进行这种受控重分发。
10.10.11.1/32前缀通过连接MPC 200:200社区的分层BGP 100获知。从核心区域边界路由器(ABR)接收的16020 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中包含完整自治系统的所有Next-Hop,而不是仅包含PE和中心基础设施的IP地址。根据BGP集群ID完成环路检测。
为实现网络恢复能力,应将具有BGP添加路径功能的BGP PIC与带IGP的BGP和LFA一起使用。上例中未使用这些功能。
目前没有针对此配置的故障排除信息。