1 MPLS基础
MPLS(Multiprotocol Label Switching,多协议标签交换)是一种利用标签引导数据高效传输的骨干网隧道技术。多协议是指MPLS支持多种网络层协议(如IP、IPv6和IPX等),而且兼容包括ATM、帧中继、以太网和PPP等多种链路层技术。
最初MPLS技术是为了提高路由设备的转发速度而提出的。与传统IP路由相比,它在转发数据时,只需要在MPLS网络边缘分析IP报文头,不需要分析MPLS网络中的每一跳,从而节约了处理时间。随着硬件技术和网络处理器的发展,MPLS在高效转发方面的优势不再明显。但由于MPLS在面向无连接的IP网络中添加了面向连接的标签交换属性,将二层交换和三层路由技术结合起来,充分发挥了二层交换简洁、IP路由灵活的优势,在解决VPN(Virtual Private Network,虚拟专用网)和TE(Traffic Engineering,流量工程)问题时相比其它技术具有明显的优势,因此MPLS技术在VPN、流量工程等方面得到广泛的应用。
MPLS网络有2个基本构成要素:LER(Label Switching Edge Router,标签边缘路由器)和LSR(Label Switching Router,标签交换路由器)。
l LER位于MPLS网络的边缘。入口LER负责将进入MPLS网络的报文分类并添加标签,封装成MPLS报文进行转发。出口LER负责将离开MPLS网络的报文移除标签、还原成原始的报文。LER提供了流量分类、标签映射和标签移除的功能。
l LSR位于MPLS网络的核心,运行MPLS信令协议,负责标签报文的转发。
图1-1 MPLS网络结构
IP报文在MPLS网络中经过的路径称为LSP(Label Switched Path,标签交换路径),它是一系列LSR的集合,可以将LSP看做类似穿越MPLS核心网络的一个隧道。
运行MPLS功能的设备称为MPLS节点,如 REF _Ref63608909 \r \h \* MERGEFORMAT 图1-1 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300038003900300039000000 MPLS网络中的LER和LSR。MPLS节点能够识别MPLS信令协议,运行一个或者多个三层路由协议(包括静态路由),并且根据MPLS标签转发报文。通常一个MPLS节点也有能力转发原始的三层报文(如IP报文)。
l LSP的入口LER称为入节点(Ingress),位于LSP中间的LSR称为中间节点(Transit),LSP的出口LER称为出节点(Egress)。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。
l LSP是一条单向路径,与数据流的方向一致。
l 根据LSP的方向,MPLS报文由Ingress发往Egress,则Ingress是Transit的上游节点,Transit是Ingress的下游节点。同理,Transit是Egress的上游节点,Egress是Transit的下游节点。
FEC(Forwarding Equivalence Class,转发等价类)是指一类具有相同特征的数据报文。在IP单播路由应用中,FEC可以按照目的地址前缀进行分类。到达同一个目的地的所有报文为一个转发等价类,即一条路由对应一个FEC。在MPLS网络转发过程中,属于相同FEC的报文将获得相同的处理。
标签是一个长度固定、具有本地意义的短标识符。标签只在相邻的两个MPLS节点之间分发传递,因此也只在相邻MPLS节点之间有效。
图1-2 MPLS标签结构
标签长度为32比特,由以下4个域构成。
l Label域
长度为20比特,用来存放标签值。一个标签用于标识一个FEC。IETF将0~15定义为特殊标签,特殊标签值的含义如下表所示。
表1-1 特殊标签
标签值 |
含义 |
0 |
IPv4显式空标签(IPv4 Explicit NULL Label)。在IPv4报文转发过程中,如果倒数第二跳LSR出标签为0,则需要将标签0压入标签栈顶部,再将报文转发给下一跳。最后一跳收到标签0报文时,直接将标签0弹出 |
1 |
路由器告警标签(Router Alert Label),不允许出现在标签栈的栈底,和IP报文中的“Router Alert Option”类似。当收到携带标签1的报文,必须交由本地的软件模块进行处理,实际报文根据标签1的下一层标签进行转发。在报文转发前,需要将标签1重新压入到标签栈中。每跳LSR都必须对携带标签1的MPLS报文进行检查 |
2 |
IPv6显式空标签(IPv6 Explicit NULL Label)。在IPv6报文转发过程中,如果倒数第二跳LSR出标签为2,则需要将标签2压入标签栈顶部,再将报文转发给下一跳。最后一跳收到标签2报文时,直接将标签2弹出 |
3 |
隐式空标签(Implicit NULL Label)。标签3可以被标签分发协议分发,但是不会出现在MPLS报文的标签栈中进行传输。当LSR执行MPLS报文标签交换时,如果发现栈顶将被替换的标签是3,那么将弹出栈顶的标签而不执行替换动作。在“倒数第二跳弹出”功能中会用到标签3 |
4~15 |
保留 |
l Exp域
长度为3比特,目前主要用来存放MPLS的QoS信息。
l S标志
长度为1比特,栈底标志。MPLS支持标签嵌套。当有多个标签时,栈底标签的S位为1,其它标签的S位为0。当只有一个标签时,标签的S位为1。
l TTL
长度为8比特,存活时间,与IP报文头中的TTL值类似。
一个MPLS报文可以携带多层标签,即标签栈。标签栈的存在使得MPLS技术可以支持分层的网络体系。如 REF _Ref63608933 \r \h \* MERGEFORMAT 图1-3 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300038003900330033000000 所示,靠近链路层首部的标签为栈顶标签,靠近IP首部的标签为栈底标签。LSR执行标签交换时总是基于栈顶标签进行操作。当有多个标签时,每个标签都包含完整的32比特。
图1-3 MPLS标签栈
MPLS节点对标签的基本操作主要有:Push(压入标签)、Swap(交换标签)和Pop(弹出标签)。
图1-4 基本标签操作
l Push
入口LER在链路层首部和网络层首部之间插入标签,或者中间LSR在MPLS报文的标签栈顶再增加新的标签。
l Swap
在转发过程中根据标签转发表替换报文栈顶标签的过程。
l Pop
出口LER将报文中的标签全部去掉还原成IP报文,或者中间LSR去掉栈顶标签减少标签栈层次。
MPLS转发过程中主要涉及到三张表:NHLFE(Next Hop Label Forwarding Entry,下一跳标签转发入口)、FTN(FEC-To-NHLFE)和ILM(Incoming Label Map,入标签映射)。
l NHLFE
NHLFE表用于存储转发MPLS报文的下一跳信息,通常包含如下内容:
○ 数据报文的下一跳。
○ 转发数据报文使用的链路层封装。
○ 转发数据报文标签栈使用的编码方式。
○ 对数据报文标签栈的操作。
l FTN
FTN负责将每个FEC映射到一系列的NHLFE(多个NHLFE表明其是多径)。FTN表主要用在LER收到未带标签数据报文的转发情况。LER收到一个未带标签的IP数据包后,会根据FTN表,按照最长匹配原则匹配IP数据包的目的地址。如果查找到下一跳,则对IP数据包执行标签封装后进行转发。
l ILM
ILM负责将每个入标签映射到一系列的NHLFE(多个NHLFE表明其是多径)。ILM表主要用在当LSR收到带标签MPLS报文的转发情况。
MPLS节点间需要对转发报文所用的标签达成共识,并成功建立LSP后才能进行报文的转发。LSP的建立可以通过手工静态配置,也可以通过MPLS信令协议动态建立。
l 静态LSP
在各MPLS节点上,通过手工分配标签建立静态LSP。静态LSP无需交互控制报文,具有资源消耗少的优点,但需要逐条手工配置,无法根据网络拓扑变化进行灵活地动态调整,因此只适用于组网结构比较简单、稳定的小规模网络。
l 动态LSP
MPLS信令协议主要负责划分FEC、分发标签和建立维护LSP等操作。MPLS支持多种信令协议,有专门为标签分发而制定的协议,如LDP(Label Distribution Protocol,标签分发协议),也有在现有协议基础上进行扩展后支持标签分发的协议,比较典型的如RSVP-TE(Resource Reservation Protocol-Traffic Engineering,基于流量工程的资源预留协议)和MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)。
在MPLS网络中,各节点启用传统IP路由协议(如OSPF、IS-IS等),建立IP路由表。LDP根据IP路由表建立LSP,完成各节点的标签分发。
图1-5 MPLS报文基本转发过程
如 REF _Ref63609047 \r \h \* MERGEFORMAT 图1-5 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300039003000340037000000 所示,MPLS的基本转发过程如下:
(1) 入口LER1(Ingress节点)接收IP包,分析IP包头并对应到一个FEC,为IP包添加FEC对应的标签L1,沿着标签L1对应的LSP将标签报文转发给下一跳LSR。
(2) 下一跳LSR1(Transit节点)收到标签报文,根据栈顶标签L1查找标签转发表,用新标签L2替换原有标签L1,转发给下一跳LSR。
(3) LSR2的处理动作与步骤(2)类似。
(4) 出口LER2(Egress节点)收到带标签的报文,弹出报文中的标签后,根据IP路由表选路转发。
在MPLS网络中,出口LER收到带有标签的报文,需要查找标签转发表,先弹出标签再进行下一层的转发处理。为了减轻出口LER的负担,引入了PHP(Penultimate Hop Popping,倒数第二跳弹出)功能。PHP是通过分配空标签实现的,在倒数第二跳LSR就将标签弹出,从而在出口LER只需查找一次转发表即可。PHP分配的空标签分为显示空标签和隐式空标签。
l 显式空标签0。倒数第二跳LSR收到带有标签的报文,查找标签转发表发现报文对应的出标签为0,则将报文最外层标签替换为标签0后发送给出口LER。出口LER收到带0标签的报文,将直接弹出0标签,根据IP路由表选路转发。
l 隐式空标签3。倒数第二跳LSR收到带有标签的报文,查找标签转发表发现报文对应的出标签为3,则弹出标签,发送原始的IP报文到出口LER。出口LER收到原始的IP报文后,将直接根据IP路由表选路转发。
MPLS对报文TTL的处理有两种模式:TTL复制和TTL不复制。
l TTL复制模式
IP报文进入MPLS网络,入口LER为IP报文压入标签时,先将已有IP报文的TTL值减1,再拷贝到新压入标签的TTL字段。每经过一台LSR,栈顶标签的TTL执行减1操作。出口LER弹出标签时,将标签的TTL减1拷贝回IP报文的TTL字段。在TTL复制模式下,如果内层头部的TTL小于外层头部的TTL,那么将不会拷贝,而是保留内层头部的TTL不变。
图1-6 TTL复制模式处理过程
l TTL不复制模式
IP报文进入MPLS网络,入口LER为IP报文压入标签时,IP TTL减1,压入标签的TTL值为255。每经过一台LSR,栈顶标签的TTL执行减1操作,IP报文的TTL值保持不变。出口LER弹出标签时,IP报文TTL值减1。
图1-7 TTL不复制模式处理过程
使用TTL复制模式,在CE(Customer Edge,用户边缘设备)使用Tracert工具能够跟踪到MPLS骨干网中报文经过的所有路径。出于网络安全考虑,建议使用TTL不复制模式,IP报文的TTL只在入口LER和出口LER执行减1,在MPLS网络中无论经过多少跳都保持不变,从而可以隐藏MPLS网络结构。
在MPLS网络中,当LSP发生数据转发故障时,负责建立LSP的控制面感知不到错误,导致网络维护复杂度较高。为了降低网络维护成本、提高MPLS网络的可用性,引入了MPLS Ping和MPLS Traceroute这两个LSP连通性检测工具。
LSP连通性检测与传统的Ping和Traceroute类似,都是基于Echo Request和Echo Reply模式。区别在于MPLS Ping和MPLS Traceroute是基于UDP协议实现,而不是ICMP协议。其中Echo Request使用的UDP端口号为3503,只有开启MPLS功能的设备才能识别该端口号。
MPLS Ping主要用于检测LSP的连通性。入口LER为MPLS Echo Request报文打上待检测LSP对应的标签,沿着LSP将报文发送给出口LER。出口LER回应MPLS Echo Reply报文。如果入口LER收到的MPLS Echo Reply报文正常,则说明LSP可以用来转发数据。如果入口LER收到的MPLS Echo Reply报文带有错误码,则说明LSP存在故障。
l MPLS Traceroute
MPLS Traceroute主要用于逐跳跟踪入口LER到出口LER经过的LSR。除了能够检测LSP的连通性,还能用于定位网络发生故障的具体位置。入口LER沿着LSP路径连续发送MPLS Echo Reques报文,LSP经过的每一跳LSR收到请求报文后,会回应MPLS Echo Reply报文,因此入口LER可以收集到每一跳LSR的信息,定位出发生故障的位置。除此之外,通过MPLS Traceroute还能够收集到LSR分配的标签等重要信息。
要实现MPLS的基本转发功能,可以通过静态配置LSP而不使用标签分发协议。静态LSP是指在MPLS网络的每一跳设备上通过手工静态配置出入标签、下一跳等信息生成标签转发表的方式建立MPLS LSP。
说明
静态配置LSP不需要LDP协议,因此也就不需要依赖IPv4路由。即便网络中没有任何IPv4路由,只要物理网络可达,静态配置的LSP即可生效。
静态LSP的建立过程如下:
(1) 在入口LER对FEC建立静态FTN表项(包含目的网段对应的出标签、LSP的下一跳或者到达下一跳的出接口),把FEC和标签进行绑定。入口LER收到一个IP数据包后,根据报文的目的地址,使用最长匹配查找FTN表下一跳。如果找到,为报文添加FEC对应的出标签,将IP流量导入LSP,并把报文转发给指定的下一跳或通过出接口进行转发。
(2) 在中间LSR上配置静态ILM转发表项(包含入标签对应的出标签、LSP的下一跳或者到达下一跳的出接口),把入标签映射到出标签上。中间LSR收到一个带标签的数据包后,会在ILM表中根据报文携带的标签值查找下一跳。如果找到,则将报文中的标签替换为该标签对应的出标签,并将报文转发给指定的下一跳或通过出接口进行转发。如果在倒数第二跳LSR做PHP(即LSR的ILM出标签为隐式空标签3),则会在倒数第二跳LSR处将标签弹出再进行转发。
(3) 对于倒数第二跳LSR出标签未配置为0或3的情况,出口LER还需要配置静态ILM表项。此时出口LER接收到的报文仍带有标签值,需要根据ILM表项弹出标签,再对报文进行下一层转发处理。如果在倒数第二跳LSR配置出标签值为0或3,则出口LER接收到的是普通IP报文,可以直接进行转发。
LDP协议是指两个LSR对它们之间传输流量所用标签的意义达成共识的一系列过程。通过LDP协议,LSR可以把IP路由信息映射到MPLS LSP,将标签绑定信息通知给相邻的LSR,从而建立起动态LSP。
LDP协议的主要功能是为IP单播路由和Martini L2VPN交换标签绑定信息。
说明
本章主要描述为IP单播路由建立LSP。关于Martini L2VPN的配置和应用请参见“MPLS”中的“MPLS L2VPN配置”。
l LDP对等体
LDP对等体是指交换标签绑定信息的两台LSR上的LDP实例。
l LDP Router ID
LDP Router ID在域内唯一标识一台LSR,也就是LSR ID。它采用IPv4地址的格式表示。LDP默认使用系统的Router ID作为LDP Router ID。LDP Router ID的值要保证全局唯一。
l LDP会话
LDP会话是指LDP对等体之间用于交换标签绑定信息的会话。建立LDP会话使用的是TCP连接。
LDP工作过程主要包括三个阶段:LDP对等体发现和维护、LDP会话建立和维护以及LSP建立。
l LDP对等体发现和维护
LDP通过周期性的发送UDP Hello报文来通告自身,同时监听Hello报文来发现LDP对等体。发现对等体后,如果超过一定时间都没再收到Hello报文,则认为该LDP对等体已失效,该时间称为Hello报文保活时间。
l LDP会话建立和维护
LDP通过Hello报文发现LDP对等体后,会使用Hello报文通告的传输地址建立TCP传输连接,并在传输连接上通过交互初始化消息的方式进行LDP会话参数协商,完成LDP会话建立。
LDP会话建立后,会话双方会周期性的发送Keepalive报文监测TCP传输连接。如果超过一定时间没有收到对方的报文,则认为该连接已失效,并主动断开会话,该时间称为Keepalive报文保活时间。
为了提高LDP会话连接的安全性,可以对LDP使用的TCP连接配置MD5认证。
l LSP建立
在LDP会话建立后,LDP对等体之间互相交换标签消息,并进行标签绑定,从而为FEC建立LSP。
LSP的建立实际上是完成FEC与标签绑定,并将该绑定通告给相邻LSR的过程。关于LDP的详细实现过程请参见RFC 3036协议。
l LDP标签分发模式
LSP建立过程有2种标签分发模式:DoD(Downstream on Demand,下游按需分发)和DU(Downstream Unsolicited,下游自主分发),如 REF _Ref64728742 \r \h \* MERGEFORMAT 图1-8 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360034003700320038003700340032000000 所示。
图1-8 LDP标签分发模式
○ 在DoD模式下,MPLS节点只有在接收到邻接LSR的标签请求后,才会回应标签绑定消息。
○ 在DU模式下,MPLS节点在没有收到请求的情况下也会主动分发标签绑定消息给邻接LSR。
l LDP标签控制方式
LSP建立过程的标签控制方式分为2种:独立控制方式和有序控制方式,如 REF _Ref64728852 \r \h \* MERGEFORMAT 图1-9 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360034003700320038003800350032000000 所示。
图1-9 LDP标签独立控制方式
使用独立控制方式,每个MPLS节点可以在任何需要的时候向它的邻接公告标签同FEC的绑定信息。
○ 当以独立、DoD模式运行时,一个LSR可以立即回应上游发送的标签映射请求,而不需要等待接收下一跳的标签映射消息。
○ 当以独立、DU模式运行时,一个LSR可以在任何它准备好为该FEC执行标签交换的时候,公告该FEC的标签映射消息。
使用有序控制方式,一个LSR仅当FEC存在下一跳的标签映射消息或者LSR是该FEC的出口时,才能为该FEC绑定标签向上游分发。否则该LSR必须等待接收一个下游LSR关于该FEC的标签映射,本地才能将FEC同标签绑定并发送给上游LSR。
○ 如果标签分发模式为DU,则只有本身是该FEC的出口或者收到下游LSR分发的标签时,才会向本端的上游LSR通告标签。
○ 如果下游LDP会话的标签分发模式为DoD,则当它收到上游LSR的标签请求信息时,将向它的下游传递该请求信息。
在LSP建立过程中,如果收到的标签映射消息不是来自于FEC的下一跳,或收到的标签映射消息与现有任何一条FEC都不匹配,则根据本机配置的标签保留模式进行处理。
l 自由标签保留模式:保留从邻居学到的FEC标签绑定。
l 保守标签保留模式:不保留从邻居学到的FEC标签绑定。
保守标签保留模式需要使用和维护的标签数较少,但当路由发生改变时,需要重新获得标签值,从而增加了响应时间。而自由标签保留模式对路由改变响应快,但是用不到的标签映射消息也会被分发和维护。
为了保证能够及时检测到LSP存在环路的情况,在LSP的建立过程中提供了环路检测机制。检测LSP环路有两种方式:最大跳数和路径向量。
l 最大跳数环路控制方式
在传递标签绑定的消息中包含经过的LSR数目,每经过一个LSR该值就加1。当该值超过规定的最大值时,则认为出现了环路,从而终止LSP的建立。
l 路径向量环路控制方式
在传递标签绑定的消息中记录经过的LSR ID,每经过一个LSR就将该LSR的ID记录到消息向量表中。当一个LSR收到标签绑定消息时,会检查在消息向量表中是否存在本端设备的ID。如果不存在,则在分发消息时将本端设备的ID添加到该记录中;如果存在,则说明出现了环路,从而终止LSP的建立。
当本地LDP会话直连的链路发生故障后,会导致LDP邻接关系断开,进而对应的LDP会话断开。在链路故障恢复时将重新建立LDP会话并重新交换标签绑定,达到LDP协议收敛,该过程将导致LDP LSP发生流量丢失。为了减少LDP LSP流量的丢失,引入了LDP会话保护功能。
LDP会话保护的工作原理:对两台LSR之间的LDP会话实施保护后,两台LSR之间会通过互相发送链路Hello消息建立链路Hello邻接,同时互相发送目标Hello消息建立目标Hello邻接。当两台LSR之间的直连链路发生故障后,只要在两台LSR之间存在可替代的路径,目标Hello邻接将会得到维持。虽然链路Hello邻接会随着链路的故障而断开,但目标Hello邻接将继续维持LDP会话。当直连链路故障恢复后,LSR之间不需要重新建立LDP会话,从而提高了LDP的收敛效率。
图1-10 LDP会话保护
如 REF _Ref63609005 \r \h \* MERGEFORMAT 图1-10 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300039003000300035000000 所示,设备R1、R2和R3链路层互通且开启OSPF动态路由协议,在R1和R2上开启LDP协议。R1和R2之间会建立链路Hello邻接,从而建立LDP会话。为了对R1和R2之间的LDP会话进行保护,可以在R1和R2上开启LDP会话保护功能,这样就会在R1和R2之间建立目标Hello邻接。
当R1和R2之间的链路发生故障后,链路Hello邻接也会断开。由于存在另外一条路径(R1-R3-R2)可以到达R2,目标Hello邻接将会得到维持,因此LDP会话不会断开。这样在R1和R2之间的链路故障恢复后就不需要重新建立LDP会话,也不需要重新交换标签绑定。
LDP会话保护功能能够对两台直连LSR之间的LDP会话和LDP over TE的LDP会话进行保护,加快链路故障恢复时LDP协议的收敛速度,尤其在被保护链路发生短时间故障并恢复时效果更为明显。
LDP标签管理策略包括标签分发控制策略和标签接收控制策略。
l 标签分发策略控制
缺省情况下,LDP会为所有有效的IGP路由都分配标签(BGP路由除外)。但在某些特定情况下可能仅仅想为指定路由分发标签或者是控制只向指定LDP对等体分发标签。为了减少设备和网络的负担,可以通过标签分发控制策略来减少标签的使用以及LSP的数量。通过配置分发策略可以达到以下效果:
○ 只为指定IP路由对应的FEC分发标签映射消息。
○ 只向指定的LDP对等体分发标签映射消息。
○ 同时实现上述两种效果。
l 标签接收策略控制
缺省情况下,LDP会接收LDP会话上收到的所有标签映射消息(不管该会话工作在DU模式还是DoD模式)。对于工作在DoD模式下的会话,LDP会为所有以该对等体作为下一跳的FEC向该对等体发送标签请求消息。通过配置接收策略可以达到以下效果:
○ 只接收指定对等体发来的指定IP路由对应FEC的标签映射消息。
○ 只向指定LDP对等体发送指定FEC的标签请求消息。
○ 不接收指定对等体发来的任何标签映射消息。
○ 不向指定对等体发送任何标签请求消息。
LDP域间LSP是指跨越同一自治域内多个IGP区域的标签交换路径。当一个自治域规划为多个IGP区域时,为了缩减路由表的规模,提高网络的工作效率,通常会在ABR(Area Border Router,区域边界设备)配置路由汇聚。对于OSPF来说,ABR为连接骨干区域和其它区域的节点。对于ISIS来说,ABR为Level1/Level2节点。当在ABR上配置主机路由汇聚时,可以通过LDP域间LSP技术为被汇聚的主机路由建立跨越同一自治域内多个IGP区域的标签交换路径。LDP域间LSP技术是对LDP协议进行路由最长匹配的扩展。
说明
当一个自治域规划为多个IGP区域且在区域边界设备ABR开启对主机路由进行汇聚时,如果需要为被汇聚的主机路由建立跨越多个IGP区域的标签交换路径,可以开启LDP域间LSP功能。
未开启LDP域间LSP功能时,LDP协议只转发精确匹配路由对应的标签,并将标签映射消息分发给所有LDP邻居。开启LDP域间LSP功能后,LDP接收到下游发送的标签映射消息时,如果设备存在对应标签映射消息FEC的最长匹配路由,且发送标签映射消息的LDP邻居是该最长匹配路由的下一跳,则添加转发表项,并向所有LDP邻居分发标签映射消息(针对接收到的标签映射消息中的FEC,而非从路由表中获得的最长匹配路由的FEC分发标签映射消息)。
l 建立LDP域间LSP过程
建立LDP域间LSP的过程如 REF _Ref63609063 \r \h \* MERGEFORMAT 图1-11 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300039003000360033000000 所示:
图1-11 建立LDP域间LSP过程
a 在ABR1上向骨干区域公告聚合路由,此时ABR1的路由表中既有汇聚路由192.168.2.0/24又有主机路由192.168.2.1/32。
b PE1往ABR1发送FEC 192.168.2.1/32的标签映射消息。
c ABR1往上游节点P2分别发送FEC 192.168.2.0/24和FEC 192.168.2.1/32的标签映射消息。
d P2的路由表中只有汇聚路由192.168.2.0/24,收到FEC 192.168.2.0/24的标签映射消息后会往上游P3节点发送标签映射消息。当收到FEC 192.168.2.1/32的标签映射消息时,因为路由表中存在与该FEC最长匹配的路由(192.168.2.0/24)且发送标签映射消息的邻居ABR1是对应最长匹配路由的下一跳,因此P2也会往上游发送FEC 192.168.2.1/32的标签映射消息。
e P3的处理与P2相同。
f 通过以上处理步骤,在Area 0和Area 1之间建立P3-P2-ABR1-PE1(192.168.2.1/32)的域间LSP。
可以看出,路由最长匹配分发标签映射方式类似于DU标签分发模式+有序控制方式情形(由于上游只存在汇聚路由,不存在其它区域的精确路由,所以对于DoD标签分发模式情形LDP域间LSP技术不适用),采用这种方式建立的LSP同样符合IGP的最短路径。
l 撤销LDP域间LSP过程
对于因存在最长匹配路由而添加的MPLS转发表项,无论当前的标签分发控制模式是独立控制方式还是有序控制方式,对于从下游接收到对应的标签撤销消息或者依赖的最长匹配路由删除等原因导致需要删除MPLS转发表项的,都需要往上游传递标签撤销消息。
撤销LDP域间LSP的过程如 REF _Ref63609082 \r \h \* MERGEFORMAT 图1-12 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360033003600300039003000380032000000 所示:
图1-12 撤销LDP域间LSP过程
因存在最长匹配路由而添加的MPLS转发表项,如果依赖的最长匹配路由发生变动(存在更优的最长匹配路由或者依赖的最长匹配路由被删除),路由平台会通知LDP路由最长匹配更新或删除,确保建立更精确的LSP用于转发。
IP路由的下一跳并非总是直连路由,例如IBGP邻居之间的路由下一跳是两个BGP节点的Router ID,IBGP邻居之间的网络与BGP路由是隔离的,此时命中BGP路由的流量无法直接转发到远端BGP邻居。因此需要在IBGP邻居之间搭建隧道,使命中路由的流量可以通过隧道到达远端BGP邻居,而MPLS LSP作为天然的隧道,可以满足此要求。
图1-13 IGP迭代到LDP
如 REF _Ref67234526 \r \h \* MERGEFORMAT 图1-13 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360037003200330034003500320036000000 ,LER2通过IBGP协议或者静态路由学习到CE2的路由,通过IBGP将CE2路由通告给LER1节点,LER1节点再将CE2路由发布往CE1。CE2的路由会在LER1上生成路由表项,下一跳为IBGP邻居通告的下一跳地址。由于LSR1节点没有学习到CE2的路由,单靠IP路由无法将流量从LER1发送到CE2,因此需要在LER1和LER2之间建立MPLS LSP隧道,将流量从LER1转发到LER2之后,再执行IP路由选路到CE2。
IP迭代到LDP的过程如下:
(1) 建立LDP LSP。在LER1、LSR1和LER2之间建立LDP邻居以及LDP LSP,详细建立过程请参见 REF _Ref59388134 \r \h \* MERGEFORMAT 1.1.5 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003300380038003100330034000000 REF _Ref59388134 \h \* MERGEFORMAT MPLS LDP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003300380038003100330034000000 。
(2) 将IP迭代到LDP LSP。
(3) 在LER1上开启IP迭代到LDP LSP功能,将LER1上CE2的路由迭代到LDP LSP。为保证迭代成功,LER1上必须有以IP路由下一跳为FEC的FTN表项。
l RFC 3032:MPLS Label Stack Encoding
l RFC 4182:Removing a Restriction on the use of MPLS Explicit NULL
l RFC 5283:LDP Extension for Inter-Area Label Switched Paths (LSPs)
l MPLS的接口相关命令只允许在三层接口上配置。对于非三层接口,需要转换成三层接口后才能配置MPLS相关命令。
l 对于部分平台,在全局关闭MPLS转发的情况下开启LDP等MPLS信令,可能会导致IP报文转发失效。如果不需要MPLS转发功能,建议同时关闭相关MPLS信令。
(1) REF _Ref62485168 \h \* MERGEFORMAT MPLS公共配置 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380035003100360038000000 REF _Ref50016739 \h \* MERGEFORMAT
(2) 配置静态LSP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310036003700330039000000 REF _Ref62485264 \h \* MERGEFORMAT
(3) 配置LDP基本功能 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380035003200360034000000
(4) (可选) REF _Ref62486959 \h \* MERGEFORMAT 配置LDP LSP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380036003900350039000000
(5) REF _Ref62487057 \h \* MERGEFORMAT 配置LDP IPv6 LSP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380037003000350037000000
(6) REF _Ref62487137 \h \* MERGEFORMAT 配置LDP会话保护 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380037003100330037000000
(7) REF _Ref50016853 \h \* MERGEFORMAT 配置LDP域间LSP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310036003800350033000000
(8) REF _Ref50017002 \h \* MERGEFORMAT 配置IP路由迭代到LDP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003000300032000000
(9) (可选) REF _Ref56417908 \h \* MERGEFORMAT 配置LSP连通性检测 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350036003400310037003900300038000000
MPLS公共配置任务如下:
(1) REF _Ref59537509 \h \* MERGEFORMAT 配置MPLS转发 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500330037003500300039000000
(2) (可选) REF _Ref59537517 \h \* MERGEFORMAT 配置接口MPLS MTU 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500330037003500310037000000
(3) (可选) REF _Ref59537523 \h \* MERGEFORMAT 配置MPLS报文的分片处理 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500330037003500320033000000
(4) (可选) REF _Ref59537539 \h \* MERGEFORMAT 配置ICMP差错报文处理方式 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500330037003500330039000000
(5) (可选) REF _Ref59537529 \h \* MERGEFORMAT 配置MPLS TTL复制功能 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500330037003500320039000000
开启MPLS转发后,设备优先为报文执行标签转发,而不执行IP转发,当标签转发执行失败时再尝试执行IP转发。
l 若无特殊要求,应该在LSP经过的每台LSR上开启全局MPLS转发。
l 若无特殊要求,应该在LSP经过的每个接口上开启MPLS转发功能。
l 开启接口的MPLS标签转发能力时,要根据业务类型同时调整接口MTU,否则可能会影响大报文的传输。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 全局开启MPLS转发。
mpls ip
缺省情况下,全局MPLS转发功能处于关闭状态。
设备要实现MPLS转发,首先需要在全局开启MPLS转发。
(4) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(5) 开启指定接口的MPLS标签转发能力。
label-switching
缺省情况下,接口MPLS标签转发能力处于关闭状态。
MPLS MTU决定了MPLS报文在发送时是否要进行分片。MPLS MTU定义的长度包括MPLS封装层和被封装层(如IP)的长度之和。对于支持MPLS报文分片的设备,当报文完成MPLS标签封装进行转发时,如果报文长度大于接口MPLS MTU,则设备将根据接口的MPLS MTU对报文进行分片。对于不支持MPLS报文分片的设备,将直接丢弃封装MPLS标签后长度大于接口MTU的转发报文。
l 接口的MPLS MTU配置不能超过接口实际传输报文的大小,接口的MTU调整可以使用接口模式下的MTU命令。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 配置接口的MPLS MTU。
mpls mtu mpls-mtu
缺省情况下,接口能够传输的MPLS标签报文MTU与接口的MTU一致。
配置对MPLS转发报文超过接口MPLS MTU情况的分片处理。IP报文封装MPLS标签后,如果报文长度超过接口MPLS MTU定义的大小,则需要对原始的IP报文进行分片后再封装MPLS标签发送,否则设备无法转发超过MPLS MTU长度的大报文。
l 对不支持MPLS报文分片的设备,开启和关闭MPLS报文分片处理命令无效。
l MPLS报文分片处理命令仅对封装的是IP报文生效,对于非IP报文该命令无效。
l 若无特殊要求,LSP经过的每台LSR都要开启MPLS报文分片功能(缺省情况下已开启),否则无法转发超过MTU长度的大报文。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 开启MPLS报文的分片处理功能。
mpls ip fragment
缺省情况下,MPLS报文分片功能处于开启状态。
配置在中途转发MPLS报文过程中生成的ICMP差错报文(典型的如MPLS TTL超时的ICMP错误报文)的处理方式。缺省情况下,ICMP差错报文将打上原有的标签栈继续沿原来的LSP转发,直到该LSP的出口,出口LER将标签栈弹出后再根据内层的IP重新选路转发。通过配置ICMP差错报文处理方式可以改变这种缺省行为,指定被转发报文携带的标签数的数量不同而获得不同的处理。
l 当转发报文携带的标签数大于配置的标签数时,ICMP差错报文将沿原来标签栈所在的LSP继续转发。
l 当转发报文携带的标签数小于或等于配置的标签数时,ICMP差错报文将直接使用栈顶标签对应FEC所在的IP路由表进行选路转发。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 配置对中途转发MPLS报文时产生的ICMP差错报文的处理方式。
mpls ip icmp-error pop labels
缺省情况下,生成的ICMP差错报文打上原有的标签栈继续沿原来的LSP进行转发。
MPLS对报文的TTL处理有两种模式:TTL复制和TTL不复制。如果需要隐藏MPLS网络内部的拓扑,可以在LSP经过的每台LSR上关闭MPLS的TTL复制功能。
l 启用TTL复制功能,如果内层头部的TTL小于外层头部的TTL,那么将不会拷贝,而是保留内层头部的TTL不变。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 配置MPLS TTL复制功能。
mpls ip ttl propagate { public | vpn }
要实现MPLS的基本转发功能,可以通过配置静态LSP实现。配置静态LSP不需要LDP协议,因此不需要依赖IPv4路由。即便网络中没有任何IPv4路由,只要物理网络可达,配置的静态LSP即可生效。
入口LER对FEC建立FTN表项,即把FEC和标签进行绑定。中间LSR配置ILM转发表项,把入标签映射到出标签上,实现对进入的带标签报文进行标签转发。在倒数第二跳LSR执行PHP,因此倒数第二跳LSR的ILM表项与其它中间LSR有所不同,即倒数第二跳LSR ILM的出标签必须为隐式空标签3。
l 相邻两个LSR之间,上游LSR的出标签值和下游LSR的入标签值必须相同。
l LSP是一条单向路径,因此需要在数据传输的两个方向上,分别配置静态LSP。
l 配置出标签为3的静态FTN表项,必须配置相同前缀的IP路由才能生效。
l 配置目的地址和掩码都为0的FTN,要求在IP路由转发表中也存在对应默认路由才能生效。
l 建议倒数第二跳LSR将出标签配置为3,这样出口LER可以直接接收IP报文,否则出口LER还需要配置相应的静态ILM表项。
l 所有LSR配置MPLS转发。
l 开启全局和接口的MPLS转发。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 入口LER配置静态FTN。
mpls static ftn ipv4-address/mask-length out-label label nexthop interface-type interface-number nexthop-ipv4-address
入口LER必须配置FTN才能将IP流量导入LSP。
(4) 中间LSR配置静态ILM。请选择其中一项进行配置。
○ 配置应用于L2VPN的静态ILM表项。
mpls static ilm in-label in-label forward-action pop-l2vc-destport vc-id vc-peer-ipv4-address
○ 配置应用于L3VPN的静态ILM表项。
(IPv4网络)
mpls static ilm in-label in-label forward-action pop-l3vpn-nexthop vrf-name nexthop interface-type interface-number nexthop-ipv4-address fec ipv4-address/mask-length
(IPv6网络)
mpls static ilm in-label in-label forward-action pop-l3vpn-nexthop vrf-name nexthop interface-type interface-number nexthop-ipv6-address fec ipv6-address/prefix-length
○ 配置应用于公网的静态ILM表项。
(IPv4网络)
mpls static ilm in-label in-label forward-action swap-label swap-label nexthop interface-type interface-number nexthop-ipv4-address fec ipv4-address/mask-length
(IPv6网络)
mpls static ilm in-label in-label forward-action pop-l3vpn-nexthop vrf-name nexthop interface-type interface-number nexthop-ipv6-address fec ipv6-address/prefix-length
相邻LSR之间建立可以进行交换标签绑定的LDP会话。
LDP基本功能配置任务如下:
(1) REF _Ref50017071 \h \* MERGEFORMAT 配置全局开启LDP协议 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003000370031000000
(2) (可选) REF _Ref64645136 \h \* MERGEFORMAT 配置LDP Router ID 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360034003600340035003100330036000000
(3) REF _Ref56005953 \h \* MERGEFORMAT 开启接口的LDP 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350036003000300035003900350033000000
(4) (可选) REF _Ref62486303 \h \* MERGEFORMAT 配置传输地址 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600360032003400380036003300300033000000
(5) REF _Ref50017108 \h \* MERGEFORMAT 配置LDP的远端对等体 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100300038000000
(6) REF _Ref50017117 \h \* MERGEFORMAT 配置LDP接收目标Hello报文 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100310037000000 REF _Ref50017124 \h \* MERGEFORMAT
(7) 配置Hello报文间隔时间 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100320034000000
(8) (可选) REF _Ref50017148 \h \* MERGEFORMAT 配置Hello报文保活时间 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100340038000000
(9) (可选) REF _Ref50017154 \h \* MERGEFORMAT 配置Keepalive报文保活时间 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100350034000000
(10) (可选) REF _Ref56007511 \h \* MERGEFORMAT 配置最大PDU 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350036003000300037003500310031000000
(11) (可选) REF _Ref50017182 \h \* MERGEFORMAT 配置LDP MD5认证 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350030003000310037003100380032000000
l 会话两端的LSR都要全局开启LDP协议。
l LDP的实例数受限于本设备的VRF个数,每个VRF实例可以启动一个LDP实例。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 全局开启LDP协议并进入LDP配置模式。
mpls router ldp [ vrf-name ]
缺省情况下,LDP协议处于关闭状态。
如果不指定VRF,则默认开启/关闭的是全局VRF的LDP协议。
l 在实际应用中需要设定LDP的Router ID。如果没有设定LDP的Router ID,协议重启可能会出现Router ID发生变化的情况,会导致部分功能失效,例如用原Router ID配置的LDP MD5认证。
l 建议会话两端的LSR都配置Router ID,以保证LDP功能的稳定可靠。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP的Router ID。
ldp router-id { ipv4-address | interface interface-type interface-number [ force ] }
缺省情况下,采用系统的Router ID做为LDP的Router ID。
如果指定了force关键字则强制让新的Router ID立即生效,否则新的Router ID不会立即生效。
l 若建立本地LDP会话,必须在接口模式下开启接口LDP功能。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 开启接口的LDP功能。
mpls ip
缺省情况下,接口LDP功能处于关闭状态。
l 若建立本地LDP会话,可以在config-mpls-router配置模式下配置全局传输地址。如果个别邻居要求使用特定传输地址,可以在与邻居相邻的接口上配置指定的传输地址。
l 若建立远端LDP会话,无须配置传输地址。
l 使用接口主地址或是指定一个IP地址作为该接口上建立的LDP会话的传输地址,有如下两种配置方式:使用接口下的传输地址配置命令,也可以使用LDP配置模式下的命令全局配置所有LDP会话所使用的传输地址。
l 配置全局本地LDP会话使用的传输地址命令,对于LDP扩展发现机制建立的远端LDP会话不生效,只对使用LDP基本发现机制建立的本地LDP会话生效。远端LDP会话始终使用LDP的Router ID做为传输地址。
l 配置接口上的本地LDP会话使用的传输地址命令,对于LDP扩展发现机制建立的远端LDP会话不生效,只对使用LDP基本发现机制建立的本地LDP会话生效。配置该接口传输地址的命令对已经建立的本地LDP会话不生效,只对命令配置后新建立的本地LDP会话生效。如果既配置了接口的传输地址又配置了全局的传输地址,那么接口配置的传输地址优先生效。
对等体传输地址需要存在可达IP路由,可以在全局模式下配置静态路由或者通过OSPF等IGP协议建立路由。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置全局的本地LDP会话使用的传输地址。
transport-address { ipv4-address | interface-type interface-number | interface }
缺省情况下,使用LDP的Router ID做为LDP会话的传输地址。
(5) 退出config-mpls-router配置模式。
exit
(6) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(7) 配置接口上的本地LDP会话使用的传输地址。
mpls ldp transport-address { ipv4-address | interface }
缺省情况下,使用LDP的Router ID做为LDP会话的传输地址。
创建一个远端LDP对等体。
l 若建立远端LDP会话,必须在config-mpls-router模式下配置远端对等体。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP的远端对等体。
neighbor ipv4-address
缺省情况下,未配置LDP远端对等体。
l 两台设备建立远端对等体时,可以在一端配置neighbor,另一端开启LDP接收目标Hello报文功能。删除远端对等体时,也只需删除neighbor配置即可,可简化配置。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP接收目标Hello报文。
discovery targeted-hello accept [ from acl-name ]
缺省情况下,LDP只接收配置为远端对等体的设备发送的目标Hello报文。
只有符合ACL规则指定的邻居发送的目标Hello报文才被接收。
l 若建立本地LDP会话,则在接口配置模式下配置Hello报文间隔时间。
l 若建立远端LDP会话,则在config-mpls-router配置模式下配置Hello报文间隔时间。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 设置LDP链路Hello报文发送间隔时间。
mpls ldp hello-interval hello-interval
缺省情况下,LDP链路Hello报文的发送间隔为5秒。
(5) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(6) 设置LDP目标Hello报文发送间隔时间。
discovery targeted-hello interval targeted-hello-interval
缺省情况下,目标Hello报文的发送间隔为5秒。
l 若建立本地LDP会话,则在接口配置模式下配置Hello报文保活时间。
l 若建立远端LDP会话,则在config-mpls-router配置模式下配置Hello报文保活时间。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 设置链路Hello报文保活时间。
mpls ldp hello-holdtime hello-holdtime
缺省情况下,链路Hello报文的保活时间为15秒。
(5) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(6) 设置LDP目标Hello报文保活时间。
discovery targeted-hello holdtime targeted-hello-holdtime
缺省情况下,LDP目标Hello报文的保活时间为45秒。
l 若建立本地LDP会话,则在接口配置模式下配置Keepalive报文保活时间。
l 若建立远端LDP会话,则在config-mpls-router配置模式下配置Keepalive报文保活时间。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 在接口下配置本地LDP会话的Keepalive报文保活时间。
mpls ldp keepalive-holdtime keepalive-holdtime
缺省情况下,LDP协议在接口下Keepalive报文的保活时间为45秒,Keepalive报文的发送间隔为保活时间的1/3。
(5) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(6) 配置远端LDP会话Keepalive报文的保活时间。
targeted-session holdtime targeted-session-hold-time
缺省情况下,LDP采用扩展发现机制建立的远端LDP会话,其Keepalive报文的保活时间为180秒,Keepalive报文的发送间隔为保活时间的1/3。
LDP实体之间传递的各种消息都包含在PDU(Protocol Data Units,协议数据单元)中,通过配置本功能,可以指定LDP协议消息交互过程中每个消息允许的最大PDU长度。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 配置最大PDU长度。
mpls ldp max-pdu max-pdu
缺省情况下,LDP协议每个消息允许的最大PDU长度为4096字节。
为了提高会话连接的安全性,可以在会话两端的LSR上配置LDP-MD5认证。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置与对等体之间的TCP连接采用MD5认证。
neighbor ipv4-address password [ 0 | 7 ] password-string
缺省情况下,LDP的MD5认证功能处于关闭状态。
使用LDP协议为IPv4单播路由建立LSP。
l LDP需要借助网络中现有的单播路由。因此,网络中必须配置IP单播路由。
以下所有配置任务均为可选配置,请根据实际情况选择配置。LDP LSP配置任务如下:
(1) REF _Ref56009409 \h \* MERGEFORMAT 配置LDP环路检测 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350036003000300039003400300039000000
(2) REF _Ref59570986 \h \* MERGEFORMAT 开启标签释放消息传递开关 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370030003900380036000000
(3) REF _Ref56418028 \h \* MERGEFORMAT 配置LDP标签分发模式 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350036003400310038003000320038000000
(4) REF _Ref59571062 \h \* MERGEFORMAT 配置LDP标签分发控制模式 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370031003000360032000000
(5) REF _Ref59571182 \h \* MERGEFORMAT 配置LDP标签保留模式 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370031003100380032000000
(6) REF _Ref59571186 \h \* MERGEFORMAT 配置LDP标签分发策略 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370031003100380036000000
(7) REF _Ref59571192 \h \* MERGEFORMAT 配置LDP标签接收策略 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370031003100390032000000
(8) REF _Ref59571195 \h \* MERGEFORMAT 配置显式空标签分发策略 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600350039003500370031003100390035000000
当启用环路检测时,如果检测到LDP消息中的跳数大于设定的值,则认为出现了环路。
环路检测允许的路径向量最大值,即路径向量环路检测携带的路径列表中包含的LSR的最大数量。当启用环路检测时,如果LSR检测到路径向量列表中包含本端设备的LSR ID或路径向量列表中LSR ID的个数大于设定的值时,则认为出现了环路。
l 如果IP路由是通过静态配置的,而不是IGP协议动态生成,建议开启LSP上各LSR的环路检测功能,以防止错误配置引起的环路。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 开启环路检测。
loop-detection
缺省情况下,环路检测处于关闭状态。
(4) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(5) 配置环路检测最大跳数。
mpls ldp max-hop-count max-hop-count
缺省情况下,LDP在接口下环路检测允许的最大跳数为254。
(6) 配置LDP在接口下环路检测允许的最大路径向量值。
mpls ldp max-path-vector number
缺省情况下,LDP在接口下环路检测允许的最大路径向量值为254。
当某条FEC失效后,LDP会从上游节点向下游节点发送标签释放消息,用来撤消绑定到这条FEC上的标签。对标签释放消息传递方式的设置决定了LSP上每一个LDP实体收到上游发来的标签释放消息后是否需要向下游传递。
l 标签释放消息传递开关的开启,只影响开启之后LDP实例接收到的标签释放消息,而对开关开启之前LDP实例已经接收到的标签释放消息不影响。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 开启LDP实例的标签释放消息的传递开关。
propagate-release
缺省情况下,标签释放消息的传递开关处于关闭状态。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(4) 配置LDP标签分发模式。
mpls ldp distribution-mode { dod | du }
缺省情况下,LDP协议在每个接口上使用下游主动分发的模式。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP标签分发控制模式。
lsp-control-mode { independent | ordered }
缺省情况下,LDP控制模式为独立模式。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP标签保留模式。
label-retention-mode { conservative | liberal }
缺省情况下,标签保留模式为自由模式。
配置为IP路由FEC进行标签分发的策略。
l 可以使用advertise-labels for bgp-routes命令开启为BGP协议产生的路由分发标签。
l 缺省情况下,LDP为默认路由分发隐式空标签3,因此不会为默认路由建立LSP。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置标签分发策略。
advertise-labels [ for acl [ ipv6 ] prefix-access-list [ to peer-access-list ] | for bgp-routes [ acl [ ipv6 ] bgp-routes-acl-name ] | for default-route | for host-routes ]
缺省情况下,LDP只为IGP路由分发标签,不为BGP路由分发标签,同时也不为BGP路由添加FTN,为默认路由分发隐式空标签3。
l neighbor命令只对FEC为IP路由的标签映射消息有效,对其它类型的FEC类型无效,如PW(Pseudo Wire,伪线)的FEC。
l 使用neighbor命令配置入标签映射消息过滤规则后,只接收指定邻居发来的符合ACL过滤规则的FEC标签映射消息,其它不符合ACL过滤规则的FEC标签映射消息全部丢弃。但是对其它邻居发来的标签映射消息不会造成影响,仍然正常接收。
l 如果针对某个邻居配置了neighbor命令,但是没有指定ACL过滤规则,则该邻居发来的所有FEC标签映射消息都被丢弃。当使用no命令取消规则后,对于之前已经通过过滤规则过滤的标签映射消息不影响(即原来被丢弃的消息无法再获得),只影响后来接收到的标签映射消息。该情况下需要使用clear mpls ldp neighbor命令复位LDP会话才能正常工作。
l 针对每个邻居只能配置一个规则,新配置的规则将覆盖旧规则。
l 每个LDP实例最多可以为64个邻居配置过滤规则。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置标签接收策略。
neighbor ipv4-address labels accept [ ipv6 ] acl-name
缺省情况下,未配置过滤规则。
如果不带ipv6关键字,则只适用于IP标准ACL和IP扩展的ACL,其它ACL类型均不适用。如果带ipv6关键字,则只适用于IPv6扩展ACL,其它ACL类型均不适用。
l 只支持为全局LDP实例配置显式空标签分发策略,VPN实例下不支持配置该功能。
产品/版本支持情况
S79系列产品EA/EB系列线卡作为P节点并开启PHP时,下联的PE设备需要在MPLS LDP配置模式下配置IPv4显式空标签分发和IPv6显式空标签分发。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置对所有直连路由或指定满足ACL规则的路由分发显式空标签。
explicit-null [ for prefix-acl-name ] [ to peer-acl ]
缺省情况下,对直连路由分发隐式空标签。
利用LDP协议建立IPv6的LSP。开启LDP后,需要配置LDP IPv6的传输地址。支持两种配置方式:
l 所有LDP会话使用指定的IPv6全球单播地址作为传输地址。
l 所有LDP会话使用指定接口的主IPv6地址作为传输地址。
l 需要开启全局MPLS转发,并在IPv6 LSP经过的每个接口上都开启MPLS转发。
l 需要手动配置LDP IPv6传输地址,如果没有配置或者配置无效,则设备不会发送LDP IPv6 Hello报文。
l 如果所有LDP会话使用指定接口的主IPv6地址作为传输地址,则只有指定接口下存在IPv6全球单播地址时才会生效。
l 需要在IPv6 LSP经过的每台LSR上开启全局和接口LDP IPv6功能。
l 为了提高会话连接的安全性,可以在LDP IPv6会话两端的LSR上配置LDP-MD5认证。
l 要建立LDP扩展会话,必须在准备建立会话的两端LSR上,都配置对端作为本端的远端对等体;或者一端配置远端对等体,另一端配置discovery target-hello accept命令被动发现。
l 当确定所有邻居设备支持LDP IPv6功能时,可以开启忽略邻接协商。如果在部分邻居设备不支持LDP IPv6功能的情况下仍然开启忽略邻接协商,则对应的邻居设备可能收到LDP IPv6的标签映射消息导致处理出错,因此不建议开启忽略邻接协商功能。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 配置LDP。
mpls router ldp
缺省情况下,LDP协议处于关闭状态。
(4) 全局开启LDP IPv6。
ipv6 enable
缺省情况下,LDP IPv6功能处于关闭状态。
要开启LDP IPv6功能时,全局LDP IPv6必须开启,否则本端不会发送LDP IPv6 Hello报文。
(5) 配置LDP IPv6的传输地址。
ipv6 transport-address { interface-type interface-number | ipv6-address }
设备中接口上没有IPv4地址情况下,必须配置LDP Router ID。
(6) (可选)创建LDP IPv6远端对等体。
ipv6 neighbor ipv6-address
缺省情况下,未配置LDP IPv6远端对等体。
IPv6远端对等体建议指定为远端对等体的IPv6传输地址。
(7) (可选)配置忽略IPv6邻接协商。
ignore ipv6-adj negotiation [ to peer-access-list ]
(8) (可选)配置与LDP对等之间的TCP连接采用MD5认证。
ipv6 neighbor ipv6-address password [ 0 | 7 ] password-string
缺省情况下,LDP IPv6的MD5认证处于关闭状态。
(9) 进入接口配置模式。
○ 进入三层以太网接口配置模式。
interface ethernet-type interface-number
○ 进入三层聚合接口配置模式。
interface aggregateport interface-number
○ 进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
○ 进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
○ 进入SVI接口配置模式。
interface vlan interface-number
○ 进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
○ 进入虚拟PPP接口配置模式。
interface virtual-ppp interface-number
○ 进入虚拟模板接口配置模式。
interface virtual-template interface-number
(10) 接口上开启LDP IPv6。
mpls ipv6
缺省情况下,接口的LDP IPv6功能处于关闭状态。
不允许在绑定单协议VRF的接口上配置该命令。开启接口的LDP IPv6功能后还必须使用label-switching命令开启该接口的MPLS转发功能。
(11) 接口上开启MPLS标签报文转发。
label-switching
缺省情况下,接口转发MPLS标签报文的能力处于关闭状态。
要开启某个接口的MPLS报文转发,必须在该接口上配置label-switching命令。
对两台直连的LSR之间的LDP会话实施保护。
l 要让LDP会话保护功能正常工作,可以在会话两端的LSR上都启用LDP会话保护。
l 会话两端的LSR,如果只有一端支持LDP会话保护,可以在支持的LSR端开启LDP会话保护功能。在不支持的LSR端配置接收并回应目标Hello报文。可以通过neighbor ipv4-address命令指定远端对等体,或配置discovery targeted-hello accept命令接收并回应目标Hello报文。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 开启LDP会话保护功能。
session protection [ duration { duration-time | infinite } ] [ for acl acl-name ]
缺省情况下,LDP实例的会话保护功能处于关闭状态。
当一个自治域规划为多个IGP区域且在区域边界设备ABR开启对主机路由进行汇聚时,可以通过配置LDP域间LSP,为被汇聚的主机路由建立跨越多个IGP区域的标签交换路径。
l LDP域间LSP功能只在配置自由标签保留模式的情形下生效。
l LDP域间LSP功能不适用于DoD标签分发模式。
l 汇聚后的路由对应的LSP上的各LSR都需要开启域间LSP功能。
l 因为LDP域间LSP功能只对被汇聚的主机路由生效,所以如果通过ACL规则指定对被汇聚的非主机路由进行路由最长匹配扩展时,则该功能无效。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
(4) 配置LDP域间LSP功能。
inter-area-lsp [ for acl acl-name ]
缺省情况下,LDP域间LSP功能处于关闭状态。
在PE与PE之间的所有设备上开启LDP域间LSP功能。
将无法直达的IP路由迭代到LDP LSP中,使之可以通过LSP到达远端。
l 被迭代的LDP LSP的FEC地址只能是主机路由。
l 只需要在迭代节点LER上开启本功能,在LSR上不需要开启。
l 迭代的IP路由不限类型,包括但不限于静态路由、BGP路由等类型。
l 在全局配置模式下配置LDP。
l 在LSP经过的每台LSR的接口上开启LDP。
l 在LSP经过的每个接口上开启MPLS转发。
l (可选)配置一个远端对等体,用于建立LDP扩展会话。
(1) 进入特权模式。
enable
(2) 进入全局配置模式。
configure terminal
(3) 开启IP路由迭代到LDP LSP。
recursive-route to mpls
缺省情况下,IP路由递归引流到MPLS LDP LSP功能处于关闭状态。
在MPLS网络中,常用的LSP连通性检测工具主要有:MPLS Ping和MPLS Traceroute。MPLS Ping主要用于手工检测LSP的连通性。MPLS Traceroute主要用于跟踪入口LER到出口LER经过的LSR,它除了能够检测LSP的连通性,还能用于定位网络发生故障的具体位置。
l ping mpls和traceroute mpls命令都支持两种指定参数方式:
○ 直接输入一条带指定参数的完整命令。
○ 输入ping mpls或traceroute mpls后按回车进入交互式输入模式,再指定参数。
(1) 进入特权模式。
enable
(2) 检测MPLS LSP的连通性。
ping mpls ipv4 ipv4-address/mask-length [ destination destination-ipv4-address ] [ dsmap ] [ flags fec ] [ force-explicit-null ] [ interval interval ] [ pad pattern ] [ repeat repeat-count ] [ reply mode { ipv4 | router-alert } ] [ size size ] [ source source-ipv4-address ] [ timeout timeout ] [ ttl time-to-live ] [ verbose ]
(3) 跟踪LSP经过的MPLS节点。
traceroute mpls ipv4 ipv4-address/mask-length [ destination destination-ipv4-address ] [ flags fec ] [ force-explicit-null ] [ reply mode { ipv4 | router-alert } ] [ source source-ipv4-address ] [ timeout timeout ] [ ttl time-to-live ] [ verbose ]
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过执行clear命令来清除各类信息。
注意
在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
表1-2 MPLS基础监视与维护
作用 |
命令 |
查看MPLS全局配置信息 |
show mpls summary |
查看MPLS转发表信息 |
show mpls forwarding-table [ frr ] [ detail ] show mpls forwarding-table { ipv4-address/mask- length | ipv6-address/prefix-length } [ frr ] [ detail ] show mpls forwarding-table { ftn | ilm } [ ip | ipv6 | te | vc ] [ frr ] [ detail ] show mpls forwarding-table { global | vrf vrf-name } [ ftn | ilm ] [ frr ] [ detail ] show mpls forwarding-table interface interface-type interface-number [ frr ] [ detail ] show mpls forwarding-table label label [ frr ] [ detail ] show mpls forwarding-table next-hop { ipv4-address | ipv6-address } [ frr ] [ detail ] show mpls forwarding-table summary show mpls forwarding-table vfi [ vfi-name ] { mac-address-table [ H.H.H ] | statistics } |
查看指定标签空间的标签池使用情况 |
show mpls label-pool [ label-space ] |
查看LDP标签绑定信息 |
show mpls ldp bindings [ all | vrf vrf-name ] [ ipv4-address/mask-length | ipv6-address/prefix-length | ipv4 | ipv6 | label label ] [ local | remote ] |
查看所有或指定VRF的LDP邻居发现信息 |
show mpls ldp discovery [ all | vrf vrf-name ] [ detail ] |
查看开启LDP功能的接口信息 |
show mpls ldp interface [ all | vrf vrf-name | interface-type interface-number ] |
查看所有或指定VRF的LDP邻居信息 |
show mpls ldp neighbor [ all | vrf vrf-name ] [ ipv4-address ] [ detail ] |
查看所有或指定VRF的LDP参数信息 |
show mpls ldp parameters [ all | vrf vrf-name ] |
查看MPLS快转相关信息 |
show mpls ref ftn-ipv4 [ global | vrf vrf-name ] [ ipv4-address/mask-length ] [ detail ] show mpls ref ftn-ipv6 [ global | vrf vrf-name ] [ ipv6-address/prefix-length ] [ detail ] show mpls ref ilm [ in-label in-label [ detail ] | summary ] show mpls ref nhlfe [ nhlfe-id [ detail ] | summary ] show mpls ref summary show mpls ref te tun-encap [ tunnel tunnel-id ] |
查看MPLS RIB路由表信息 |
show mpls rib [ all | vrf vrf-name ] [ ipv6 ] |
查看MPLS全局配置信息 |
show mpls summary |
复位已经建立的LDP会话 |
clear mpls ldp neighbor [ all | vrf vrf-name ] { ipv4-address | * } |
开启MPLS表项内部处理的调试开关 |
debug mpls |
开启LDP标签绑定调试开关 |
debug mpls ldp binding |
开启LDP会话消息调试开关 |
debug mpls ldp message [ hello | keepalive ] [ received | sent ] |
开启ping mpls和traceroute mpls执行过程的调试开关 |
debug mpls lspv { all | error | event | packet | tlv } |
开启MPLS消息的调试开关 |
debug mpls msg [ send | recv ] |
开启MPLS快转(控制面或转发面)的调试开关 |
debug mpls ref [ control | packet ] |
在LER A、LSR B和LER C之间通过配置静态MPLS表项来建立LSP,使得VPN站点之间能够通过MPLS网络实现互访。其中LERA、LSR B和LER C都要求支持MPLS功能。
图1-14 建立静态LSP配置组网图
l 在各设备上配置接口IP地址和IPv4单播路由协议(如OSPF),实现各设备之间的路由可达。
l 开启全局MPLS转发和接口的标签转发功能。
l LER A和LER C配置静态FTN,LSR B配置静态ILM,建立LER A到LER C之间的双向静态LSP。其中LSR B ILM表项的出标签为隐式空标签3。
(1) 在各设备上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达。
# 设备LER A的配置。
LERA> enable
LERA# configure terminal
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# no switchport
LERA(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
LERA(config-if-GigabitEthernet 0/1)# exit
LERA(config)# router ospf 10
LERA(config-router)# network 192.168.1.0 0.0.0.255 area 0
LERA(config-router)# network 192.168.100.0 0.0.0.255 area 0
LERA(config-router)# exit
# 设备LSR B的配置。
LSRB> enable
LSRB# configure terminal
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# no switchport
LSRB(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# no switchport
LSRB(config-if-GigabitEthernet 0/2)# ip address 192.168.2.1 255.255.255.0
LSRB(config-if-GigabitEthernet 0/2)# exit
LSRB(config)# router ospf 10
LSRB(config-router)# network 192.168.1.0 0.0.0.255 area 0
LSRB(config-router)# network 192.168.2.0 0.0.0.255 area 0
LSRB(config-router)# exit
# 设备LER C的配置。
LERC> enable
LERC# configure terminal
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# no switchport
LERC(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
LERC(config-if-GigabitEthernet 0/1)# exit
LERC(config)# router ospf 10
LERC(config-router)# network 192.168.2.0 0.0.0.255 area 0
LERC(config-router)# network 192.168.200.0 0.0.0.255 area 0
LERC(config-router)# exit
(2) 开启全局MPLS转发和接口的标签转发功能。
# 设备LER A的配置。
LERA(config)# mpls ip
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# label-switching
LERA(config-if-GigabitEthernet 0/1)# exit
# 设备LSR B的配置。
LSRB(config)# mpls ip
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# label-switching
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# label-switching
LSRB(config-if-GigabitEthernet 0/2)# exit
# 设备LER C的配置。
LERC(config)# mpls ip
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# label-switching
LERC(config-if-GigabitEthernet 0/1)# exit
(3) LER A和LER C配置静态FTN,LSR B配置静态ILM,建立LER A到LER C之间的双向静态LSP。
# 设备LER A的配置。
LERA(config)# mpls static ftn 192.168.200.0/24 out-label 16 nexthop gigabitethernet 0/1 192.168.1.2
LERA(config)# exit
# 设备LSR B的配置。
LSRB(config)# mpls static ilm in-label 16 forward-action swap-label 3 nexthop gigabitethernet 0/2 192.168.2.2 fec 192.168.200.0/24
LSRB(config)# mpls static ilm in-label 17 forward-action swap-label 3 nexthop gigabitethernet 0/1 192.168.1.1 fec 192.168.100.0/24
LSRB(config)# exit
# 设备LER C的配置。
LERC(config)# mpls static ftn 192.168.100.0/24 out-label 17 nexthop gigabitethernet 0/1 192.168.2.1
LERC(config)# exit
上述配置完成后,在各设备上通过show mpls forwarding-table命令查看MPLS表项信息。
# 查看设备LER A的MPLS表项信息。
LERA# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- 16 PH 192.168.200.0/24 Gi0/1 192.168.1.2
# 查看设备LSR B的MPLS表项信息。
LSRB# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
16 imp-null PP 192.168.200.0/24 Gi0/2 192.168.2.2
17 imp-null PP 192.168.100.0/24 Gi0/1 192.168.1.1
# 查看设备LER C的MPLS表项信息。
LERC# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- 17 PH 192.168.100.0/24 Gi0/1 192.168.2.1
l LER A的配置文件
hostname LERA
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.1 255.255.255.0
label-switching
!
router ospf 10
network 192.168.1.0 0.0.0.255 area 0
network 192.168.100.0 0.0.0.255 area 0
!
mpls static ftn 192.168.200.0/24 out-label 16 nexthop GigabitEthernet 0/1 192.168.1.2
!
l LSR B的配置文件
hostname LSRB
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.2 255.255.255.0
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 192.168.2.1 255.255.255.0
label-switching
!
router ospf 10
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
mpls static ilm in-label 16 forward-action swap-label 3 nexthop GigabitEthernet 0/2 192.168.2.2 fec 192.168.200.0/24
mpls static ilm in-label 17 forward-action swap-label 3 nexthop GigabitEthernet 0/1 192.168.1.1 fec 192.168.100.0/24
!
l LER C的配置文件
hostname LERC
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.2.2 255.255.255.0
label-switching
!
router ospf 10
network 192.168.2.0 0.0.0.255 area 0
network 192.168.200.0 0.0.0.255 area 0
!
mpls static ftn 192.168.100.0/24 out-label 17 nexthop GigabitEthernet 0/1 192.168.2.1
!
l 未开启全局MPLS转发。
l 未开启接口MPLS转发。
在LER A、LSR B和LER C之间通过配置本地LDP会话建立LDP LSP,使得VPN站点之间能够通过MPLS网络实现互访。其中LER A、LSR B和LER C都要求支持MPLS功能。
图1-15 建立LDP LSP配置组网图
l 在各设备上配置接口IP地址和IPv4单播路由协议(如OSPF),实现各设备之间的路由可达。
l 开启全局MPLS转发。
l 配置LDP协议和LDP Router ID。
l 开启接口的LDP功能和标签转发能力。
(1) 在各设备上配置接口IP地址和OSPF路由协议,实现设备之间的路由可达。
# 设备LER A的配置。
LERA> enable
LERA# configure terminal
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# no switchport
LERA(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
LERA(config-if-GigabitEthernet 0/1)# exit
LERA(config)# interface loopback 0
LERA(config-if-Loopback 0)# ip address 192.168.0.1 255.255.255.255
LERA(config-if-Loopback 0)# exit
LERA(config)# router ospf 10
LERA(config-router)# network 192.168.1.0 0.0.0.255 area 0
LERA(config-router)# network 192.168.0.1 0.0.0.0 area 0
LERA(config-router)# network 192.168.100.0 0.0.0.255 area 0
LERA(config-router)# exit
# 设备LSR B的配置。
LSRB> enable
LSRB# configure terminal
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# no switchport
LSRB(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# no switchport
LSRB(config-if-GigabitEthernet 0/2)# ip address 192.168.2.1 255.255.255.0
LSRB(config-if-GigabitEthernet 0/2)# exit
LSRB(config)# interface loopback 0
LSRB(config-if-Loopback 0)# ip address 192.168.0.2 255.255.255.255
LSRB(config-if-Loopback 0)# exit
LSRB(config)# router ospf 10
LSRB(config-router)# network 192.168.1.0 0.0.0.255 area 0
LSRB(config-router)# network 192.168.2.0 0.0.0.255 area 0
LSRB(config-router)# network 192.168.0.2 0.0.0.0 area 0
LSRB(config-router)# exit
# 设备LER C的配置。
LERC> enable
LERC# configure terminal
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# no switchport
LERC(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
LERC(config-if-GigabitEthernet 0/1)# exit
LERC(config)# interface loopback 0
LERC(config-if-Loopback 0)# ip address 192.168.0.3 255.255.255.255
LERC(config-if-Loopback 0)# exit
LERC(config)# router ospf 10
LERC(config-router)# network 192.168.2.0 0.0.0.255 area 0
LERC(config-router)# network 192.168.0.3 0.0.0.0 area 0
LERC(config-router)# network 192.168.200.0 0.0.0.255 area 0
LERC(config-router)# exit
(2) 开启全局MPLS转发。以LER A为例,LSR B和LER C的配置与LER A类似,不再赘述。
LERA(config)# mpls ip
(3) 配置LDP协议和LDP Router ID。以LER A为例,LSR B和LER C的配置与LER A类似,不再赘述。
LERA(config)# mpls router ldp
LERA(config-mpls-router)# ldp router-id interface loopback 0 force
LERA(config-mpls-router)# exit
(4) 开启接口的LDP功能和标签转发能力。
# 设备LER A的配置。
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# mpls ip
LERA(config-if-GigabitEthernet 0/1)# label-switching
LERA(config-if-GigabitEthernet 0/1)# end
# 设备LSR B的配置。
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# mpls ip
LSRB(config-if-GigabitEthernet 0/1)# label-switching
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# mpls ip
LSRB(config-if-GigabitEthernet 0/2)# label-switching
LSRB(config-if-GigabitEthernet 0/2)# end
# 设备LER C的配置。
LERC (config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# mpls ip
LERC(config-if-GigabitEthernet 0/1)# label-switching
LERC(config-if-GigabitEthernet 0/1)# end
(1) 配置完成后,通过show mpls ldp neighbor命令查看LER A、LSR B和LER C之间的LDP会话状态为“OPERATIONAL”。
# 在设备LER A上查看LDP会话信息。
LERA# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.2:0; Local LDP Ident: 192.168.0.1:0
TCP connection: 192.168.0.2.45063 - 192.168.0.1.646
State: OPERATIONAL; Msgs sent/recv: 606/606; UNSOLICITED
Up time: 02:28:09
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/1, Src IP addr: 192.168.1.2
Addresses bound to peer LDP Ident:
192.168.1.2 192.168.2.1 192.168.0.2
# 在设备LSR B上查看LDP会话信息。
LSRB# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.1:0; Local LDP Ident: 192.168.0.2:0
TCP connection: 192.168.0.1.646 - 192.168.0.2.45063
State: OPERATIONAL; Msgs sent/recv: 650/653; UNSOLICITED
Up time: 02:39:26
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/1, Src IP addr: 192.168.1.1
Addresses bound to peer LDP Ident:
192.168.0.1 192.168.1.1
Peer LDP Ident: 192.168.0.3:0; Local LDP Ident: 192.168.0.2:0
TCP connection: 192.168.0.3.41299 - 192.168.0.2.646
State: OPERATIONAL; Msgs sent/recv: 335/336; UNSOLICITED
Up time: 01:21:20
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/2, Src IP addr: 192.168.2.2
Addresses bound to peer LDP Ident:
192.168.2.2 192.168.0.3 192.168.200.1
# 在设备LER C上查看LDP会话信息。
LERC# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.2:0; Local LDP Ident: 192.168.0.3:0
TCP connection: 192.168.0.2.646 - 192.168.0.3.41299
State: OPERATIONAL; Msgs sent/recv: 344/345; UNSOLICITED
Up time: 01:23:33
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/1, Src IP addr: 192.168.2.1
Addresses bound to peer LDP Ident:
192.168.1.2 192.168.2.1 192.168.0.2
(2) 通过show mpls forwarding-table命令查看LER A、LSR B和LER C的MPLS转发表项信息,验证LDP LSP正常建立。
# 在设备LER A上查看MPLS转发表项。
LERA# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- imp-null PH 192.168.0.2/32 Gi0/1 192.168.1.2
-- 11265 PH 192.168.0.3/32 Gi0/1 192.168.1.2
-- imp-null PH 192.168.2.0/24 Gi0/1 192.168.1.2
11265 imp-null PP 192.168.0.2/32 Gi0/1 192.168.1.2
11266 11265 SW 192.168.0.3/32 Gi0/1 192.168.1.2
11267 imp-null PP 192.168.2.0/24 Gi0/1 192.168.1.2
# 在设备LSR B上查看MPLS转发表项。
LSRB# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- imp-null PH 192.168.0.1/32 Gi0/1 192.168.1.1
-- imp-null PH 192.168.0.3/32 Gi0/2 192.168.2.2
11265 imp-null PP 192.168.0.3/32 Gi0/2 192.168.2.2
11267 imp-null PP 192.168.0.1/32 Gi0/1 192.168.1.1
# 在设备LER C上查看MPLS转发表项。
LERC# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- 11267 PH 192.168.0.1/32 Gi0/1 192.168.2.1
-- imp-null PH 192.168.0.2/32 Gi0/1 192.168.2.1
-- imp-null PH 192.168.1.0/24 Gi0/1 192.168.2.1
11265 11267 SW 192.168.0.1/32 Gi0/1 192.168.2.1
11266 imp-null PP 192.168.0.2/32 Gi0/1 192.168.2.1
11267 imp-null PP 192.168.1.0/24 Gi0/1 192.168.2.1
l LER A的配置文件
hostname LERA
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.1 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 192.168.0.1 255.255.255.255
!
router ospf 10
network 192.168.0.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.100.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
!
l LSR B的配置文件
hostname LSRB
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.2 255.255.255.0
mpls ip
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 192.168.2.1 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 192.168.0.2 255.255.255.255
!
router ospf 10
network 192.168.0.2 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
!
l LER C的配置文件
hostname LERC
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.2.2 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 192.168.0.3 255.255.255.255
!
router ospf 10
network 192.168.0.3 0.0.0.0 area 0
network 192.168.2.0 0.0.0.255 area 0
network 192.168.200.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
!
l IPv4单播路由配置错误。
l 未开启全局MPLS转发。
l 未配置LDP协议。
l 接口未开启LDP功能。
l 接口未开启标签转发能力。
建立LDP远端会话。
图1-16 建立LDP远端会话配置组网图
l 在设备上配置IPv4单播路由协议(如OSPF),且Loopback接口单播路由可达。
l 开启全局MPLS转发和LDP协议,配置LDP Router ID。
l 配置远端对等体。
(1) 配置各节点接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备LER A的配置。
LERA> enable
LERA# configure terminal
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# no switchport
LERA(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
LERA(config-if-GigabitEthernet 0/1)# exit
LERA(config)# interface loopback 0
LERA(config-if-Loopback 0)# ip address 192.168.0.1 255.255.255.255
LERA(config-if-Loopback 0)# exit
LERA(config)# router ospf 10
LERA(config-router)# network 192.168.1.0 0.0.0.255 area 0
LERA(config-router)# network 192.168.0.1 0.0.0.0 area 0
LERA(config-router)# network 192.168.100.0 0.0.0.255 area 0
LERA(config-router)# exit
# 设备LSR B的配置。
LSRB> enable
LSRB# configure terminal
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# no switchport
LSRB(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# no switchport
LSRB(config-if-GigabitEthernet 0/2)# ip address 192.168.2.1 255.255.255.0
LSRB(config-if-GigabitEthernet 0/2)# exit
LSRB(config)# interface loopback 0
LSRB(config-if-Loopback 0)# ip address 192.168.0.2 255.255.255.255
LSRB(config-if-Loopback 0)# exit
LSRB(config)# router ospf 10
LSRB(config-router)# network 192.168.1.0 0.0.0.255 area 0
LSRB(config-router)# network 192.168.0.2 0.0.0.0 area 0
LSRB(config-router)# network 192.168.2.0 0.0.0.255 area 0
LSRB(config-router)# exit
# 设备LER C的配置。
LERC> enable
LERC# configure terminal
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# no switchport
LERC(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
LERC(config-if-GigabitEthernet 0/1)# exit
LERC(config)# interface loopback 0
LERC(config-if-Loopback 0)# ip address 192.168.0.3 255.255.255.255
LERC(config-if-Loopback 0)# exit
LERC(config)# router ospf 10
LERC(config-router)# network 192.168.2.0 0.0.0.255 area 0
LERC(config-router)# network 192.168.0.3 0.0.0.0 area 0
LERC(config-router)# network 192.168.200.0 0.0.0.255 area 0
LERC(config-router)# exit
(2) 开启全局MPLS转发和LDP协议,并配置LDP Router ID。以LER A为例,LER C的配置与LER A类似,不再赘述。
# 设备LER A的配置。
LERA(config)# mpls ip
LERA(config)# mpls router ldp
LERA(config-mpls-router)# ldp router-id interface loopback 0 force
(3) 配置远端对等体。
# 设备LER A的配置。
LERA(config-mpls-router)# neighbor 192.168.0.3
LERA(config-mpls-router)# end
# 设备LER C的配置。
LERC(config-mpls-router)# neighbor 192.168.0.1
LERC(config-mpls-router)# end
# 通过show mpls ldp neighbor命令查看LER A和LER C之间是否建立LDP会话。
# 设备LER A上查看是否与LER C建立LDP会话。
LERA# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.3:0; Local LDP Ident: 192.168.0.1:0
TCP connection: 192.168.0.3.36809 - 192.168.0.1.646
State: OPERATIONAL; Msgs sent/recv: 15/16; UNSOLICITED
Up time: 00:10:52
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Targeted Hello 192.168.0.1 -> 192.168.0.3, active, passive;
Addresses bound to peer LDP Ident:
192.168.2.2 192.168.0.3
# 设备LER C上查看是否与LER A建立LDP会话。
LERC# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.1:0; Local LDP Ident: 192.168.0.3:0
TCP connection: 192.168.0.1.646 - 192.168.0.3.36809
State: OPERATIONAL; Msgs sent/recv: 17/18; UNSOLICITED
Up time: 00:12:02
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Targeted Hello 192.168.0.3 -> 192.168.0.1, active, passive;
Addresses bound to peer LDP Ident:
192.168.1.1 192.168.0.1
l LER A的配置文件
hostname LERA
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.1.1 255.255.255.0
!
interface Loopback 0
ip address 192.168.0.1 255.255.255.255
!
router ospf 10
network 192.168.0.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.100.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 192.168.0.3
!
l LSR B的配置文件
hostname LSRB
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.1.2 255.255.255.0
!
interface GigabitEthernet 0/2
no switchport
ip address 192.168.2.1 255.255.255.0
!
interface Loopback 0
ip address 192.168.0.2 255.255.255.255
!
router ospf 10
network 192.168.0.2 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
l LER C的配置文件
hostname LERC
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.2.2 255.255.255.0
!
interface Loopback 0
ip address 192.168.0.3 255.255.255.255
!
router ospf 10
network 192.168.0.3 0.0.0.0 area 0
network 192.168.2.0 0.0.0.255 area 0
network 192.168.200.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 192.168.0.1
!
l IPv4单播路由配置错误。
l 未开启全局MPLS转发。
l 未配置LDP协议。
l 未配置远端对等体。
对Device A和Device B之间的LDP会话实施保护时,在Device A和Device B上开启LDP会话保护功能。
图1-17 LDP会话保护配置组网图
l 在各设备上配置接口IP地址和OSPF协议,实现各设备之间的路由可达。
l 开启全局和接口MPLS转发能力,并配置LDP协议,建立LDP LSP。
l 在Device A和Device B上开启LDP会话保护功能。
(1) 在各设备上配置接口IP地址和OSPF协议,实现各设备之间的路由可达。
# 设备Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# interface loopback 0
Device A(config-if-Loopback 0)# ip address 10.10.10.10 255.255.255.255
Device A(config-if-Loopback 0)# exit
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# no switchport
Device A(config-if-GigabitEthernet 0/1)# ip address 1.1.10.1 255.255.255.0
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# no switchport
Device A(config-if-GigabitEthernet 0/2)# ip address 1.1.11.1 255.255.255.0
Device A(config-if-GigabitEthernet 0/2)# exit
Device A(config)# router ospf 1
Device A(config-router)# network 1.1.10.0 0.0.0.255 area 0
Device A(config-router)# network 1.1.11.0 0.0.0.255 area 0
Device A(config-router)# network 10.10.10.10 0.0.0.0 area 0
Device A(config-router)# exit
# 设备Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# interface loopback 0
Device B(config-if-Loopback 0)# ip address 20.20.20.20 255.255.255.255
Device B(config-if-Loopback 0)# exit
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# no switchport
Device B(config-if-GigabitEthernet 0/1)# ip address 1.1.10.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# no switchport
Device B(config-if-GigabitEthernet 0/2)# ip address 1.1.12.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/2)# exit
Device B(config)# router ospf 1
Device B(config-router)# network 1.1.10.0 0.0.0.255 area 0
Device B(config-router)# network 1.1.12.0 0.0.0.255 area 0
Device B(config-router)# network 20.20.20.20 0.0.0.0 area 0
Device B(config-router)# exit
# 设备Device C的配置。
Device C> enable
Device C# configure terminal
Device C(config)# interface loopback 0
Device C(config-if-Loopback 0)# ip address 30.30.30.30 255.255.255.255
Device C(config-if-Loopback 0)# exit
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# no switchport
Device C(config-if-GigabitEthernet 0/1)# ip address 1.1.11.2 255.255.255.0
Device C(config-if-GigabitEthernet 0/1)# exit
Device C(config)# interface gigabitethernet 0/2
Device C(config-if-GigabitEthernet 0/2)# no switchport
Device C(config-if-GigabitEthernet 0/2)# ip address 1.1.12.1 255.255.255.0
Device C(config-if-GigabitEthernet 0/2)# exit
Device C(config)# router ospf 1
Device C(config-router)# network 1.1.11.0 0.0.0.255 area 0
Device C(config-router)# network 1.1.12.0 0.0.0.255 area 0
Device C(config-router)# network 30.30.30.30 0.0.0.0 area 0
Device C(config-router)# exit
(2) 开启全局和接口MPLS转发能力,并配置LDP协议,建立LDP LSP。
# 设备Device A的配置。
Device A(config)# mpls ip
Device A(config)# mpls router ldp
Device A(config-mpls-router)# ldp router-id interface loopback 0 force
Device A(config-mpls-router)# exit
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# mpls ip
Device A(config-if-GigabitEthernet 0/1)# label-switching
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# mpls ip
Device A(config-if-GigabitEthernet 0/2)# label-switching
Device A(config-if-GigabitEthernet 0/2)# exit
# 设备Device B的配置。
Device B(config)# mpls ip
Device B(config)# mpls router ldp
Device B(config-mpls-router)# ldp router-id interface loopback 0 force
Device B(config-mpls-router)# exit
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# mpls ip
Device B(config-if-GigabitEthernet 0/1)# label-switching
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# mpls ip
Device B(config-if-GigabitEthernet 0/2)# label-switching
Device B(config-if-GigabitEthernet 0/2)# exit
# 设备Device C的配置。
Device C(config)# mpls ip
Device C(config)# mpls router ldp
Device C(config-mpls-router)# ldp router-id interface loopback 0 force
Device C(config-mpls-router)# exit
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# mpls ip
Device C(config-if-GigabitEthernet 0/1)# label-switching
Device C(config-if-GigabitEthernet 0/1)# exit
Device C(config)# interface gigabitethernet 0/2
Device C(config-if-GigabitEthernet 0/2)# mpls ip
Device C(config-if-GigabitEthernet 0/2)# label-switching
(3) 在Device A和Device B上开启LDP会话保护功能。以Device A为例,Device B的配置与Device A类似,不再赘述。
# 设备Device A的配置。
Device A(config)# mpls router ldp
Device A(config-router)# session protection
Device A(config-router)# session protection duration 300
# 配置完成后,使用show mpls ldp neighbor detail命令查看是否开启LDP会话保护功能。以设备Device A为例说明。
Device A# show mpls ldp neighbor detail
Default VRF:
Peer LDP Ident: 20.20.20.20:0; Local LDP Ident: 10.10.10.10:0
TCP connection: 20.20.20.20.41475 - 10.10.10.10.646
State: OPERATIONAL; Msgs sent/recv: 17/30; UNSOLICITED
Up time: 00:02:03
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/1, Src IP addr: 1.1.10.2
Hold time: 15 sec, hello interval: 5 sec
Targeted Hello 10.10.10.10 -> 20.20.20.20, active, passive;
Hold time: 45 sec, hello interval: 5 sec
Addresses bound to peer LDP Ident:
1.1.10.2 1.1.12.2 20.20.20.20
Our is PASSIVE
KA hold time: 45 sec; Proposed local/peer: 45/45 sec
Peer distribute label mode: UNSOLICITED
Peer loop detection: Disabled
Peer Path Vector Limit: 0; Max PDU Length: 4096
LDP Session Protection enabled, state: Ready
duration: 300 seconds
Peer LDP Ident: 30.30.30.30:0; Local LDP Ident: 10.10.10.10:0
TCP connection: 30.30.30.30.40691 - 10.10.10.10.646
State: OPERATIONAL; Msgs sent/recv: 16/32; UNSOLICITED
Up time: 00:01:52
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/8, Src IP addr: 1.1.11.2
Hold time: 15 sec, hello interval: 5 sec
Addresses bound to peer LDP Ident:
1.1.12.1 1.1.11.2 30.30.30.30
Our is PASSIVE
KA hold time: 45 sec; Proposed local/peer: 45/45 sec
Peer distribute label mode: UNSOLICITED
Peer loop detection: Disabled
Peer Path Vector Limit: 0; Max PDU Length: 4096
LDP Session Protection enabled, state: Incomplete
duration: 300 seconds
l Device A的配置文件
hostname Device A
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 1.1.10.1 255.255.255.0
mpls ip
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 1.1.11.1 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 10.10.10.10 255.255.255.255
!
router ospf 1
network 1.1.10.0 0.0.0.255 area 0
network 1.1.11.0 0.0.0.255 area 0
network 10.10.10.10 0.0.0.0 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
session protection duration 300
session protection
!
l Device B的配置文件
hostname Device B
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 1.1.10.2 255.255.255.0
mpls ip
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 1.1.12.2 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 20.20.20.20 255.255.255.255
!
router ospf 1
network 1.1.10.0 0.0.0.255 area 0
network 1.1.12.0 0.0.0.255 area 0
network 20.20.20.20 0.0.0.0 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
session protection duration 300
session protection
!
l Device C的配置文件
hostname Device C
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 1.1.11.2 255.255.255.0
mpls ip
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 1.1.12.1 255.255.255.0
mpls ip
label-switching
!
interface loopback 0
ip address 30.30.30.30 255.255.255.255
!
router ospf 1
network 1.1.11.0 0.0.0.255 area 0
network 1.1.12.0 0.0.0.255 area 0
network 30.30.30.30 0.0.0.0 area 0
!
mpls router ldp
ldp router-id interface loopback 0 force
!
建立PE1和PE2间的LSP(跨越不同区域的LSP),配置开启LDP域间LSP(OSPF组网)。
图1-18 LDP域间LSP(OSPF)配置组网图
l 在各节点配置接口IP地址和OSPF协议,实现各节点之间的互通。
l 开启全局和接口MPLS转发能力,并配置LDP协议,使网络能够转发MPLS流量。
l 在PE上配置VPN路由实例和MP-IBGP邻居,并配置传递VPN路由信息。
l 在区域边界设备ABR上配置公告聚合路由。
l 在各节点配置开启LDP域间LSP功能。
(1) 配置各节点接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface loopback 0
PE1(config-if-Loopback 0)# ip address 8.8.8.8 255.255.255.255
PE1(config-if-Loopback 0)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-GigabitEthernet 0/2)# ip address 1.1.1.2 255.255.255.0
PE1(config-if-GigabitEthernet 0/2)# exit
PE1(config)# router ospf 1
PE1(config-router)# network 1.1.1.0 0.0.0.255 area 1
PE1(config-router)# network 8.8.8.8 0.0.0.0 area 1
PE1(config-router)# exit
# 设备ABR1的配置。
ABR1> enable
ABR1# configure terminal
ABR1(config)# interface loopback 0
ABR1(config-if-Loopback 0)# ip address 10.10.10.10 255.255.255.255
ABR1(config-if-Loopback 0)# exit
ABR1(config)# interface gigabitethernet 0/1
ABR1(config-if-GigabitEthernet 0/1)# ip address 1.1.1.1 255.255.255.0
ABR1(config-if-GigabitEthernet 0/1)# exit
ABR1(config)# interface gigabitethernet 0/2
ABR1(config-if-GigabitEthernet 0/2)# ip address 1.1.2.2 255.255.255.0
ABR1(config-if-GigabitEthernet 0/2)# exit
ABR1(config)# router ospf 1
ABR1(config-router)# network 1.1.1.0 0.0.0.255 area 1
ABR1(config-router)# network 1.1.2.0 0.0.0.255 area 0
ABR1(config-router)# network 10.10.10.10 0.0.0.0 area 1
ABR1(config-router)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# interface loopback 0
P1(config-if-Loopback 0)# ip address 20.20.20.20 255.255.255.255
P1(config-if-Loopback 0)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-GigabitEthernet 0/1)# ip address 1.1.2.1 255.255.255.0
P1(config-if-GigabitEthernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-GigabitEthernet 0/2)# ip address 1.1.3.2 255.255.255.0
P1(config-if-GigabitEthernet 0/2)# exit
P1(config)# router ospf 1
P1(config-router)# network 1.1.2.0 0.0.0.255 area 0
P1(config-router)# network 1.1.3.0 0.0.0.255 area 0
P1(config-router)# network 20.20.20.20 0.0.0.0 area 0
P1(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface loopback 0
PE2(config-if-Loopback 0)# ip address 9.9.9.9 255.255.255.255
PE2(config-if-Loopback 0)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-GigabitEthernet 0/2)# ip address 1.1.4.1 255.255.255.0
PE2(config-if-GigabitEthernet 0/2)# exit
PE2(config)# router ospf 1
PE2(config-router)# network 1.1.4.0 0.0.0.255 area 2
PE2(config-router)# network 9.9.9.9 0.0.0.0 area 2
PE2(config-router)# exit
# 设备ABR2的配置。
ABR2> enable
ABR2# configure terminal
ABR2(config)# interface loopback 0
ABR2(config-if-Loopback 0)# ip address 30.30.30.30 255.255.255.255
ABR2(config-if-Loopback 0)# exit
ABR2(config)# interface gigabitethernet 0/1
ABR2(config-if-GigabitEthernet 0/1)# ip address 1.1.3.1 255.255.255.0
ABR2(config-if-GigabitEthernet 0/1)# exit
ABR2(config)# interface gigabitethernet 0/2
ABR2(config-if-GigabitEthernet 0/2)# ip address 1.1.4.2 255.255.255.0
ABR2(config-if-GigabitEthernet 0/2)# exit
ABR2(config)# router ospf 1
ABR2(config-router)# network 1.1.3.0 0.0.0.255 area 0
ABR2(config-router)# network 1.1.4.0 0.0.0.255 area 2
ABR2(config-router)# network 30.30.30.30 0.0.0.0 area 2
ABR2(config-router)# exit
(2) 全局开启MPLS转发,并配置LDP协议及LDP Router ID。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-GigabitEthernet 0/2)# mpls ip
PE1(config-if-GigabitEthernet 0/2)# label-switching
PE1(config-if-GigabitEthernet 0/2)# exit
# 设备ABR1的配置。
ABR1(config)# mpls ip
ABR1(config)# mpls router ldp
ABR1(config-mpls-router)# ldp router-id interface loopback 0 force
ABR1(config-mpls-router)# exit
ABR1(config)# interface gigabitethernet 0/1
ABR1(config-if-GigabitEthernet 0/1)# mpls ip
ABR1(config-if-GigabitEthernet 0/1)# label-switching
ABR1(config-if-GigabitEthernet 0/1)# exit
ABR1(config)# interface gigabitethernet 0/2
ABR1(config-if-GigabitEthernet 0/2)# mpls ip
ABR1(config-if-GigabitEthernet 0/2)# label-switching
ABR1(config-if-GigabitEthernet 0/2)# exit
# 设备P1的配置。
P1(config)# mpls ip
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp router-id interface loopback 0 force
P1(config-mpls-router)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-GigabitEthernet 0/1)# mpls ip
P1(config-if-GigabitEthernet 0/1)# label-switching
P1(config-if-GigabitEthernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-GigabitEthernet 0/2)# mpls ip
P1(config-if-GigabitEthernet 0/2)# label-switching
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-GigabitEthernet 0/2)# mpls ip
PE2(config-if-GigabitEthernet 0/2)# label-switching
PE2(config-if-GigabitEthernet 0/2)# exit
# 设备ABR2的配置。
ABR2(config)# mpls ip
ABR2(config)# mpls router ldp
ABR2(config-mpls-router)# ldp router-id interface loopback 0 force
ABR2(config-mpls-router)# exit
ABR2(config)# interface gigabitethernet 0/1
ABR2(config-if-GigabitEthernet 0/1)# mpls ip
ABR2(config-if-GigabitEthernet 0/1)# label-switching
ABR2(config-if-GigabitEthernet 0/1)# exit
ABR2(config)# interface gigabitethernet 0/2
ABR2(config-if-GigabitEthernet 0/2)# mpls ip
ABR2(config-if-GigabitEthernet 0/2)# label-switching
ABR2(config-if-GigabitEthernet 0/2)# exit
(3) 在PE1和PE2上配置VPN路由实例和MP-IBGP邻居,并配置传递VPN路由信息。
# 设备PE1的配置。
PE1(config)# ip vrf vpn1
PE1(config-vrf)# rd 65001:20
PE1(config-vrf)# route-target both 65001:20
PE1(config-vrf)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding vpn1
PE1(config-if-GigabitEthernet 0/1)# ip address 2.1.1.1 255.255.255.0
PE1(config)# router bgp 65001
PE1(config-router)# neighbor 9.9.9.9 remote-as 65001
PE1(config-router)# neighbor 9.9.9.9 update-source Loopback 0
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 9.9.9.9 activate
PE1(config-router-af)# neighbor 9.9.9.9 send-community both
PE1(config-router-af)# exit
PE1(config-router)# address-family ipv4 vrf vpn1
PE1(config-router-af)# redistribute connected
PE1(config-router-af)# exit
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# ip vrf vpn1
PE2(config-vrf)# rd 65001:20
PE2(config-vrf)# route-target both 65001:20
PE2(config-vrf)# exit
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-GigabitEthernet 0/1)# ip vrf forwarding vpn1
PE2(config-if-GigabitEthernet 0/1)# ip address 2.1.2.1 255.255.255.0
PE2(config)# router bgp 65001
PE2(config-router)# neighbor 8.8.8.8 remote-as 65001
PE2(config-router)# neighbor 8.8.8.8 update-source Loopback 0
PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 8.8.8.8 activate
PE2(config-router-af)# neighbor 8.8.8.8 send-community both
PE2(config-router-af)# exit
PE2(config-router)# address-family ipv4 vrf vpn1
PE2(config-router-af)# redistribute connected
PE2(config-router-af)# exit
PE2(config-router)# exit
(4) 在区域边界设备ABR上配置公告聚合路由。
# 设备ABR1的配置。
ABR1(config)# router ospf 1
ABR1(config-router)# area 1 range 8.0.0.0 255.0.0.0
# 设备ABR2的配置。
ABR2(config)# router ospf 1
ABR2(config-router)# area 2 range 9.0.0.0 255.0.0.0
(5) 在PE1和PE2上配置LDP域间LSP功能。
# 设备PE1的配置。
PE1(config)# mpls router ldp
PE1(config-router)# inter-area-lsp
PE1(config-router)# end
# 设备PE2的配置。
PE2(config)# mpls router ldp
PE2(config-router)# inter-area-lsp
PE2(config-router)# end
# 通过show mpls ldp parameters命令查看LDP域间LSP功能是否开启,show mpls ldp bindings命令查看是否最长匹配路由原则添加的LDP表项。以PE1为例。
PE1# show mpls ldp parameters
Default VRF:
Protocol version: 1
Ldp Router ID: 8.8.8.8
Control Mode: INDEPENDENT
Propogate Release: FALSE
Label Merge: TRUE
Label Retention Mode: LIBERAL
Loop Detection Mode: off
Inter Area Lsp: TRUE
Session Protection: FALSE
Targeted Session Keepalive HoldTime/Interval: 180/60 sec
Targeted Hello HoldTime/Interval: 90/10 sec
PE1# show mpls ldp bindings
Default VRF:
lib entry: 10.10.10.10/32
local binding: to lsr: 10.10.10.10:0, label: 1027
local binding: to lsr: 30.30.30.30:0, label: 1027
remote binding: from lsr: 10.10.10.10:0, label: imp-null
remote binding: from lsr: 30.30.30.30:0, label: 1030 (not in FIB)
lib entry: 9.9.9.9/32, (IA)
local binding: to lsr: 10.10.10.10:0, label: 1028
local binding: to lsr: 30.30.30.30:0, label: 1028
remote binding: from lsr: 10.20.10.10:0, label: 1027 (not in FIB)
remote binding: from lsr: 30.30.30.30:0, label: 1031
l PE1的配置文件。
hostname PE1
!
ip vrf vpn1
rd 65001:20
route-target both 65001:20
!
mpls ip
!
interface GigabitEthernet 0/1
ip vrf forwarding vpn1
ip address 2.1.1.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 1.1.1.2 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 8.8.8.8 255.255.255.255
!
router bgp 65001
neighbor 9.9.9.9 remote-as 65001
neighbor 9.9.9.9 update-source Loopback 0
address-family vpnv4 unicast
neighbor 9.9.9.9 activate
neighbor 9.9.9.9 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
exit-address-family
!
router ospf 1
router-id 8.8.8.8
network 1.1.1.0 0.0.0.255 area 1
network 8.8.8.8 0.0.0.0 area 1
!
mpls router ldp
ldp router-id interface Loopback 0 force
inter-area-lsp
!
l ABR1的配置文件。
hostname ABR1
!
mpls ip
!
interface GigabitEthernet 0/1
ip address 1.1.1.1 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.2.2 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 10.10.10.10 255.255.255.255
!
router ospf 1
router-id 10.10.10.10
area 1 range 8.0.0.0 255.0.0.0
network 1.1.1.0 0.0.0.255 area 1
network 1.1.2.0 0.0.0.255 area 0
network 10.10.10.10 0.0.0.0 area 1
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l P1的配置文件。
hostname P1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.2.1 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.3.2 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 20.20.20.20 255.255.255.255
!
router ospf 1
router-id 20.20.20.20
graceful-restart
network 1.1.2.0 0.0.0.255 area 0
network 1.1.3.0 0.0.0.255 area 0
network 20.20.20.20 0.0.0.0 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l ABR2的配置文件。
hostname ABR2
!
mpls ip
!
interface GigabitEthernet 0/1
description cyx
ip address 1.1.3.1 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.4.2 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 30.30.30.30 255.255.255.255
!
router ospf 1
router-id 30.30.30.30
area 2 range 9.0.0.0 255.0.0.0
network 1.1.3.0 0.0.0.255 area 0
network 1.1.4.0 0.0.0.255 area 2
network 30.30.30.30 0.0.0.0 area 2
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l PE2的配置文件。
hostname PE2
!
ip vrf vpn1
rd 65001:20
route-target both 65001:20
!
mpls ip
!
interface GigabitEthernet 0/1
ip vrf forwarding vpn1
ip address 2.1.2.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 1.1.4.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 9.9.9.9 255.255.255.255
!
router bgp 65001
neighbor 8.8.8.8 remote-as 65001
neighbor 8.8.8.8 update-source Loopback 0
address-family vpnv4 unicast
neighbor 8.8.8.8 activate
neighbor 8.8.8.8 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
exit-address-family
!
router ospf 1
router-id 9.9.9.9
network 1.1.4.0 0.0.0.255 area 2
network 9.9.9.9 0.0.0.0 area 2
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 192.168.0.1
inter-area-lsp
!
建立PE1和PE2间的LSP(跨越不同区域的LSP),配置开启LDP域间LSP(ISIS组网)。
图1-19 LDP域间LSP(ISIS)配置组网图
l 在各节点配置接口IP地址和ISIS路由协议,实现各节点之间的互通。
l 在PE上配置VPN路由实例和MP-IBGP邻居,并配置传递VPN路由信息。
l 在区域边界设备ABR上配置公告聚合路由。
l 各节点配置开启LDP域间LSP功能。
(1) 配置各节点接口IP地址和IS-IS协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# router isis
PE1(config-router)# net 49.0001.0000.0000.0003.00
PE1(config-router)# is-type level-1
PE1(config-router)# exit
PE1(config)# interface loopback 0
PE1(config-if-Loopback 0)# ip address 8.8.8.8 255.255.255.255
PE1(config-if-Loopback 0)# ip router isis
PE1(config-if-Loopback 0)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-GigabitEthernet 0/2)# ip address 1.1.1.2 255.255.255.0
PE1(config-if-GigabitEthernet 0/2)# ip router isis
PE1(config-if-GigabitEthernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-GigabitEthernet 0/1)# ip address 2.1.1.1 255.255.255.0
PE1(config-if-GigabitEthernet 0/1)# exit
# 设备ABR1的配置。
ABR1> enable
ABR1# configure terminal
ABR1(config)# router isis
ABR1(config-router)# net 49.0001.0000.0000.0002.00
ABR1(config-router)# is-type level-1-2
ABR1(config-router)# exit
ABR1(config)# interface loopback 0
ABR1(config-if-Loopback 0)# ip address 10.10.10.10 255.255.255.255
ABR1(config-if-Loopback 0)# ip router isis
ABR1(config-if-Loopback 0)# exit
ABR1(config)# interface gigabitethernet 0/1
ABR1(config-if-GigabitEthernet 0/1)# ip address 1.1.1.1 255.255.255.0
ABR1(config-if-GigabitEthernet 0/1)# ip router isis
ABR1(config-if-GigabitEthernet 0/1)# exit
ABR1(config)# interface gigabitethernet 0/2
ABR1(config-if-GigabitEthernet 0/2)# ip address 1.1.2.2 255.255.255.0
ABR1(config-if-GigabitEthernet 0/2)# ip router isis
ABR1(config-if-GigabitEthernet 0/2)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# router isis
P1(config-router)# net 50.0001.0000.0000.0001.00
P1(config-router)# is-type level-2-only
P1(config-router)# exit
P1(config)# interface loopback 0
P1(config-if-Loopback 0)# ip address 20.20.20.20 255.255.255.255
P1(config-if-Loopback 0)# ip router isis
P1(config-if-Loopback 0)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-GigabitEthernet 0/1)# ip address 1.1.2.1 255.255.255.0
P1(config-if-GigabitEthernet 0/1)# ip router isis
P1(config-if-GigabitEthernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-GigabitEthernet 0/2)# ip address 1.1.3.2 255.255.255.0
P1(config-if-GigabitEthernet 0/2)# ip router isis
P1(config-if-GigabitEthernet 0/2)# exit
P1(config-if-GigabitEthernet 0/2)# end
# 设备ABR2的配置。
ABR2> enable
ABR2# configure terminal
ABR2(config)# router isis
ABR2(config-router)# net 49.0002.0000.0000.0002.00
ABR2(config-router)# is-type level-1-2
ABR2(config-router)# exit
ABR2(config)# interface loopback 0
ABR2(config-if-Loopback 0)# ip address 30.30.30.30 255.255.255.255
ABR2(config-if-Loopback 0)# ip router isis
ABR2(config-if-Loopback 0)# exit
ABR2(config)# interface gigabitethernet 1/1
ABR2(config-if-GigabitEthernet 1/1)# ip address 1.1.3.1 255.255.255.0
ABR2(config-if-GigabitEthernet 1/1)# ip router isis
ABR2(config-if-GigabitEthernet 1/1)# exit
ABR2(config)# interface gigabitethernet 1/2
ABR2(config-if-GigabitEthernet 1/2)# ip address 1.1.4.2 255.255.255.0
ABR2(config-if-GigabitEthernet 1/2)# ip router isis
ABR2(config-if-GigabitEthernet 1/2)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# router isis
PE2(config-router)# net 49.0002.0000.0000.0003.00
PE2(config-router)# is-type level-1
PE2(config-router)# exit
PE2(config)# interface loopback 0
PE2(config-if-Loopback 0)# ip address 9.9.9.9 255.255.255.255
PE2(config-if-Loopback 0)# ip router isis
PE2(config-if-Loopback 0)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-GigabitEthernet 0/2)# ip address 1.1.4.1 255.255.255.0
PE2(config-if-GigabitEthernet 0/2)# ip router isis
PE2(config-if-GigabitEthernet 0/2)# exit
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-GigabitEthernet 0/1)# ip address 2.1.2.1 255.255.255.0
PE2(config-if-GigabitEthernet 0/1)# exit
(2) 全局开启MPLS转发,并配置LDP协议及LDP Router ID。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-GigabitEthernet 0/2)# mpls ip
PE1(config-if-GigabitEthernet 0/2)# label-switching
PE1(config-if-GigabitEthernet 0/2)# exit
# 设备ABR1的配置。
ABR1(config)# mpls ip
ABR1(config)# mpls router ldp
ABR1(config-mpls-router)# ldp router-id interface loopback 0 force
ABR1(config-mpls-router)# exit
ABR1(config)# interface gigabitethernet 0/1
ABR1(config-if-GigabitEthernet 0/1)# mpls ip
ABR1(config-if-GigabitEthernet 0/1)# label-switching
ABR1(config-if-GigabitEthernet 0/1)# exit
ABR1(config)# interface gigabitethernet 0/2
ABR1(config-if-GigabitEthernet 0/2)# mpls ip
ABR1(config-if-GigabitEthernet 0/2)# label-switching
ABR1(config-if-GigabitEthernet 0/2)# exit
# 设备P1的配置。
P1(config)# mpls ip
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp router-id interface loopback 0 force
P1(config-mpls-router)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-GigabitEthernet 0/1)# mpls ip
P1(config-if-GigabitEthernet 0/1)# label-switching
P1(config-if-GigabitEthernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-GigabitEthernet 0/2)# mpls ip
P1(config-if-GigabitEthernet 0/2)# label-switching
P1(config-if-GigabitEthernet 0/2)# exit
# 设备ABR2的配置。
ABR2(config)# mpls ip
ABR2(config)# mpls router ldp
ABR2(config-mpls-router)# ldp router-id interface loopback 0 force
ABR2(config-mpls-router)# exit
ABR2(config)# interface gigabitethernet 1/1
ABR2(config-if-GigabitEthernet 1/1)# mpls ip
ABR2(config-if-GigabitEthernet 1/1)# label-switching
ABR2(config-if-GigabitEthernet 1/1)# exit
ABR2(config)# interface gigabitethernet 1/2
ABR2(config-if-GigabitEthernet 1/2)# mpls ip
ABR2(config-if-GigabitEthernet 1/2)# label-switching
ABR2(config-if-GigabitEthernet 1/2)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-GigabitEthernet 0/2)# mpls ip
PE2(config-if-GigabitEthernet 0/2)# label-switching
PE2(config-if-GigabitEthernet 0/2)# exit
(3) 在PE1和PE2上配置VPN路由实例和MP-IBGP邻居,并配置传递VPN路由信息。
# 设备PE1的配置。
PE1(config)# ip vrf vpn1
PE1(config-vrf)# rd 65001:20
PE1(config-vrf)# route-target both 65001:20
PE1(config-vrf)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-GigabitEthernet 0/1)# ip vrf forwarding vpn1
PE1(config)# router bgp 65001
PE1(config-router)# neighbor 9.9.9.9 remote-as 65001
PE1(config-router)# neighbor 9.9.9.9 update-source Loopback 0
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 9.9.9.9 activate
PE1(config-router-af)# neighbor 9.9.9.9 send-community both
PE1(config-router-af)# exit
PE1(config-router)# address-family ipv4 vrf vpn1
PE1(config-router-af)# redistribute connected
PE1(config-router-af)# exit
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# ip vrf vpn1
PE2(config-vrf)# rd 65001:20
PE2(config-vrf)# route-target both 65001:20
PE2(config-vrf)# exit
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-GigabitEthernet 0/1)# ip vrf forwarding vpn1
PE2(config)# router bgp 65001
PE2(config-router)# neighbor 8.8.8.8 remote-as 65001
PE2(config-router)# neighbor 8.8.8.8 update-source Loopback 0
PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 8.8.8.8 activate
PE2(config-router-af)# neighbor 8.8.8.8 send-community both
PE2(config-router-af)# exit
PE2(config-router)# address-family ipv4 vrf vpn1
PE2(config-router-af)# redistribute connected
PE2(config-router-af)# exit
PE2(config-router)# exit
(4) 在区域边界设备ABR上配置公告聚合路由。
# 设备ABR1的配置。
ABR1(config)# router isis
ABR1(config-router)# summary-address 8.0.0.0 255.0.0.0
ABR1(config-router)# exit
# 设备ABR2的配置。
ABR2(config)# router isis
ABR2(config-router)# summary-address 9.0.0.0 255.0.0.0
ABR2(config-router)# exit
(5) 在PE1和PE2上配置LDP域间LSP功能。
# 设备PE1的配置。
PE1(config)# mpls router ldp
PE1(config-router)# inter-area-lsp
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# mpls router ldp
PE2(config-router)# inter-area-lsp
PE2(config-router)# exit
# 使用show mpls ldp parameters命令查看LDP域间LSP功能是否开启,通过show mpls ldp bindings命令查看是否最长匹配路由添加的LDP表项。以P1为例。
P1# show mpls ldp parameters
Default VRF:
Protocol version: 1
Ldp Router ID: 8.8.8.8
Control Mode: INDEPENDENT
Propogate Release: FALSE
Label Merge: TRUE
Label Retention Mode: LIBERAL
Loop Detection Mode: off
Inter Area Lsp: TRUE
Session Protection: FALSE
Targeted Session Keepalive HoldTime/Interval: 180/60 sec
Targeted Hello HoldTime/Interval: 90/10 sec
P1# show mpls ldp bindings
Default VRF:
lib entry: 10.10.10.10/32
local binding: to lsr: 10.10.10.10:0, label: 1027
local binding: to lsr: 30.30.30.30:0, label: 1027
remote binding: from lsr: 10.10.10.10:0, label: imp-null
remote binding: from lsr: 30.30.30.30:0, label: 1030 (not in FIB)
lib entry: 9.9.9.9/32, (IA)
local binding: to lsr: 10.10.10.10:0, label: 1028
local binding: to lsr: 30.30.30.30:0, label: 1028
remote binding: from lsr: 10.20.10.10:0, label: 1027 (not in FIB)
remote binding: from lsr: 30.30.30.30:0, label: 1031
l PE1的配置文件。
hostname PE1
!
ip vrf vpn1
rd 65001:20
route-target both 65001:20
!
mpls ip
!
interface GigabitEthernet 0/1
ip vrf forwarding vpn1
ip address 2.1.1.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 1.1.1.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 8.8.8.8 255.255.255.255
ip router isis
!
router bgp 65001
neighbor 9.9.9.9 remote-as 65001
neighbor 9.9.9.9 update-source Loopback 0
address-family vpnv4 unicast
neighbor 9.9.9.9 activate
neighbor 9.9.9.9 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
exit-address-family
!
router isis
is-type level-1
net 49.0001.0000.0000.0003.00
graceful-restart
!
mpls router ldp
ldp router-id interface Loopback 0 force
inter-area-lsp
!
l ABR1的配置文件。
hostname ABR1
!
mpls ip
!
interface GigabitEthernet 0/1
ip address 1.1.1.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.2.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 10.10.10.10 255.255.255.255
ip router isis
!
router isis
net 49.0001.0000.0000.0002.00
summary-address 8.0.0.0 255.0.0.0
graceful-restart
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l P1的配置文件。
hostname P1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.2.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.3.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 20.20.20.20 255.255.255.255
ip router isis
!
router isis
is-type level-2-only
net 50.0001.0000.0000.0001.00
graceful-restart
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l ABR2的配置文件。
hostname ABR2
!
mpls ip
!
interface GigabitEthernet 0/1
description cyx
ip address 1.1.3.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 1.1.4.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 30.30.30.30 255.255.255.255
ip router isis
!
router isis
net 49.0002.0000.0000.0002.00
summary-address 9.0.0.0 255.0.0.0
graceful-restart
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
l PE2的配置文件。
hostname PE2
!
ip vrf vpn1
rd 65001:20
route-target both 65001:20
!
mpls ip
!
interface GigabitEthernet 0/1
ip vrf forwarding vpn1
ip address 2.1.2.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 1.1.4.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 9.9.9.9 255.255.255.255
ip router isis
!
router bgp 65001
neighbor 8.8.8.8 remote-as 65001
neighbor 8.8.8.8 update-source Loopback 0
address-family vpnv4 unicast
neighbor 8.8.8.8 activate
neighbor 8.8.8.8 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
exit-address-family
!
router isis
is-type level-1
net 49.0002.0000.0000.0003.00
graceful-restart
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 192.168.0.1
inter-area-lsp
!
配置LDP IPv6 LSP。
图1-20 LDP IPv6 LSP配置组网图
l 在设备上配置IPv6地址和OSPF单播路由协议,实现各节点之间的互通(Loopback接口单播路由可达)。
l 配置LDP Router ID及LDP IPv6的传输地址,全局开启LDP IPv6功能。
l 开启接口的LDP IPv6功能和标签转发能力。
(1) 在各设备上配置接口IP地址和OSPF路由协议,实现各设备之间的互通。
# 设备LER A的配置。
LERA> enable
LERA# configure terminal
LERA(config)# interface loopback 0
LERA(config-if-Loopback 0)# ipv6 address 1001::1/128
LERA(config-if-Loopback 0)# exit
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# no switchport
LERA(config-if-GigabitEthernet 0/1)# ipv6 address 2001::12:1/64
LERA(config-if-GigabitEthernet 0/1)# exit
LERA(config)# ipv6 router ospf 1
LERA(config-router)# router-id 1.1.1.1
Change router-id and update OSPFv3 process! [yes/no]:yes
LERA(config-router)# exit
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
LERA(config-if-GigabitEthernet 0/1)# exit
LERA(config)# interface loopback 0
LERA(config-if-Loopback 0)# ipv6 ospf 1 area 0
LERA(config-if-Loopback 0)# exit
# 设备LSR B的配置。
LSRB> enable
LSRB# configure terminal
LSRB(config)# interface loopback 0
LSRB(config-if-Loopback 0)# ipv6 address 2002::2/128
LSRB(config-if-Loopback 0)# exit
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# no switchport
LSRB(config-if-GigabitEthernet 0/1)# ipv6 address 2001::12:2/64
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# no switchport
LSRB(config-if-GigabitEthernet 0/2)# ipv6 address 2003::23:2/64
LSRB(config-if-GigabitEthernet 0/2)# exit
LSRB(config)# ipv6 router ospf 1
LSRB(config-router)# router-id 2.2.2.2
Change router-id and update OSPFv3 process! [yes/no]:yes
LSRB(config-router)# exit
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# ipv6 ospf 1 area 0
LSRB(config-if-GigabitEthernet 0/2)# exit
LSRB(config)# interface loopback 0
LSRB(config-if-Loopback 0)# ipv6 ospf 1 area 0
LSRB(config-if-Loopback 0)# exit
# 设备LER C的配置。
LERC> enable
LERC# configure terminal
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# no switchport
LERC(config-if-GigabitEthernet 0/1)# ipv6 address 2003::23:3/64
LERC(config-if-GigabitEthernet 0/1)# exit
LERC(config)# interface loopback 0
LERC(config-if-Loopback 0)# ipv6 address 3003::3/128
LERC(config-if-Loopback 0)# exit
LERC(config)# ipv6 router ospf 1
LERC(config-router)# router-id 3.3.3.3
Change router-id and update OSPFv3 process! [yes/no]:yes
LERC(config-router)# exit
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
LERC(config)# interface loopback 0
LERC(config-if-Loopback 0)# ipv6 ospf 1 area 0
LERC(config-if-Loopback 0)# exit
(2) 配置LDP Router ID及LDP IPv6的传输地址,全局开启LDP IPv6功能。
# 设备LER A的配置。
LERA(config)# mpls router ldp
LERA(config-mpls-router)# ldp router-id 1.1.1.1
LERA(config-mpls-router)# ipv6 transport-address loopback 0
LERA(config-mpls-router)# ipv6 enable
LERA(config-mpls-router)# exit
# 设备LSR B的配置。
LSRB(config)# mpls router ldp
LSRB(config-mpls-router)# ldp router-id 2.2.2.2
LSRB(config-mpls-router)# ipv6 transport-address loopback 0
LSRB(config-mpls-router)# ipv6 enable
LSRB(config-mpls-router)# exit
# 设备LER C的配置。
LERC(config)# mpls router ldp
LERC(config-mpls-router)# ldp router-id 3.3.3.3
LERC(config-mpls-router)# ipv6 transport-address loopback 0
LERC(config-mpls-router)# ipv6 enable
LERC(config-mpls-router)# exit
(3) 开启接口的LDP IPv6和标签转发能力。
# 设备LER A的配置。
LERA(config)# interface gigabitethernet 0/1
LERA(config-if-GigabitEthernet 0/1)# mpls ipv6
LERA(config-if-GigabitEthernet 0/1)# label-switching
LERA(config-if-GigabitEthernet 0/1)# end
# 设备LSR B的配置。
LSRB(config)# interface gigabitethernet 0/1
LSRB(config-if-GigabitEthernet 0/1)# mpls ipv6
LSRB(config-if-GigabitEthernet 0/1)# label-switching
LSRB(config-if-GigabitEthernet 0/1)# exit
LSRB(config)# interface gigabitethernet 0/2
LSRB(config-if-GigabitEthernet 0/2)# mpls ipv6
LSRB(config-if-GigabitEthernet 0/2)# label-switching
LSRB(config-if-GigabitEthernet 0/2)# end
# 设备LER C的配置。
LERC(config)# interface gigabitethernet 0/1
LERC(config-if-GigabitEthernet 0/1)# mpls ipv6
LERC(config-if-GigabitEthernet 0/1)# label-switching
LERC(config-if-GigabitEthernet 0/1)# end
# 通过show mpls forwarding-table命令查看各设备是否生成MPLS表项。
# 在设备LER A上查看MPLS表项。
LERA# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- imp-null PH 2002::2/128 Gi0/1 fe80::274:9cff:feee:f49f
-- imp-null PH 2003::/64 Gi0/1 fe80::274:9cff:feee:f49f
-- 9228 PH 3003::3/128 Gi0/1 fe80::274:9cff:feee:f49f
9216 imp-null PP 2002::2/128 Gi0/1 fe80::274:9cff:feee:f49f
9217 imp-null PP 2003::/64 Gi0/1 fe80::274:9cff:feee:f49f
9218 9228 SW 3003::3/128 Gi0/1 fe80::274:9cff:feee:f49f
# 在设备LSR B上查看MPLS表项。
LSRB# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- imp-null PH 1001::1/128 Gi0/1 fe80::274:9cff:feee:53cb
-- imp-null PH 3003::3/128 Gi0/2 fe80::2d0:f8ff:feee:8c1f
9228 imp-null PP 3003::3/128 Gi0/2 fe80::2d0:f8ff:feee:8c1f
9229 imp-null PP 1001::1/128 Gi0/1 fe80::274:9cff:feee:53cb
# 在设备LER C上查看MPLS表项。
LERC# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- 9229 PH 1001::1/128 Gi0/1 fe80::274:9cff:feee:f49f
-- imp-null PH 2001::/64 Gi0/1 fe80::274:9cff:feee:f49f
-- imp-null PH 2002::2/128 Gi0/1 fe80::274:9cff:feee:f49f
9230 imp-null PP 2001::/64 Gi0/1 fe80::274:9cff:feee:f49f
9231 imp-null PP 2002::2/128 Gi0/1 fe80::274:9cff:feee:f49f
9232 9229 SW 1001::1/128 Gi0/1 fe80::274:9cff:feee:f49f
l LER A的配置文件
hostname LERA
!
interface GigabitEthernet 0/1
no switchport
ipv6 address 2001::12:1/64
ipv6 ospf 1 area 0
mpls ipv6
label-switching
!
interface Loopback 0
ipv6 address 1001::1/128
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 1.1.1.1
!
mpls router ldp
ldp router-id 1.1.1.1
ipv6 transport-address Loopback 0
ipv6 enable
!
l LSR B的配置文件
hostname LSRB
!
interface GigabitEthernet 0/1
no switchport
ipv6 address 2001::12:2/64
ipv6 ospf 1 area 0
mpls ipv6
label-switching
!
interface GigabitEthernet 0/2
no switchport
ipv6 address 2003::23:2/64
ipv6 ospf 1 area 0
mpls ipv6
label-switching
!
interface Loopback 0
ipv6 address 2002::2/128
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 2.2.2.2
!
mpls router ldp
ldp router-id 2.2.2.2
ipv6 transport-address Loopback 0
ipv6 enable
!
l LER C的配置文件
hostname LERC
!
interface GigabitEthernet 0/1
no switchport
ipv6 address 2003::23:3/64
ipv6 ospf 1 area 0
mpls ipv6
label-switching
!
interface Loopback 0
ipv6 address 3003::3/128
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 3.3.3.3
!
mpls router ldp
ldp router-id 3.3.3.3
ipv6 transport-address Loopback 0
ipv6 enable
!
l 未开启全局LDP IPv6功能。
l 接口未开启LDP IPv6功能。
配置IP迭代到LDP LSP。
图1-21 IP迭代到LDP LSP配置组网图
l 在LER1、LSR1和LER2之间配置IP地址以及IS-IS协议,建立ISIS单播邻居。
l 在LER1、LSR1和LER2之间配置LDP协议,建立LDP邻居。
l 在CE1与LER1、CE2与LER2之间分别配置IP地址和OSPF协议,建立OSPF邻居。
l 在LER1上配置静态路由到CE2,在LER2上配置静态路由到CE1,并将静态路由重分布到OSPF中。
l 在LER1和LER2上开启IP迭代到LDP LSP。
(1) 在LER1、LSR1和LER2之间配置IP地址以及IS-IS协议,建立ISIS单播邻居。
# 设备LER1的配置。
LER1> enable
LER1# configure terminal
LER1(config)# router isis
LER1(config-router)# net 49.0001.0000.0000.0001.00
LER1(config-router)# exit
LER1(config)# interface loopback 1
LER1(config-if-Loopback 1)# ip address 3.3.3.3 255.255.255.255
LER1(config-if-Loopback 1)# ip router isis
LER1(config-if-Loopback 1)# exit
LER1(config)# interface gigabitethernet 0/2
LER1(config-if-GigabitEthernet 0/2)# no switchport
LER1(config-if-GigabitEthernet 0/2)# ip address 192.168.2.1 255.255.255.0
LER1(config-if-GigabitEthernet 0/2)# ip router isis
LER1(config-if-GigabitEthernet 0/2)# exit
# 设备LSR1的配置。
LSR1> enable
LSR1# configure terminal
LSR1(config)# router isis
LSR1(config-router)# net 49.0001.0000.0000.0002.00
LSR1(config-router)# exit
LSR1(config)# interface loopback 1
LSR1(config-if-Loopback 1)# ip address 4.4.4.4 255.255.255.255
LSR1(config-if-Loopback 1)# ip router isis
LSR1(config-if-Loopback 1)# exit
LSR1(config)# interface gigabitethernet 0/1
LSR1(config-if-GigabitEthernet 0/1)# no switchport
LSR1(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
LSR1(config-if-GigabitEthernet 0/1)# ip router isis
LSR1(config-if-GigabitEthernet 0/1)# exit
LSR1(config)# interface gigabitethernet 0/2
LSR1(config-if-GigabitEthernet 0/2)# no switchport
LSR1(config-if-GigabitEthernet 0/2)# ip address 192.168.3.1 255.255.255.0
LSR1(config-if-GigabitEthernet 0/2)# ip router isis
LSR1(config-if-GigabitEthernet 0/2)# exit
# 设备LER2的配置。
LER2> enable
LER2# configure terminal
LER2(config)# router isis
LER2(config-router)# net 49.0001.0000.0000.0003.00
LER2(config-router)# exit
LER2(config)# interface loopback 1
LER2(config-if-Loopback 1)# ip address 5.5.5.5 255.255.255.255
LER2(config-if-Loopback 1)# ip router isis
LER2(config-if-Loopback 1)# exit
LER2(config)# interface gigabitethernet 0/2
LER2(config-if-GigabitEthernet 0/2)# no switchport
LER2(config-if-GigabitEthernet 0/2)# ip address 192.168.3.2 255.255.255.0
LER2(config-if-GigabitEthernet 0/2)# ip router isis
LER2(config-if-GigabitEthernet 0/2)# exit
(2) 在LER1、LSR1和LER2之间配置LDP协议,建立LDP邻居。
# 设备LER1的配置。
LER1(config)# mpls router ldp
LER1(config-mpls-router)# ldp router-id interface loopback 1 force
LER1(config-mpls-router)# exit
LER1(config)# interface gigabitethernet 0/2
LER1(config-if-GigabitEthernet 0/2)# mpls ip
LER1(config-if-GigabitEthernet 0/2)# label-switching
LER1(config-if-GigabitEthernet 0/2)# exit
# 设备LSR1的配置。
LSR1(config)# mpls router ldp
LSR1(config-mpls-router)# ldp router-id interface loopback 1 force
LSR1(config-mpls-router)# exit
LSR1(config)# interface gigabitethernet 0/1
LSR1(config-if-GigabitEthernet 0/1)# mpls ip
LSR1(config-if-GigabitEthernet 0/1)# label-switching
LSR1(config-if-GigabitEthernet 0/1)# exit
LSR1(config)# interface gigabitethernet 0/2
LSR1(config-if-GigabitEthernet 0/2)# mpls ip
LSR1(config-if-GigabitEthernet 0/2)# label-switching
LSR1(config-if-GigabitEthernet 0/2)# exit
# 设备LER2的配置。
LER2(config)# mpls router ldp
LER2(config-mpls-router)# ldp router-id interface loopback 1 force
LER2(config-mpls-router)# exit
LER2(config)# interface gigabitethernet 0/2
LER2(config-if-GigabitEthernet 0/2)# mpls ip
LER2(config-if-GigabitEthernet 0/2)# label-switching
LER2(config-if-GigabitEthernet 0/2)# exit
(3) 在CE1与LER1、CE2与LER2之间分别配置IP地址和OSPF协议,建立OSPF邻居。
# 设备CE1的配置。
CE1> enable
CE1# configure terminal
CE1(config)# interface gigabitethernet 0/1
CE1(config-if-GigabitEthernet 0/1)# no switchport
CE1(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
CE1(config-if-GigabitEthernet 0/1# exit
CE1(config)# interface loopback 1
CE1(config-if-Loopback 1)# ip address 1.1.1.1 255.255.255.255
CE1(config-if-Loopback 1)# exit
CE1(config)# router ospf 1
CE1(config-router)# network 192.168.1.0 0.0.0.255 area 0
CE1(config-router)# network 1.1.1.0 0.0.0.255 area 0
CE1(config-router)# end
# 设备LER1的配置。
LER1(config)# interface gigabitethernet 0/1
LER1(config-if-GigabitEthernet 0/1)# no switchport
LER1(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
LER1(config-if-GigabitEthernet 0/1)# exit
LER1(config)# router ospf 1
LER1(config-router)# network 192.168.1.0 0.0.0.255 area 0
LER1(config-router)# exit
# 设备LER2的配置。
LER2(config)# interface gigabitethernet 0/1
LER2(config-if-GigabitEthernet 0/1)# no switchport
LER2(config-if-GigabitEthernet 0/1)# ip address 192.168.4.1 255.255.255.0
LER2(config-if-GigabitEthernet 0/1)# exit
LER2(config)# router ospf 1
LER2(config-router)# network 192.168.4.0 0.0.0.255 area 0
LER2(config-router)# exit
# 设备CE2的配置。
CE2> enable
CE2# configure terminal
CE2(config)# interface gigabitethernet 0/1
CE2(config-if-GigabitEthernet 0/1)# no switchport
CE2(config-if-GigabitEthernet 0/1)# ip address 192.168.4.2 255.255.255.0
CE2(config-if-GigabitEthernet 0/1# exit
CE2(config)# interface loopback 1
CE2(config-if-Loopback 1)# ip address 2.2.2.2 255.255.255.255
CE2(config-if-Loopback 1)# exit
CE2(config)# router ospf 1
CE2(config-router)# network 192.168.4.0 0.0.0.255 area 0
CE2(config-router)# network 2.2.2.0 0.0.0.255 area 0
(4) 在LER1上配置静态路由到CE2,在LER2上配置静态路由到CE1,并将静态路由重分布到OSPF中。
# 设备LER1的配置。
LER1(config)# ip route 2.2.2.0 255.255.255.0 5.5.5.5
LER1(config)# router ospf 1
LER1(config-router)# redistribute static subnets
LER1(config-router)# exit
# 设备LER2的配置。
LER2(config)# ip route 1.1.1.0 255.255.255.0 3.3.3.3
LER2(config)# router ospf 1
LER2(config-router)# redistribute static subnets
LER2(config-router)# exit
(5) 在LER1和LER2上开启IP迭代到LDP LSP。以LER1为例,LER2的配置与LER1类似,不再赘述。
# 设备LER1的配置。
LER1(config)# recursive-route to mpls
LER1(config)# end
# 通过show mpls forwarding-table命令查看LER1和LER2上分别有到达对端的公网FTN表项,并且CE1、CE2之间流量转发正常。
# 查看LER1表项。
LER1# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- imp-null PH 4.4.4.4/32 Gi0/2 192.168.2.2
-- 11266 PH 5.5.5.5/32 Gi0/2 192.168.2.2
-- imp-null PH 192.168.3.0/24 Gi0/2 192.168.2.2
11265 -- PI 1.1.1.1/32 Gi0/1 192.168.1.2
11266 imp-null PP 4.4.4.4/32 Gi0/2 192.168.2.2
11267 imp-null PP 192.168.3.0/24 Gi0/2 192.168.2.2
11268 11266 SW 5.5.5.5/32 Gi0/2 192.168.2.2
11269 -- PI 2.2.2.0/24 Gi0/2 5.5.5.5
# 查看LER2表项。
LER2# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP--SWAP topmost label and push new label
DP--DROP packet
PC--POP label and continue lookup by IP or Label
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
s--stale
Local Outgoing OP FEC Outgoing Nexthop
label label interface
-- 11265 PH 3.3.3.3/32 Gi0/2 192.168.3.1
-- imp-null PH 4.4.4.4/32 Gi0/2 192.168.3.1
-- imp-null PH 192.168.2.0/24 Gi0/2 192.168.3.1
92162 -- PI 2.2.2.2/32 Gi0/1 192.168.4.2
92163 11265 SW 3.3.3.3/32 Gi0/2 192.168.3.1
92164 imp-null PP 4.4.4.4/32 Gi0/2 192.168.3.1
92168 imp-null PP 192.168.2.0/24 Gi0/2 192.168.3.1
92169 -- PI 1.1.1.0/24 Gi0/2 3.3.3.3
# 设备CE1可以正常访问CE2。
CE1# ping 2.2.2.2 source 1.1.1.1
Sending 5, 100-byte ICMP Echoes to 2.2.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/6 ms.
l CE1的配置文件
hostname CE1
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.2 255.255.255.0
!
interface Loopback 1
ip address 1.1.1.1 255.255.255.255
!
router ospf 1
network 1.1.1.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
!
l LER1的配置文件
hostname LER1
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.1.1 255.255.255.0
!
interface gigabitethernet 0/2
no switchport
ip address 192.168.2.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 1
ip address 3.3.3.3 255.255.255.255
ip router isis
!
router isis
net 49.0001.0000.0000.0001.00
!
router ospf 1
redistribute static subnets
network 192.168.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 1 force
!
recursive-route to mpls
!
ip route 2.2.2.0 255.255.255.0 5.5.5.5
l LSR1的配置文件
hostname LSR1
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.2.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface gigabitethernet 0/2
no switchport
ip address 192.168.3.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 1
ip address 4.4.4.4 255.255.255.255
ip router isis
!
mpls router ldp
ldp router-id interface Loopback 1 force
!
router isis
net 49.0001.0000.0000.0002.00
!
mpls router ldp
ldp router-id interface Loopback 1 force
!
l LER2的配置文件
hostname LER2
!
mpls ip
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.4.1 255.255.255.0
!
interface gigabitethernet 0/2
no switchport
ip address 192.168.3.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 1
ip address 5.5.5.5 255.255.255.255
ip router isis
!
router isis
net 49.0001.0000.0000.0003.00
!
router ospf 1
redistribute static subnets
network 192.168.4.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 1 force
!
recursive-route to mpls
!
ip route 1.1.1.0 255.255.255.0 3.3.3.3
l CE2的配置文件
hostname CE2
!
interface gigabitethernet 0/1
no switchport
ip address 192.168.4.2 255.255.255.0
!
interface Loopback 1
ip address 2.2.2.2 255.255.255.255
!
router ospf 1
network 2.2.2.0 0.0.0.255 area 0
network 192.168.4.0 0.0.0.255 area 0
!
l 未开启全局MPLS转发。
l 接口未开启LDP功能。