03-LDP配置
本章节下载: 03-LDP配置 (838.07 KB)
LDP(Label Distribution Protocol,标签分发协议)用来动态建立LSP。通过LDP,LSR可以把网络层的IP路由信息映射到MPLS的标签交换路径上。
LDP会话是指建立在TCP连接之上的LDP协议连接,用于在LSR之间交换FEC—标签映射(FEC-Label Mapping)。
LDP对等体是指相互之间存在LDP会话,并通过LDP会话交换FEC—标签映射关系的两个LSR。
标签空间是指标签的取值范围。有以下几种类型的标签空间:
· 每接口标签空间(per-interface label space):每个接口使用一个独立的标签空间。不同接口使用的标签空间中包括的标签值可以相同。
· 每平台标签空间(per-platform label space):整个LSR统一使用一个标签空间。
目前,设备上只支持每平台标签空间。
LDP ID(LDP Identifier,LDP标识符)用于标识特定LSR的标签空间,为一个六字节的数值,格式如下:
<LSR ID>:<标签空间序号>
其中,LSR ID占四字节;标签空间序号占两字节,取值为0时表示每平台标签空间,取值为非0值时表示某个接口使用的标签空间。
LDP协议在IPv4和IPv6网络中共用标签空间,IPv4网络和IPv6网络中的LDP ID不能相同。
FEC(Forwarding Equivalence Class,转发等价类)是MPLS中的一个重要概念。MPLS将具有相同特征(目的地相同或具有相同服务等级等)的报文归为一类,称为FEC。属于相同FEC的报文在MPLS网络中将获得完全相同的处理。
LDP支持根据目的IP地址划分FEC。
FEC—标签映射也称为FEC—标签绑定(FEC-Label Binding),是本地LSR设备上标签与FEC的对应关系。LDP通过Label Mapping消息将FEC—标签映射通告给对等体。
LDP协议主要使用四类消息:
· 发现(Discovery)消息:用于通告和维护网络中的LSR,例如Hello消息。
· 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,例如用来协商会话参数的Initialization消息和用于维护会话的Keepalive消息。
· 通告(Advertisement)消息:用于创建、改变和删除“FEC—标签”映射关系,例如用来通告标签映射的Label Mapping消息。
· 通知(Notification)消息:用于提供建议性信息的消息和差错通知,例如Notification消息。
为保证LDP消息的可靠发送,除了发现消息使用UDP传输外,LDP的会话消息、通告消息和通知消息都使用TCP传输。
LDP协议既可在IPv4网络或IPv6网络中运行,也可在IPv4和IPv6并存的网络中运行,LDP在IPv4和IPv6网络中的工作过程基本相同。
LDP工作过程主要包括对等体发现与维护、会话建立与维护、LSP建立三个阶段。
使能了LDP能力的LSR周期性地发送Hello消息,通告自己的存在。通过Hello消息,LSR可以自动发现它周围的LSR邻居,并与其建立Hello邻接关系。
LDP对等体发现机制分为两种:
· 基本发现机制:用于发现本地直连的LSR邻居,即通过链路层直接相连的LSR。在这种方式下,LSR周期性地向组播地址224.0.0.2(IPv4网络)或FF02:0:0:0:0:0:0:2(IPv6网络)发送LDP的Link Hello消息,以便链路层直接相连的LSR发现此LSR。在IPv4和IPv6共存的网络中,LSR会向直连LSR同时发送IPv4 Link Hello消息和IPv6 Link Hello消息,并与邻接LSR同时保持IPv4 Link Hello邻接关系和IPv6 Link Hello邻接关系。
· 扩展发现机制:可用于发现远端非直连的LSR邻居,即不通过链路层直接相连的LSR。这种方式下,LSR周期性地向指定的IP地址发送LDP的Targeted Hello消息,以便指定IP地址对应的LSR发现此LSR。如果指定的地址为IPv4地址,则发送IPv4 Targeted Hello消息;如果指定的地址为IPv6地址,则发送IPv6 Targeted Hello消息。扩展发现机制主要应用于LDP会话保护、LDP over MPLS TE。
LSR可以与直连的邻居同时建立Link Hello和Targeted Hello两种邻接关系。
LDP对等体之间通过周期性地发送Hello消息来维护Hello邻接关系。如果Hello保持定时器超时时仍没有收到新的Hello消息,则删除Hello邻接关系。
通过交互Hello消息发现LSR邻居后,LSR开始与其建立会话。这一过程可分为两步:
(1) 建立传输层连接,即在LSR之间建立TCP连接,在IPv4和IPv6共存的网络中LSR会优先建立IPv6 TCP连接,如果长时间没有收到新的IPv6 Hello消息,则会尝试建立IPv4 TCP连接;
(2) 通过交换会话初始化消息对LSR之间的会话进行初始化,协商会话中涉及的各种参数,如LDP版本、标签通告方式、Keepalive保持时间等。如果会话参数协商通过,则LSR之间成功建立LDP会话。
会话建立后,LDP对等体之间通过发送LDP PDU(LDP PDU中携带一个或多个LDP消息)来维护这个会话。如果在Keepalive报文发送时间间隔内,LDP对等体之间没有需要交互的信息,则LSR发送Keepalive消息给LDP对等体,以便维持LDP会话。如果Keepalive保持定时器超时时,没有收到任何LDP PDU,LSR将关闭TCP连接,结束LDP会话。
一个LDP会话上可能存在多个Hello邻接关系。当LDP会话上的最后一个Hello邻接关系被删除后,LSR将发送通知消息,结束该LDP会话。
相邻LSR之间只会建立一个LDP会话,但可在此会话中同时交互IPv4 FEC—标签映射和IPv6 FEC—标签映射。
LSR还可以通过发送Shutdown消息,通知它的LDP对等体结束LDP会话。
利用LDP动态建立LSP的过程如图1-1所示。LSR根据IP路由表项中的目的IP地址划分FEC,为不同的FEC分配不同的标签,并将FEC—标签映射通告给对端LSR;对端LSR根据接收到的FEC—标签映射及本地为该FEC分配的标签建立标签转发表项。从Ingress到Egress的所有LSR都为该FEC建立对应的标签转发表项后,就成功地建立了用于转发属于该FEC报文的LSP。
图1-1 动态LSP建立过程
如图1-2所示,根据建立了会话的一对LSR中哪个LSR负责发起标签映射过程,标签通告方式分为:
· DU(Downstream Unsolicited,下游自主方式):下游LSR主动将FEC—标签映射通告给上游LSR,无需等待上游LSR的标签请求。在DU方式中,下游LSR负责发起标签映射过程。
· DoD(Downstream On Demand,下游按需方式):上游LSR请求下游LSR为FEC分配标签,下游LSR收到请求后,才会将该FEC的FEC—标签映射通告给请求标签的上游LSR。在DoD方式中,上游LSR负责发起标签映射过程。
目前,设备只支持DU标签通告方式。
具有标签分发邻接关系的上游LSR和下游LSR之间必须使用相同的标签通告方式,否则LSP无法正常建立。
根据通告FEC—标签映射前是否要求收到下游的FEC—标签映射,标签分发控制方式分为独立标签分发控制方式(Independent)和有序标签分发控制方式(Ordered)。
· 独立标签分发控制方式:LSR可以在任意时间向与它连接的LSR通告FEC—标签映射。使用这种方式时,LSR可能会在收到下游LSR的FEC—标签映射之前就向上游通告了FEC—标签映射。如图1-3所示,如果标签通告方式是DU,则即使没有获得下游的FEC—标签映射,也会直接向上游LSR通告FEC—标签映射;如果标签通告方式是DoD,则接收到标签请求的LSR直接向它的上游LSR通告FEC—标签映射,不必等待来自它的下游的FEC—标签映射。
· 有序标签分发控制方式:LSR只有收到它的下游LSR为某个FEC通告的FEC—标签映射,或该LSR是此FEC的出口节点时,才会向它的上游LSR通告此FEC的FEC—标签映射。图1-2中的标签通告过程采用了有序标签控制方式:如果标签通告方式为DU,则LSR只有收到下游LSR通告的FEC—标签映射,才会向自己的上游LSR通告FEC—标签映射;如果标签通告方式为DoD,则下游LSR(Transit)收到上游LSR(Ingress)的标签请求后,继续向它的下游LSR(Egress)发送标签请求,Transit收到Egress通告的FEC—标签映射后,才会向Ingress通告FEC—标签映射。
根据LSR是否保持收到的、但暂时未使用的FEC—标签映射,标签保持方式分为:
· 自由标签保持方式(Liberal):对于从邻居LSR收到的标签映射,无论邻居LSR是不是指定FEC的下一跳都保留。这种方式的优点是LSR能够迅速适应网络拓扑变化,但是由于需要保留所有不能生成LSP的标签,浪费了内存等系统资源。
· 保守标签保持方式(Conservative):对于从邻居LSR收到的标签映射,只有当邻居LSR是指定FEC的下一跳时才保留。这种方式的优点是节省标签,但是对拓扑变化的响应较慢。
目前,设备只支持自由标签保持方式。
LDP GR(Graceful Restart,平滑重启)利用MPLS转发平面与控制平面分离的特点,在信令协议或控制平面出现异常时,保持标签转发表项,LSR依然根据该表项转发报文,从而保证数据转发不中断。
如图1-4所示,参与LDP GR过程的设备分为以下两种:
· GR restarter:GR重启的LSR,指由管理员手工触发或控制平面异常而重启协议的设备,它必须具备GR能力。
· GR helper:GR restarter的邻居LSR,与重启的GR restarter保持邻居关系,并协助其恢复重启前的转发状态。
设备既可以作为GR restarter,又可以作为GR helper,设备的角色由该设备在LDP GR过程中的作用决定。
图1-5 LDP GR工作过程示意图
如图1-5所示,LDP GR的工作过程为:
(1) LSR之间建立LDP会话时,LSR在发送的Initialization消息中携带FT(Fault Tolerance,容错)会话TLV,且L标记位置为1,标识它们支持LDP GR。
(2) GR restarter进行协议重启时,启动MPLS转发状态定时器,并将标签转发表项置为Stale状态。GR helper发现与GR restarter之间的LDP会话down后,将通过该LDP会话接收的FEC—标签映射置为Stale状态,并启动重连定时器。
(3) GR restarter协议重启后,重新建立与GR helper的LDP会话。如果在重连定时器超时前,没有建立LDP会话,则GR helper删除标记为Stale的FEC—标签映射及对应的标签转发表项。如果在重连定时器超时前,重新建立LDP会话,GR restarter将转发状态保持定时器的剩余时间作为恢复定时器时间值通告给GR helper。
(4) GR restarter和GR helper之间重新建立LDP会话后,GR helper启动LDP恢复定时器。
(5) GR restarter和GR helper在新建立的LDP会话上交互标签映射,更新标签转发表。GR restarter接收到标签映射后,与标签转发表进行比较:如果标签转发表中存在与标签映射一致的Stale表项,则删除该表项的Stale标记;否则,按照正常的LDP处理流程,添加新的标签转发表项。GR helper接收到标签映射后,与本地保存的FEC—标签映射进行比较:如果存在一致的标签映射,则删除该FEC—标签映射的Stale标记;否则,按照正常的LDP处理流程,添加新的FEC—标签映射及对应的标签转发表项。
(6) MPLS转发状态保持定时器超时后,GR restarter删除标记为Stale的标签转发表项。
(7) LDP恢复定时器超时后,GR helper删除标记为Stale的FEC—标签映射。
GR restarter在LDP会话协商时,将本地配置的GR重连超时时间和GR转发状态保持定时器的剩余时间发送给GR helper,GR helper分别将其作为重连定时器的值和LDP恢复定时器的值。
LDP基于IGP最优路由建立LSP,LDP和IGP不同步可能导致MPLS流量转发中断。LDP和IGP不同步包括如下情况:
· 某条链路up后,IGP通告并使用了这条链路,而此时这条链路上LDP LSP尚未建立;
· 当LDP会话down时,IGP继续使用这条链路,而此时这条链路上的LDP LSP已经拆除;
· 标签分发控制方式为有序方式时,还没有收到下游设备通告的标签映射,尚未建立LDP LSP,IGP就已经使用该链路。
启用LDP IGP同步功能后,只有LDP在某条链路上收敛,IGP才会为这条链路通告正常的开销值,否则通告链路开销的最大值,使得这条链路在IGP拓扑中可见,但是在其它链路可用的情况下,IGP不会将该链路选为最优路由,从而确保设备收到MPLS报文时,不会因为最优路由上的LDP LSP没有建立而丢弃MPLS报文。
同时满足如下条件时,设备认为LDP在某条链路上已收敛:
· 在该链路上本地设备至少与一个对等体建立了LDP会话,且该LDP会话已进入operational状态。
· 在该链路上本地设备至少向一个对等体发送完标签映射。
缺省情况下,LDP在某条链路上收敛后立即通知IGP,以便IGP发布该链路的正常开销值。但是,在某些情况下,LDP收敛后立即通知IGP,可能会导致MPLS流量转发中断,例如:
· 对等体的标签分发控制方式为有序方式时,LDP会话进入operational状态后,设备需要等待下游的标签映射。如果尚未收到下游的标签映射就向IGP通知LDP收敛,则可能导致MPLS流量转发中断。
· 下游的标签映射比较多时,如果LDP收敛后立即通知IGP,则下游的标签映射可能尚未通告完成,导致MPLS流量转发中断。
在这些情况下,需要配置恰当的延迟通知时间,即LDP在某条链路上收敛后,等待延迟时间再通知IGP,以最大限度地缩短MPLS流量中断的时间。
LDP协议重启或倒换后,需要等待一段时间LDP才会收敛。如果在协议重启或倒换后,LDP立即将当前所有的LDP IGP同步状态通知给IGP,在LDP收敛后再更新这些状态,则可能会导致IGP频繁地根据不同的同步状态进行处理,增加了IGP的处理开销。
LDP协议重启或倒换后的延迟通知机制可以用来解决上述问题。该机制提供了LDP进程级别的延迟通知时间,即在LDP协议重启或倒换的情况下,等待LDP恢复到重启或倒换前的收敛状态后,再批量通知LDP IGP同步状态,以减少IGP的处理开销。如果到达指定的最大延迟时间时,仍未恢复之前的收敛状态,则立即向IGP批量通告当前的LDP IGP同步状态。
当MPLS网络中的链路或某台路由器发生故障时,需要通过故障链路或故障路由器传送才能到达目的地的MPLS报文将会丢弃,MPLS流量转发将会中断,直到LDP沿着新的路径建立新的LDP LSP,被中断的MPLS流量才能恢复正常的传送。
LDP LFA(Loop Free Alternate,无环备份)快速重路由功能可用来缩短网络故障导致的MPLS流量中断时间。LDP LFA快速重路由完全基于IP快速重路由实现,在IP快速重路由使能后,LDP LFA快速重路由即自动使能。IP快速重路由有两种实现方式:
· IGP协议自动计算备份下一跳
· IGP协议通过路由策略指定备份下一跳
图1-6 LDP LFA快速重路由功能示意图
如图1-6所示,LSR A上使能IP快速重路由功能后,IGP将为路由自动计算或通过路由策略指定备份下一跳,建立主备两条路由,LDP基于主备路由建立主备两条LSP。主LSP正常工作时,MPLS流量通过主LSP转发;当主LSP出现故障时,MPLS流量快速切换到备份LSP,从而缩短网络故障导致的流量中断时间。
通过备份LSP转发流量的同时,IGP会根据变化后的网络拓扑重新计算最优路由,LDP也会基于该路由建立新的LSP。LDP LSP的建立在IGP路由收敛之后,如果LDP收敛之前IGP就采用新的路由,则将导致MPLS流量中断。因此在使用LDP LFA快速重路由的情况下,建议同时使能LDP IGP同步功能,以减少故障发生后IGP重新收敛导致的流量中断的时间。
在大型组网中,LDP LFA快速重路由可能无法计算出备份路径,不能满足可靠性要求,可以通过部署LDP Remote LFA(Remote Loop Free Alternate,远端无环备份)快速重路由解决该问题。
如图1-7所示,P 1为源节点,P 2为目的节点,主LDP LSP为P 1->P 2,通过LDP Remote LFA快速重路由建立Remote LFA FRR LSP(P 1->P 4->P 2)来保护主LDP LSP。建立过程为:
(1) IGP通过Remote LFA算法计算出路由后得到PQ节点,PQ节点为P 4。
(2) LDP根据PQ节点地址自动创建远端对等体,建立源节点P 1与PQ节点之间的LDP远端会话,并在该会话上为目的地址分配标签,从而建立Remote LFA FRR LSP(P 1->P 4->P 2)以便保护主LDP LSP。
当主LDP LSP发生故障时,P 1快速将流量切换到Remote LFA FRR LSP继续转发,尽量减少流量丢失,从而提高网络可靠性。有关Remote LFA的详细介绍,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
图1-7 LDP Remote LFA典型组网图
如图1-8所示,对于在核心层部署MPLS TE,而汇聚层或边缘层采用LDP作为标签分发协议的分层网络应用场景,如果想要部署一条穿越核心层的LDP LSP,只需要在MPLS TE隧道的头节点和尾节点的隧道接口上使能LDP功能,在隧道两端建立LDP会话,通过LDP会话通告Label Mapping消息,从而在MPLS TE隧道的头节点和尾节点之间建立LDP LSP,这条LDP LSP隧道承载于MPLS TE隧道之上,形成了分层LSP。有关MPLS TE隧道的详细信息,请参见“MPLS配置指导”中的“MPLS TE”。
LDP一键诊断功能用于诊断LDP模块的功能是否运行正常,例如,LDP会话是否成功建立、LDP对等体是否震荡等,帮助用户定位LDP功能异常。关于LDP一键诊断功能的详细描述和配置请参见“智能运维配置指导”中的“一键诊断”。
与MPLS相关的协议规范有:
· RFC 5036:LDP Specification
· draft-ietf-mpls-ldp-ipv6-09.txt
LDP配置任务如下:
(1) 使能LDP能力
(2) (可选)调整和优化LDP
(3) (可选)调整和控制LSP的建立
(4) (可选)配置LDP的标签分发和管理
(5) (可选)配置LDP MD5认证
(6) (可选)配置LDP环路检测参数
该功能主要用于存在大量非TTL递减设备(如标签控制的ATM交换机)的MPLS网络。
(7) (可选)配置LDP高可靠性
¡ 配置LDP GR
(8) (可选)开启LDP模块的告警功能
要使接口的LDP能力生效,必须先全局使能LDP,然后在相应的接口上使能LDP。
(1) 进入系统视图。
system-view
(2) 使能本节点的LDP能力,或使能指定VPN实例的LDP能力。
¡ 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
¡ 请依次执行以下命令使能指定VPN实例的LDP能力,为该VPN创建LDP实例,并进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
缺省情况下,LDP能力处于关闭状态。
(3) 配置LDP的LSR ID。
lsr-id lsr-id
缺省情况下,LDP的LSR ID与MPLS LSR ID相同。
(1) 进入系统视图。
system-view
(2) 进入需要建立LDP会话的接口视图。
interface interface-type interface-number
如果该接口绑定了VPN实例,则需要在LDP视图下通过vpn-instance命令使能指定VPN实例的LDP能力。
(3) 使能接口的LDP支持IPv4能力。
mpls ldp enable
缺省情况下,接口的LDP支持IPv4能力处于关闭状态。
(4) 使能接口的LDP支持IPv6能力。
mpls ldp ipv6 enable
缺省情况下,接口的LDP支持IPv6能力处于关闭状态。
LDP的Hello消息分为以下几种:
· 用于发现直连邻居的Link hello消息,如果在接口上同时使能LDP支持IPv4能力和LDP支持IPv6能力,则在接口下配置的Link Hello消息参数可同时应用于IPv4 Link Hello消息和IPv6 Link Hello消息。
· 用于发现非直连邻居的Targeted hello消息。
Hello消息参数包括:
· Link hello保持时间和报文发送时间间隔。
· Targeted hello保持时间和报文发送时间间隔。
修改Hello消息参数,不会对已建立的LDP会话生效。如果要求对已建立的会话生效,则需执行reset mpls ldp命令重启公网或指定LDP实例中的所有会话。
(1) 进入系统视图。
system-view
(2) 进入建立LDP会话的接口视图。
interface interface-type interface-number
(3) 配置Link hello保持时间。
mpls ldp timer hello-hold timeout
缺省情况下,Link hello保持时间为15秒。
(4) 配置Link hello报文发送时间间隔。
mpls ldp timer hello-interval interval
缺省情况下,Link hello报文发送时间间隔为5秒。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 配置主动向指定对等体发送Targeted hello消息来建立LDP会话,允许应答指定对等体的Targeted hello消息,并进入LDP对等体视图。
targeted-peer { ipv4-address | ipv6-address }
缺省情况下,设备不会主动向对等体发送Targeted hello消息,也不会应答对等体的Targeted hello消息。
(4) 配置Targeted hello保持时间。
mpls ldp timer hello-hold timeout
缺省情况下,Targeted hello保持时间为45秒。
(5) 配置Targeted hello报文发送时间间隔。
mpls ldp timer hello-interval interval
缺省情况下,Targeted hello报文发送时间间隔为15秒。
可以通过配置修改如下LDP会话参数:
· Keepalive保持时间和报文发送时间间隔。
· LDP传输地址,即用来建立TCP连接的IP地址。
配置的LDP传输地址应为设备上处于up状态的接口的IP地址,否则LDP会话将无法建立。
两端LSR的LDP传输地址必须路由可达。否则,无法建立TCP连接。
修改LDP会话参数,不会对已建立的LDP会话生效。如果要求对已建立的会话生效,则需执行reset mpls ldp命令重启公网或指定LDP实例中的所有会话。
(1) 进入系统视图。
system-view
(2) 进入建立LDP会话的接口视图。
interface interface-type interface-number
(3) 配置Keepalive保持时间。
mpls ldp timer keepalive-hold timeout
缺省情况下,Keepalive保持时间为45秒。
(4) 配置Keepalive报文发送时间间隔。
mpls ldp timer keepalive-interval interval
缺省情况下,Keepalive报文发送时间间隔为15秒。
(5) 配置LDP IPv4传输地址。
mpls ldp transport-address { ipv4-address | interface }
缺省情况下,如果建立LDP会话的接口属于公网,则传输地址是本LSR的LSR ID;如果该接口属于某个VPN,则传输地址是本接口的主IP地址。
如果建立LDP会话的接口与某个VPN实例绑定,则本命令指定的传输地址所在的接口需要与同一个VPN实例绑定。
(6) 配置LDP IPv6传输地址。
mpls ldp transport-address ipv6-address
缺省情况下,未配置LDP IPv6传输地址。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 配置主动向指定对等体发送Targeted hello消息来建立LDP会话,允许应答指定对等体的Targeted hello消息,并进入LDP对等体视图。
targeted-peer ipv4-address
缺省情况下,设备不会主动向对等体发送Targeted hello消息,也不会应答对等体的Targeted hello消息。
(4) 配置Keepalive保持时间。
mpls ldp timer keepalive-hold timeout
缺省情况下,Keepalive保持时间为45秒。
(5) 配置Keepalive报文发送时间间隔。
mpls ldp timer keepalive-interval interval
缺省情况下,Keepalive报文发送时间间隔为15秒。
(6) 配置LDP传输地址。
mpls ldp transport-address ipv4-address
缺省情况下,传输地址是本LSR的LSR ID。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 配置主动向指定对等体发送Targeted hello消息来建立LDP会话,允许应答指定对等体的Targeted hello消息,并进入LDP对等体视图。
targeted-peer ipv6-address
缺省情况下,设备不会主动向对等体发送Targeted hello消息,也不会应答对等体的Targeted hello消息。
(4) 配置Keepalive保持时间。
mpls ldp timer keepalive-hold timeout
缺省情况下,Keepalive保持时间为45秒。
(5) 配置Keepalive报文发送时间间隔。
mpls ldp timer keepalive-interval interval
缺省情况下,Keepalive报文发送时间间隔为15秒。
(6) 配置LDP传输地址。
mpls ldp transport-address ipv6-address
缺省情况下,未配置LDP IPv6传输地址。
如果LDP对等体上配置的LDP会话参数不兼容(如LDP对等体使用的标签通告方式不同),则会导致会话参数协商失败、LDP对等体无休止地反复尝试建立会话。
LDP倒退机制用来抑制尝试建立会话的频率。如果会话因为参数不兼容而建立失败,LSR将等待初始延迟时间再尝试建立会话;如果会话再次因为参数不兼容而建立失败,则再次尝试建立会话的延迟时间为上一次延迟时间×2;延迟时间达到配置的最大值后,尝试建立会话的等待时间将保持为配置的最大延迟。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置LDP倒退机制的初始延迟和最大延迟。
backoff initial initial-time maximum maximum-time
缺省情况下,LDP倒退机制的初始延迟为15秒,最大延迟为120秒。
DSCP(Differentiated Services Code Point,区分服务编码点)携带在IP报文中的ToS字段,用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定发送的LDP报文中携带的DSCP优先级的取值。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 配置发送的LDP报文的DSCP优先级。
dscp dscp-value
缺省情况下,发送的LDP报文的DSCP优先级为48。
缺省情况下,LDP自动引入IGP路由(包括已引入到IGP的BGP路由),并为通过LSP触发策略的IGP路由和通过LSP触发策略的带标签BGP路由分配标签,但不自动引入未被引入到IGP的BGP单播路由。这就导致了在一些特殊的组网环境下,如在运营商的运营商组网中,如果一级运营商的PE与二级运营商CE之间未配置OSPF、IS-IS等IGP协议,则无法通过LDP为BGP单播路由分配标签,因而无法建立LDP LSP。有关运营商的运营商组网的详细信息,请参见“MPLS配置指导”中的“MPLS L3VPN”。
通过配置LDP引入BGP单播路由,可将BGP单播路由强制引入至LDP,如果该路由通过LSP触发策略,则为其分配标签建立LSP。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置LDP引入BGP IPv4单播路由。
import bgp
缺省情况下,LDP不主动引入BGP IPv4单播路由。
(4) 配置LDP引入BGP IPv6单播路由。
ipv6 import bgp
缺省情况下,LDP不主动引入BGP IPv6单播路由。
使能LDP后,LDP可将路由表项中的路由引入至LDP,并根据其目的网络地址划分FEC。在LSR上配置LSP触发策略,可以限制哪些引入到LDP的路由表项能够触发LDP为其目的网络地址分配标签并建立LSP,从而控制LSP的数量,避免LSP数量过多导致设备运行不稳定。
对于引入到LDP的路由表项,LSP触发策略包括:
· 所有路由表项都会触发LDP建立LSP。对于Loopback接口,仅32位掩码的路由可以触发LDP建立LSP。
· 引入到LDP且已经收到下游通告的标签映射的路由表项会触发LDP建立LSP。
· 利用IP地址前缀列表对路由表项进行过滤,被IP地址前缀列表拒绝的路由表项不能触发建立LSP。采用这种LSP触发策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
· 只有32位掩码的IPv4主机路由或128位前缀的IPv6主机路由能够触发LDP建立LSP。
在非必要的情况下,建议用户采用缺省的LSP触发策略,以免建立过多的LSP,占用系统和网络资源。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置IPv4 LSP的触发策略。
lsp-trigger { all | mapping | prefix-list prefix-list-name }
缺省情况下,只有引入到LDP的32位掩码的IPv4主机路由能够触发LDP建立LSP。
(4) 配置IPv6 LSP的触发策略。
ipv6 lsp-trigger { all | mapping | prefix-list prefix-list-name }
缺省情况下,只有引入到LDP的128位前缀的IPv6主机路由能够触发LDP建立LSP。
Transit LSP触发策略用来控制引入到LDP的路由中哪些路由可以建立Transit LSP。
在非必要的情况下,建议用户采用缺省的Transit LSP触发策略,以免建立过多的Transit LSP,占用系统和网络资源。
建立Transit LSP时会同时建立Ingress LSP。
当同时配置LSP触发策略和Transit LSP的触发策略时,Transit LSP的建立由Transit LSP的触发策略决定,不受LSP触发策略控制。
(5) 进入系统视图。
system-view
(6) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(7) 配置Label Mapping消息的发送策略。
propagate mapping { all | none | prefix-list prefix-list-name }
缺省情况下,只有引入到LDP的32位掩码的IPv4主机路由能够触发建立Transit LSP。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置标签分发控制方式。
label-distribution { independent | ordered }
缺省情况下,标签分发控制方式为有序方式(ordered)。
标签通告控制用来控制向哪些对等体通告哪些FEC—标签映射,即LSR只将指定地址前缀的标签映射通告给指定的对等体。在复杂的MPLS网络环境中,通过标签通告控制可以规划动态建立的LSP,并避免设备通告大量的标签映射。
如图1-9,LSR A将FEC目的地址通过地址前缀列表B过滤的FEC—标签映射通告给LSR B;将FEC目的地址通过地址前缀列表C过滤的FEC—标签映射通告给LSR C。
在下游LSR上配置标签通告控制策略与在上游LSR上配置标签接受控制策略具有相同的效果。如果下游LSR支持配置标签通告控制策略,则推荐使用标签通告控制策略,以减轻网络负担。
在配置LDP标签通告控制策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置IPv4 FEC标签通告控制策略。
advertise-label prefix-list prefix-list-name [ peer peer-prefix-list-name ]
缺省情况下,未配置标签通告控制策略,即向所有对等体通告满足LSP触发策略的所有IPv4地址前缀的标签映射。
(4) 配置IPv6 FEC标签通告控制策略。
ipv6 advertise-label prefix-list prefix-list-name [ peer peer-prefix-list-name ]
缺省情况下,未配置标签通告控制策略,即向所有对等体通告满足LSP触发策略的所有IPv6地址前缀的标签映射。
标签接受控制用来实现对从指定对等体接收的FEC—标签映射进行过滤,只接受指定地址前缀的FEC—标签映射。在复杂的MPLS网络环境中,通过标签接受控制可以规划动态建立的LSP,并避免设备保存大量的标签映射。
如图1-10,LSR A对LSR B通告的FEC—标签映射进行过滤,只有FEC的目的地址通过指定地址前缀列表过滤后,才会接受该FEC—标签映射;对LSR C通告的标签不进行过滤。
在下游LSR上配置标签通告控制策略与在上游LSR上配置标签接受控制策略具有相同的效果。如果下游LSR支持配置标签通告控制策略,则推荐使用标签通告控制策略,以减轻网络负担。
在配置LDP标签接受控制策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 配置IPv4 FEC标签接受控制策略。
accept-label peer peer-lsr-id prefix-list prefix-list-name
缺省情况下,未配置标签接受控制策略,接受来自所有对等体的所有IPv4地址前缀的标签映射。
(4) 配置IPv6 FEC标签接受控制策略。
ipv6 accept-label peer peer-lsr-id prefix-list prefix-list-name
缺省情况下,未配置标签接受控制策略,接受来自所有对等体的所有IPv6地址前缀的标签映射。
为了提高LDP会话的安全性,可以配置在LDP会话使用的TCP连接上采用MD5认证,来验证LDP消息的完整性。
要想在LDP对等体之间成功建立LDP会话,必须保证LDP对等体上的LDP MD5认证配置一致。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 使能LDP的MD5认证功能。
md5-authentication peer-lsr-id { cipher | plain } string
缺省情况下,LDP的MD5认证功能处于关闭状态。
设备不支持LDP环路检测功能,但如果邻居支持该功能,且要求LDP会话协商时两端设备通告的环路检测参数一致,为保证与此类邻居能够建立LDP会话,需要在本端设备上进行相同的LDP环路检测参数配置。
配置本功能后,设备仍然不支持LDP环路检测功能,仅在建立LDP会话时具有协商环路检测功能的能力。
(1) 进入系统视图。
system-view
(2) 进入LDP视图或LDP-VPN实例视图。
¡ 进入LDP视图。
mpls ldp
¡ 请依次执行以下命令进入LDP-VPN实例视图。
mpls ldp
vpn-instance vpn-instance-name
(3) 开启环路检测功能。
loop-detect
缺省情况下,环路检测功能处于关闭状态。
(4) (可选)配置最大跳数环路检测方式下LSP的最大跳数。
maxhops hop-number
缺省情况下,最大跳数环路检测方式下LSP的最大跳数为32。
(5) (可选)配置路径向量环路检测方式下LSP的最大跳数。
pv-limit pv-number
缺省情况下,路径向量环路检测方式下LSP的最大跳数为32。
会话保护功能实现了基本发现机制失效时,利用扩展发现机制来保持与对等体的会话,确保基本发现机制恢复时,LDP协议能够快速收敛。会话保护功能主要应用在LDP对等体之间存在直连和非直连多条路径的组网环境中。
使能与指定对等体的会话保护功能后,如果通过Link hello消息发现了该直连的LDP对等体,则本地LSR不仅与其建立Link hello邻接关系,还会向该对等体发送Targeted hello消息,与其建立Targeted hello邻接关系。当直连链路出现故障时,Link hello邻接关系将被删除。如果此时非直连链路正常工作,则Targeted hello邻接关系依然存在,因此,LDP会话不会被删除,基于该会话的FEC—标签映射等信息也不会删除。直连链路恢复后,不需要重新建立LDP会话、重新学习FEC—标签映射等信息,从而加快了LDP收敛速度。
使能会话保护功能时,还可以指定会话保护持续时间,即Link hello邻接关系被删除后,用Targeted hello邻接关系继续保持会话的时间。如果在会话保护持续时间内,Link hello邻接关系没有恢复,则删除Targeted hello邻接关系,对应的LDP会话也将被删除。如果未指定会话保护持续时间,则用Targeted hello邻接关系永久保持会话。
LDP会话保护功能仅支持在IPv4网络中进行配置。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 使能会话保护功能。
session protection [ duration time ] [ peer peer-prefix-list-name ]
缺省情况下,会话保护功能处于关闭状态。
配置LDP GR之前,需要在作为GR restarter和作为GR helper的设备上均配置LDP能力。
只需要在作为GR Restarter的设备上进行以下配置,但由于设备在GR过程中的角色不可预知,建议在所有设备上均进行以下配置。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 使能LDP协议的GR能力。
graceful-restart
缺省情况下,LDP协议的GR能力处于关闭状态。
(4) (可选)配置GR重连超时时间。
graceful-restart timer reconnect reconnect-time
缺省情况下,GR重连超时时间为120秒。
(5) (可选)配置GR转发状态保持定时器的值。
graceful-restart timer forwarding-hold hold-time
缺省情况下,GR转发状态保持定时器的值为180秒。
在OSPF进程、OSPF区域或IS-IS进程下使能LDP IGP同步功能后,所有属于该OSPF进程、OSPF区域或IS-IS进程的接口上都会自动使能LDP IGP同步功能。用户可以根据实际需要,在某个接口上关闭LDP IGP同步功能。
LDP IGP同步功能仅支持在IPv4网络中进行配置。
执行ospf命令时,如果通过vpn-instance vpn-instance-name参数指定了OSPF进程所属的VPN实例,则该OSPF进程下、该进程的OSPF区域下不能配置LDP IGP同步功能。
执行isis命令时,如果通过vpn-instance vpn-instance-name参数指定了IS-IS进程所属的VPN实例,则该IS-IS进程下不能配置LDP IGP同步功能。
(1) 进入系统视图。
system-view
(2) 进入OSPF视图。
ospf [ process-id | router-id router-id ] *
(3) 使能LDP OSPF同步功能。
mpls ldp sync
缺省情况下,LDP OSPF同步功能处于关闭状态。
(4) (可选)在接口上关闭LDP IGP同步功能。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
c. 关闭接口的LDP IGP同步功能。
mpls ldp igp sync disable
缺省情况下,接口上的LDP IGP同步功能处于开启状态。
(5) (可选)配置LDP OSPF同步相关参数。
a. 退回系统视图。
quit
b. 进入LDP视图。
mpls ldp
c. 配置向IGP通知LDP已收敛的延迟时间。
igp sync delay time
缺省情况下,LDP收敛后立即通知IGP。
d. 配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间。
igp sync delay on-restart time
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒。
(1) 进入系统视图。
system-view
(2) 进入OSPF视图。
ospf [ process-id | router-id router-id ] *
(3) 进入OSPF区域视图。
area area-id
(4) 使能LDP OSPF同步功能。
mpls ldp sync
缺省情况下,LDP OSPF同步功能处于关闭状态。
(5) (可选)在接口上关闭LDP IGP同步功能。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
c. 关闭接口的LDP IGP同步功能。
mpls ldp igp sync disable
缺省情况下,接口上的LDP IGP同步功能处于开启状态。
(6) (可选)配置LDP OSPF同步相关参数。
a. 退回系统视图。
quit
b. 进入LDP视图。
mpls ldp
c. 配置向IGP通知LDP已收敛的延迟时间。
igp sync delay time
缺省情况下,LDP收敛后立即通知IGP。
d. 配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间。
igp sync delay on-restart time
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ]
(3) 使能LDP IS-IS同步功能。
mpls ldp sync [ level-1 | level-2 ]
缺省情况下,LDP IS-IS同步功能处于关闭状态。
(4) (可选)在接口上关闭LDP IGP同步功能。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
c. 关闭接口的LDP IGP同步功能。
mpls ldp igp sync disable
缺省情况下,接口上的LDP IGP同步功能处于开启状态。
(5) (可选)配置LDP IS-IS同步相关参数。
a. 退回系统视图。
quit
b. 进入LDP视图。
mpls ldp
c. 配置向IGP通知LDP已收敛的延迟时间。
igp sync delay time
缺省情况下,LDP收敛后立即通知IGP。
d. 配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间。
igp sync delay on-restart time
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒。
LDP快速重路由完全基于IP快速重路由实现,在IP快速重路由使能后,LDP快速重路由即自动使能。有关IP快速重路由的配置内容请参见“三层技术-IP路由配置指导”。
在Remote LFA组网场景中,请在PQ节点配置本功能。
(1) 进入系统视图。
system-view
(2) 进入LDP视图。
mpls ldp
(3) 开启设备根据Targeted Hello消息自动建立LDP Targeted会话的功能。
accept target-hello { all | prefix-list prefix-list-name }
缺省情况下,设备根据Targeted Hello消息自动建立LDP Targeted会话的功能处于关闭状态。
开启LDP模块的告警功能后,当LDP会话状态发生变化时会产生RFC 3815中规定的告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启LDP模块的告警功能。
snmp-agent trap enable ldp
缺省情况下,LDP模块的告警功能处于开启状态。
可在任意视图下执行以下命令:
· 显示LDP运行数据汇总信息。
display mpls ldp summary [ all | vpn-instance vpn-instance-name ]
· 显示使能了LDP能力的接口的LDP相关信息。
display mpls ldp interface [ vpn-instance vpn-instance-name ] [ interface-type interface-number ] [ ipv6 ]
· 显示LDP的运行参数。
display mpls ldp parameter [ vpn-instance vpn-instance-name ]
· 显示LDP对等体和LDP会话信息。
display mpls ldp peer [ vpn-instance vpn-instance-name ] [ peer-lsr-id ] [ verbose ]
· 显示LDP发现过程相关信息。
display mpls ldp discovery [ vpn-instance vpn-instance-name ] [ [ interface interface-type interface-number | peer peer-lsr-id ] [ ipv6 ] | targeted-peer { ipv4-address | ipv6-address } ] [ verbose ]
· 显示接口的LDP IGP同步信息。
display mpls ldp igp sync [ interface interface-type interface-number ]
· 显示LDP会话中收到的错误TCP报文信息。
display mpls ldp error-packet
可在任意视图下执行以下命令:
· 显示LDP协议生成的LSP信息,即LDP LSP信息。
display mpls ldp lsp [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | ipv6-address prefix-length | ipv6 ]
· 显示通过LDP学习到的FEC—标签映射信息。
display mpls ldp fec [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | ipv6-address prefix-length | [ ipv6 ] summary ]
请在用户视图下执行以下命令,重启LDP会话。
reset mpls ldp [ vpn-instance vpn-instance-name ] [ peer peer-id ]
· Router A、Router B和Router C均支持MPLS。
· 在Router A和Router C之间使用LDP动态建立LSP,使11.1.1.0/24和21.1.1.0/24这两个网段中互访的报文能够通过MPLS进行传输。
· Router A、Router B和Router C上只允许目的地址为1.1.1.9/32、2.2.2.9/32、3.3.3.9/32、11.1.1.0/24和21.1.1.0/24的路由表项触发LDP建立LSP,其他路由表项不能触发LDP建立LSP,以避免建立的LSP数量过多,影响设备性能。
图1-11 利用LDP动态建立LSP配置组网图
· LDP根据路由信息动态分配标签,因此,利用LDP动态建立LSP时,需要配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPF。
· 在各台路由器上启动LDP协议。
· 为了控制建立的LSP数量,在Router A、Router B和Router C上需要配置LSP触发策略。
按照图1-11配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
(1) 配置OSPF,以保证各路由器之间路由可达
# 配置Router A。
<RouterA> system-view
[RouterA] ospf
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
# 配置Router B。
<RouterB> system-view
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 21.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置完成后,在各路由器上执行display ip routing-table命令,可以看到相互之间都学到了到对方的主机路由。以Router A为例:
[RouterA] display ip routing-table
Destinations : 21 Routes : 21
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 O_INTRA 10 1 10.1.1.2 GE0/0/1
3.3.3.9/32 O_INTRA 10 2 10.1.1.2 GE0/0/1
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/0/1
10.1.1.0/32 Direct 0 0 10.1.1.1 GE0/0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE0/0/1
11.1.1.0/24 Direct 0 0 11.1.1.1 GE0/0/2
11.1.1.0/32 Direct 0 0 11.1.1.1 GE0/0/2
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.1 GE0/0/2
20.1.1.0/24 O_INTRA 10 2 10.1.1.2 GE0/0/1
21.1.1.0/24 O_INTRA 10 3 10.1.1.2 GE0/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
(2) 使能MPLS和LDP功能
# 配置Router A。
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp enable
[RouterA-GigabitEthernet0/0/1] quit
# 配置Router B。
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp enable
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp enable
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp enable
[RouterC-GigabitEthernet0/0/1] quit
(3) 配置LSP触发策略
# 在Router A上创建IP地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterA] ip prefix-list routera index 10 permit 1.1.1.9 32
[RouterA] ip prefix-list routera index 20 permit 2.2.2.9 32
[RouterA] ip prefix-list routera index 30 permit 3.3.3.9 32
[RouterA] ip prefix-list routera index 40 permit 11.1.1.0 24
[RouterA] ip prefix-list routera index 50 permit 21.1.1.0 24
[RouterA] mpls ldp
[RouterA-ldp] lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IP地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterB] ip prefix-list routerb index 10 permit 1.1.1.9 32
[RouterB] ip prefix-list routerb index 20 permit 2.2.2.9 32
[RouterB] ip prefix-list routerb index 30 permit 3.3.3.9 32
[RouterB] ip prefix-list routerb index 40 permit 11.1.1.0 24
[RouterB] ip prefix-list routerb index 50 permit 21.1.1.0 24
[RouterB] mpls ldp
[RouterB-ldp] lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IP地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterC] ip prefix-list routerc index 10 permit 1.1.1.9 32
[RouterC] ip prefix-list routerc index 20 permit 2.2.2.9 32
[RouterC] ip prefix-list routerc index 30 permit 3.3.3.9 32
[RouterC] ip prefix-list routerc index 40 permit 11.1.1.0 24
[RouterC] ip prefix-list routerc index 50 permit 21.1.1.0 24
[RouterC] mpls ldp
[RouterC-ldp] lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。以Router A为例:
[RouterA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 5 Ingress: 3 Transit: 3 Egress: 2
FEC In/Out Label Nexthop OutInterface/LSINDEX
1.1.1.9/32 3/-
-/1279(L)
2.2.2.9/32 -/3 10.1.1.2 GE0/0/1
1279/3 10.1.1.2 GE0/0/1
3.3.3.9/32 -/1278 10.1.1.2 GE0/0/1
1278/1278 10.1.1.2 GE0/0/1
11.1.1.0/24 1277/-
-/1277(L)
21.1.1.0/24 -/1276 10.1.1.2 GE0/0/1
1276/1276 10.1.1.2 GE0/0/1
# 在Router A上检测Router A到Router C的LDP LSP的可达性。
[RouterA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS ping FEC 21.1.1.0/24 with 100 bytes of data:
100 bytes from 20.1.1.2: Sequence=1 time=1 ms
100 bytes from 20.1.1.2: Sequence=2 time=1 ms
100 bytes from 20.1.1.2: Sequence=3 time=8 ms
100 bytes from 20.1.1.2: Sequence=4 time=2 ms
100 bytes from 20.1.1.2: Sequence=5 time=1 ms
--- Ping statistics for FEC 21.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/2/8 ms
# 在Router C上检测Router C到Router A的LDP LSP的可达性。
[RouterC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS ping FEC 11.1.1.0/24 with 100 bytes of data:
100 bytes from 10.1.1.1: Sequence=1 time=1 ms
100 bytes from 10.1.1.1: Sequence=2 time=1 ms
100 bytes from 10.1.1.1: Sequence=3 time=1 ms
100 bytes from 10.1.1.1: Sequence=4 time=1 ms
100 bytes from 10.1.1.1: Sequence=5 time=1 ms
--- Ping statistics for FEC 11.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/1/1 ms
11.1.1.0/24和21.1.1.0/24网段之间存在两条路径:Router A—Router B—Router C和Router A—Router D—Router C。通过配置标签接受控制策略,实现只沿着路径Router A—Router B—Router C建立LSP,11.1.1.0/24和21.1.1.0/24网段之间互访的报文通过该LSP进行MPLS转发。
(1) 在各台路由器上配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPF。
(2) 在各台路由器上启动LDP协议。
(3) 在各台路由器上配置LSP触发策略,使得目的地址为11.1.1.0/24和21.1.1.0/24的路由表项能够触发LDP建立LSP。
(4) 配置标签接受控制策略,使得LDP仅沿着路径Router A—Router B—Router C建立LSP。具体配置方法为:
¡ Router A只接受Router B通告的FEC目的地址为21.1.1.0/24的FEC—标签映射;Router A拒绝Router D通告的FEC目的地址为21.1.1.0/24的FEC—标签映射。
¡ Router C只接受Router B通告的FEC目的地址为11.1.1.0/24的FEC—标签映射;Router C拒绝Router D通告的FEC目的地址为11.1.1.0/24的FEC—标签映射。
· 配置各接口的IP地址
按照图1-12配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
· 配置OSPF
在各台路由器上配置OSPF,以保证各路由器之间路由可达,具体配置过程略。
(1) 使能MPLS和LDP功能
# 配置Router A。
<RouterA> system-view
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp enable
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] mpls enable
[RouterA-GigabitEthernet0/0/2] mpls ldp enable
[RouterA-GigabitEthernet0/0/2] quit
# 配置Router B。
<RouterB> system-view
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp enable
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp enable
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
<RouterC> system-view
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp enable
[RouterC-GigabitEthernet0/0/1] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] mpls enable
[RouterC-GigabitEthernet0/0/2] mpls ldp enable
[RouterC-GigabitEthernet0/0/2] quit
# 配置Router D。
<RouterD> system-view
[RouterD] mpls lsr-id 4.4.4.9
[RouterD] mpls ldp
[RouterD-ldp] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] mpls enable
[RouterD-GigabitEthernet0/0/1] mpls ldp enable
[RouterD-GigabitEthernet0/0/1] quit
[RouterD] interface gigabitethernet 0/0/2
[RouterD-GigabitEthernet0/0/2] mpls enable
[RouterD-GigabitEthernet0/0/2] mpls ldp enable
[RouterD-GigabitEthernet0/0/2] quit
(2) 配置LSP触发策略
# 在Router A上创建IP地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterA] ip prefix-list routera index 10 permit 11.1.1.0 24
[RouterA] ip prefix-list routera index 20 permit 21.1.1.0 24
[RouterA] mpls ldp
[RouterA-ldp] lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IP地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterB] ip prefix-list routerb index 10 permit 11.1.1.0 24
[RouterB] ip prefix-list routerb index 20 permit 21.1.1.0 24
[RouterB] mpls ldp
[RouterB-ldp] lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IP地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterC] ip prefix-list routerc index 10 permit 11.1.1.0 24
[RouterC] ip prefix-list routerc index 20 permit 21.1.1.0 24
[RouterC] mpls ldp
[RouterC-ldp] lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 在Router D上创建IP地址前缀列表routerd,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterD] ip prefix-list routerd index 10 permit 11.1.1.0 24
[RouterD] ip prefix-list routerd index 20 permit 21.1.1.0 24
[RouterD] mpls ldp
[RouterD-ldp] lsp-trigger prefix-list routerd
[RouterD-ldp] quit
(3) 配置标签接受控制策略
# 在Router A上创建允许21.1.1.0/24通过的IP地址前缀列表prefix-from-b,该列表用来过滤Router B通告给Router A的FEC—标签映射。
[RouterA] ip prefix-list prefix-from-b index 10 permit 21.1.1.0 24
# 在Router A上创建拒绝21.1.1.0/24通过的IP地址前缀列表prefix-from-d,该列表用来过滤Router D通告给Router A的FEC—标签映射。
[RouterA] ip prefix-list prefix-from-d index 10 deny 21.1.1.0 24
# 在Router A上配置过滤Router B和Router D通告的FEC—标签映射的标签接受控制策略。
[RouterA] mpls ldp
[RouterA-ldp] accept-label peer 2.2.2.9 prefix-list prefix-from-b
[RouterA-ldp] accept-label peer 4.4.4.9 prefix-list prefix-from-d
[RouterA-ldp] quit
# 在Router C上创建允许11.1.1.0/24通过的IP地址前缀列表prefix-from-b,该列表用来过滤Router B通告给Router C的FEC—标签映射。
[RouterC] ip prefix-list prefix-from-b index 10 permit 11.1.1.0 24
# 在Router C上创建拒绝11.1.1.0/24通过的IP地址前缀列表prefix-from-d,该列表用来过滤Router D通告给Router C的FEC—标签映射。
[RouterC] ip prefix-list prefix-from-d index 10 deny 11.1.1.0 24
# 在Router C上配置过滤Router B和Router D通告的FEC—标签映射的标签接受控制策略。
[RouterC] mpls ldp
[RouterC-ldp] accept-label peer 2.2.2.9 prefix-list prefix-from-b
[RouterC-ldp] accept-label peer 4.4.4.9 prefix-list prefix-from-d
[RouterC-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。以Router A为例,在Router A上FEC目的地址为21.1.1.0/24的LSP的下一跳为Router B(地址为10.1.1.2),即只沿着路径Router A—Router B—Router C建立了LSP,路径Router A—Router D—Router C上未建立LSP。
[RouterA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit 1 Egress: 1
FEC In/Out Label Nexthop OutInterface/LSINDEX
11.1.1.0/24 1277/-
-/1148(L)
21.1.1.0/24 -/1276 10.1.1.2 GE0/0/1
1276/1276 10.1.1.2 GE0/0/1
# 在Router A上检测Router A到Router C的LDP LSP的可达性。
[RouterA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS ping FEC 21.1.1.0/24 with 100 bytes of data:
100 bytes from 20.1.1.2: Sequence=1 time=1 ms
100 bytes from 20.1.1.2: Sequence=2 time=1 ms
100 bytes from 20.1.1.2: Sequence=3 time=8 ms
100 bytes from 20.1.1.2: Sequence=4 time=2 ms
100 bytes from 20.1.1.2: Sequence=5 time=1 ms
--- Ping statistics for FEC 21.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/2/8 ms
# 在Router C上检测Router C到Router A的LDP LSP的可达性。
[RouterC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS ping FEC 11.1.1.0/24 with 100 bytes of data:
100 bytes from 10.1.1.1: Sequence=1 time=1 ms
100 bytes from 10.1.1.1: Sequence=2 time=1 ms
100 bytes from 10.1.1.1: Sequence=3 time=1 ms
100 bytes from 10.1.1.1: Sequence=4 time=1 ms
100 bytes from 10.1.1.1: Sequence=5 time=1 ms
--- Ping statistics for FEC 11.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/1/1 ms
11.1.1.0/24和21.1.1.0/24网段之间存在两条路径:Router A—Router B—Router C和Router A—Router D—Router C。通过配置标签通告控制策略,实现只沿着路径Router A—Router B—Router C建立LSP,11.1.1.0/24和21.1.1.0/24网段之间互访的报文通过该LSP进行MPLS转发。
(1) 在各台路由器上配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPF。
(2) 在各台路由器上启动LDP协议。
(3) 在各台路由器上配置LSP触发策略,使得目的地址为11.1.1.0/24和21.1.1.0/24的路由表项能够触发LDP建立LSP。
(4) 配置标签通告控制策略,使得LDP仅沿着路径Router A—Router B—Router C建立LSP。具体配置方法为:
¡ Router A只将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Router B;Router A不通告任何其他的FEC—标签映射。
¡ Router C只将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Router B;Router C不通告任何其他的FEC—标签映射。
¡ Router D不将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Router A;Router D不将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Router C。
· 配置各接口的IP地址
按照图1-13配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
· 配置OSPF
在各台路由器上配置OSPF,以保证各路由器之间路由可达,具体配置过程略。
(1) 使能MPLS和LDP功能
# 配置Router A。
<RouterA> system-view
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp enable
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] mpls enable
[RouterA-GigabitEthernet0/0/2] mpls ldp enable
[RouterA-GigabitEthernet0/0/2] quit
# 配置Router B。
<RouterB> system-view
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp enable
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp enable
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
<RouterC> system-view
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp enable
[RouterC-GigabitEthernet0/0/1] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] mpls enable
[RouterC-GigabitEthernet0/0/2] mpls ldp enable
[RouterC-GigabitEthernet0/0/2] quit
# 配置Router D。
<RouterD> system-view
[RouterD] mpls lsr-id 4.4.4.9
[RouterD] mpls ldp
[RouterD-ldp] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] mpls enable
[RouterD-GigabitEthernet0/0/1] mpls ldp enable
[RouterD-GigabitEthernet0/0/1] quit
[RouterD] interface gigabitethernet 0/0/2
[RouterD-GigabitEthernet0/0/2] mpls enable
[RouterD-GigabitEthernet0/0/2] mpls ldp enable
[RouterD-GigabitEthernet0/0/2] quit
(2) 配置LSP触发策略
# 在Router A上创建IP地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterA] ip prefix-list routera index 10 permit 11.1.1.0 24
[RouterA] ip prefix-list routera index 20 permit 21.1.1.0 24
[RouterA] mpls ldp
[RouterA-ldp] lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IP地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterB] ip prefix-list routerb index 10 permit 11.1.1.0 24
[RouterB] ip prefix-list routerb index 20 permit 21.1.1.0 24
[RouterB] mpls ldp
[RouterB-ldp] lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IP地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterC] ip prefix-list routerc index 10 permit 11.1.1.0 24
[RouterC] ip prefix-list routerc index 20 permit 21.1.1.0 24
[RouterC] mpls ldp
[RouterC-ldp] lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 在Router D上创建IP地址前缀列表routerd,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[RouterD] ip prefix-list routerd index 10 permit 11.1.1.0 24
[RouterD] ip prefix-list routerd index 20 permit 21.1.1.0 24
[RouterD] mpls ldp
[RouterD-ldp] lsp-trigger prefix-list routerd
[RouterD-ldp] quit
(3) 配置标签通告控制策略
# 在Router A上创建允许11.1.1.0/24通过的IP地址前缀列表prefix-to-b,该列表用来过滤通告给Router B的FEC—标签映射。
[RouterA] ip prefix-list prefix-to-b index 10 permit 11.1.1.0 24
# 在Router A上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[RouterA] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Router A上配置标签通告控制策略:只将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Router B。
[RouterA] mpls ldp
[RouterA-ldp] advertise-label prefix-list prefix-to-b peer peer-b
[RouterA-ldp] quit
# 在Router C上创建允许21.1.1.0/24通过的IP地址前缀列表prefix-to-b,该列表用来过滤通告给Router B的FEC—标签映射。
[RouterC] ip prefix-list prefix-to-b index 10 permit 21.1.1.0 24
# 在Router C上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[RouterC] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Router C上配置标签通告控制策略:只将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Router B。
[RouterC] mpls ldp
[RouterC-ldp] advertise-label prefix-list prefix-to-b peer peer-b
[RouterC-ldp] quit
# 在Router D上创建拒绝21.1.1.0/24通过的IP地址前缀列表prefix-to-a,该列表用来过滤通告给Router A的FEC—标签映射。
[RouterD] ip prefix-list prefix-to-a index 10 deny 21.1.1.0 24
[RouterD] ip prefix-list prefix-to-a index 20 permit 0.0.0.0 0 less-equal 32
# 在Router D上创建允许1.1.1.9/32通过的IP地址前缀列表peer-a,该列表用来过滤LDP对等体。
[RouterD] ip prefix-list peer-a index 10 permit 1.1.1.9 32
# 在Router D上创建拒绝11.1.1.0/24通过的IP地址前缀列表prefix-to-c,该列表用来过滤通告给Router C的FEC—标签映射。
[RouterD] ip prefix-list prefix-to-c index 10 deny 11.1.1.0 24
[RouterD] ip prefix-list prefix-to-c index 20 permit 0.0.0.0 0 less-equal 32
# 在Router D上创建允许3.3.3.9/32通过的IP地址前缀列表peer-c,该列表用来过滤LDP对等体。
[RouterD] ip prefix-list peer-c index 10 permit 3.3.3.9 32
# 在Router D上配置标签通告控制策略:不将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Router A;不将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Router C。
[RouterD] mpls ldp
[RouterD-ldp] advertise-label prefix-list prefix-to-a peer peer-a
[RouterD-ldp] advertise-label prefix-list prefix-to-c peer peer-c
[RouterD-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。Router A和Router C只接收到Router B通告的FEC—标签映射;Router B接收到了Router A和Router C通告的FEC—标签映射; Router D没有接收到Router A和Router C通告的FEC—标签映射;即只沿着路径Router A—Router B—Router C建立了LSP。
[RouterA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit: 1 Egress: 1
FEC In/Out Label Nexthop OutInterface/LSINDEX
11.1.1.0/24 1277/-
-/1151(L)
-/1277(L)
21.1.1.0/24 -/1276 10.1.1.2 GE0/0/1
1276/1276 10.1.1.2 GE0/0/1
[RouterB] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 2 Transit: 2 Egress: 0
FEC In/Out Label Nexthop OutInterface/LSINDEX
11.1.1.0/24 -/1277 10.1.1.1 GE0/0/1
1277/1277 10.1.1.1 GE0/0/1
21.1.1.0/24 -/1149 20.1.1.2 GE0/0/2
1276/1149 20.1.1.2 GE0/0/2
[RouterC] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit: 1 Egress: 1
FEC In/Out Label Nexthop OutInterface/LSINDEX
11.1.1.0/24 -/1277 20.1.1.1 GE0/0/1
1148/1277 20.1.1.1 GE0/0/1
21.1.1.0/24 1149/-
-/1276(L)
-/1150(L)
[RouterD] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 0 Transit: 0 Egress: 2
FEC In/Out Label Nexthop OutInterface/LSINDEX
11.1.1.0/24 1151/-
-/1277(L)
21.1.1.0/24 1150/-
# 在Router A上检测Router A到Router C的LDP LSP的可达性。
[RouterA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS ping FEC 21.1.1.0/24 with 100 bytes of data:
100 bytes from 20.1.1.2: Sequence=1 time=1 ms
100 bytes from 20.1.1.2: Sequence=2 time=1 ms
100 bytes from 20.1.1.2: Sequence=3 time=8 ms
100 bytes from 20.1.1.2: Sequence=4 time=2 ms
100 bytes from 20.1.1.2: Sequence=5 time=1 ms
--- Ping statistics for FEC 21.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/2/8 ms
# 在Router C上检测Router C到Router A的LDP LSP的可达性。
[RouterC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS ping FEC 11.1.1.0/24 with 100 bytes of data:
100 bytes from 10.1.1.1: Sequence=1 time=1 ms
100 bytes from 10.1.1.1: Sequence=2 time=1 ms
100 bytes from 10.1.1.1: Sequence=3 time=1 ms
100 bytes from 10.1.1.1: Sequence=4 time=1 ms
100 bytes from 10.1.1.1: Sequence=5 time=1 ms
--- Ping statistics for FEC 11.1.1.0/24 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
Round-trip min/avg/max = 1/1/1 ms
Router S、Router A和Router D属于同一OSPF区域,通过OSPF协议实现网络互连。在Router S—Router D、Router S—Router A—Router D两条路径上利用LDP分别建立主LSP和备份LSP,实现:
· 当Router S—Router D这条LSP正常工作时,11.1.1.0/24和21.1.1.0/24两个网段之间的流量通过该LSP传输。
· 当Router S—Router D这条LSP出现故障时,11.1.1.0/24和21.1.1.0/24两个网段之间的流量快速切换到Router S—Router A—Router D这条备份LSP上传输。
· 在各台路由器上配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPF。
· 在各台路由器上启动LDP协议。
· 在各台路由器上配置LSP触发策略,使得目的地址为11.1.1.0/24和21.1.1.0/24的路由表项能够触发LDP建立LSP。
· 为了建立备份LSP,在Router S和Router D上需要配置OSPF快速重路由。
· 配置各接口的IP地址
按照图1-14配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
· 配置OSPF
在各台路由器上配置OSPF,以保证各路由器之间路由可达,具体配置过程略。
(1) 配置OSPF快速重路由
OSPF快速重路由有两种配置方法,可以任选一种。
方法一:使能Router S和Router D的OSPF快速重路由功能(通过LFA算法选取备份下一跳信息)
# 配置Router S。
<RouterS> system-view
[RouterS] bfd echo-source-ip 10.10.10.10
[RouterS] ospf 1
[RouterS-ospf-1] fast-reroute lfa
[RouterS-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bfd echo-source-ip 11.11.11.11
[RouterD] ospf 1
[RouterD-ospf-1] fast-reroute lfa
[RouterD-ospf-1] quit
方法二:使能Router S和Router D的OSPF快速重路由功能(通过路由策略指定备份下一跳)
# 配置Router S。
<RouterS> system-view
[RouterS] bfd echo-source-ip 10.10.10.10
[RouterS] ip prefix-list abc index 10 permit 21.1.1.0 24
[RouterS] route-policy frr permit node 10
[RouterS-route-policy-frr-10] if-match ip address prefix-list abc
[RouterS-route-policy-frr-10] apply fast-reroute backup-interface gigabitethernet 0/0/1 backup-nexthop 12.12.12.2
[RouterS-route-policy-frr-10] quit
[RouterS] ospf 1
[RouterS-ospf-1] fast-reroute route-policy frr
[RouterS-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bfd echo-source-ip 10.10.10.10
[RouterD] ip prefix-list abc index 10 permit 11.1.1.0 24
[RouterD] route-policy frr permit node 10
[RouterD-route-policy-frr-10] if-match ip address prefix-list abc
[RouterD-route-policy-frr-10] apply fast-reroute backup-interface gigabitethernet 0/0/1 backup-nexthop 24.24.24.2
[RouterD-route-policy-frr-10] quit
[RouterD] ospf 1
[RouterD-ospf-1] fast-reroute route-policy frr
[RouterD-ospf-1] quit
(2) 使能MPLS和MPLS LDP功能
# 配置Router S。
[RouterS] mpls lsr-id 1.1.1.1
[RouterS] mpls ldp
[RouterS-mpls-ldp] quit
[RouterS] interface gigabitethernet 0/0/1
[RouterS-GigabitEthernet0/0/1] mpls enable
[RouterS-GigabitEthernet0/0/1] mpls ldp enable
[RouterS-GigabitEthernet0/0/1] quit
[RouterS] interface gigabitethernet 0/0/2
[RouterS-GigabitEthernet0/0/2] mpls enable
[RouterS-GigabitEthernet0/0/2] mpls ldp enable
[RouterS-GigabitEthernet0/0/2] quit
# 配置Router D。
[RouterD] mpls lsr-id 3.3.3.3
[RouterD] mpls ldp
[RouterD-mpls-ldp] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] mpls enable
[RouterD-GigabitEthernet0/0/1] mpls ldp enable
[RouterD-GigabitEthernet0/0/1] quit
[RouterD] interface gigabitethernet 0/0/2
[RouterD-GigabitEthernet0/0/2] mpls enable
[RouterD-GigabitEthernet0/0/2] mpls ldp enable
[RouterD-GigabitEthernet0/0/2] quit
# 配置Router A。
[RouterA] mpls lsr-id 2.2.2.2
[RouterA] mpls ldp
[RouterA-mpls-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp enable
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] mpls enable
[RouterA-GigabitEthernet0/0/2] mpls ldp enable
[RouterA-GigabitEthernet0/0/2] quit
(3) 配置LSP的触发建立策略为所有静态路由和IGP路由项都能触发LDP建立LSP
# 配置Router S。
[RouterS] mpls ldp
[RouterS-ldp] lsp-trigger all
[RouterS-ldp] quit
# 配置Router D。
[RouterD] mpls ldp
[RouterD-ldp] lsp-trigger all
[RouterD-ldp] quit
# 配置Router A。
[RouterA] mpls ldp
[RouterA-ldp] lsp-trigger all
[RouterA-ldp] quit
# 在Router S和Router D上执行display mpls ldp lsp命令,可以看到Router S和Router D之间建立了主备LSP(在Out Label后存在“B”,表示该LSP为备份LSP)。以Router S为例:
[RouterS] display mpls ldp lsp 21.1.1.0 24
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 1 Ingress: 2 Transit: 2 Egress: 0
FEC In/Out Label Nexthop OutInterface/LSINDEX
21.1.1.0/24 -/1276 13.13.13.2 GE0/0/2
2174/1276 13.13.13.2 GE0/0/2
-/1276(B) 12.12.12.2 GE0/0/1
2174/1276(B) 12.12.12.2 GE0/0/1
· Router A、Router B和Router C均支持MPLS。
· 在Router A和Router C之间使用LDP动态建立IPv6 LSP,使11::0/64和21::0/64这两个网段中互访的报文能够通过MPLS进行传输。
· Router A、Router B和Router C上只允许目的地址为100::1/128、100::2/128、100::3/128、11::0/64和21::0/64的路由表项触发LDP建立IPv6 LSP,其他路由表项不能触发LDP建立IPv6 LSP,以避免建立的IPv6 LSP数量过多,影响设备性能。
图1-15 利用LDP动态建立IPv6 LSP配置组网图
· LDP根据路由信息动态分配标签,因此,利用LDP动态建立IPv6 LSP时,需要配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPFv3。
· 在各台路由器上启动LDP协议。
· 为了控制建立的IPv6 LSP数量,在Router A、Router B和Router C上需要配置IPv6 LSP触发策略。
按照图1-15配置各接口IPv6地址和前缀长度,包括Loopback接口,具体配置过程略。
(1) 配置OSPFv3,以保证各路由器之间路由可达
# 配置Router A。
<RouterA> system-view
[RouterA] ospfv3
[RouterA-ospfv3-1] router-id 1.1.1.9
[RouterA-ospfv3-1] area 0
[RouterA-ospfv3-1-area-0.0.0.0] quit
[RouterA-ospfv3-1] quit
[RouterA] interface loopback 0
[RouterA-LoopBack0] ospfv3 1 area 0.0.0.0
[RouterA-LoopBack0] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ospfv3 1 area 0.0.0.0
[RouterA-GigabitEthernet0/0/2] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] ospfv3 1 area 0.0.0.0
[RouterA-GigabitEthernet0/0/1] quit
# 配置Router B。
<RouterB> system-view
[RouterB] ospfv3
[RouterB-ospfv3-1] router-id 2.2.2.9
[RouterB-ospfv3-1] area 0
[RouterB-ospfv3-1-area-0.0.0.0] quit
[RouterB-ospfv3-1] quit
[RouterB] interface loopback 0
[RouterB-LoopBack0] ospfv3 1 area 0.0.0.0
[RouterB-LoopBack0] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] ospfv3 1 area 0.0.0.0
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ospfv3 1 area 0.0.0.0
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospfv3
[RouterC-ospfv3-1] router-id 3.3.3.9
[RouterC-ospfv3-1] area 0
[RouterC-ospfv3-1-area-0.0.0.0] quit
[RouterC-ospfv3-1] quit
[RouterC] interface loopback 0
[RouterC-LoopBack0] ospfv3 1 area 0.0.0.0
[RouterC-LoopBack0] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] ospfv3 1 area 0.0.0.0
[RouterC-GigabitEthernet0/0/2] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] ospfv3 1 area 0.0.0.0
[RouterC-GigabitEthernet0/0/1] quit
# 配置完成后,在各路由器上执行display ipv6 routing-table命令,可以看到相互之间都学到了到对方的主机路由。以Router A为例:
[RouterA] display ipv6 routing-table
Destinations : 11 Routes : 11
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 10::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 11::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/2 Cost : 0
Destination: 11::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 20::/64 Protocol : O_INTRA
NextHop : FE80::20C:29FF:FE9D:EAC0 Preference: 10
Interface : GE1/0/1 Cost : 2
Destination: 21::/64 Protocol : O_INTRA
NextHop : FE80::20C:29FF:FE9D:EAC0 Preference: 10
Interface : GE1/0/1 Cost : 3
Destination: 100::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 100::2/128 Protocol : O_INTRA
NextHop : FE80::20C:29FF:FE9D:EAC0 Preference: 10
Interface : GE1/0/1 Cost : 1
Destination: 100::3/128 Protocol : O_INTRA
NextHop : FE80::20C:29FF:FE9D:EAC0 Preference: 10
Interface : GE1/0/1 Cost : 2
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : InLoop0 Cost : 0
(2) 使能MPLS和LDP IPv6功能
# 配置Router A。
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterA-GigabitEthernet0/0/1] mpls ldp transport-address 10::1
[RouterA-GigabitEthernet0/0/1] quit
# 配置Router B。
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/1] mpls ldp transport-address 10::2
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/2] mpls ldp transport-address 20::1
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterC-GigabitEthernet0/0/1] mpls ldp transport-address 20::2
[RouterC-GigabitEthernet0/0/1] quit
(3) 配置IPv6 LSP触发策略
# 在Router A上创建IPv6地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterA] ipv6 prefix-list routera index 10 permit 100::1 128
[RouterA] ipv6 prefix-list routera index 20 permit 100::2 128
[RouterA] ipv6 prefix-list routera index 30 permit 100::3 128
[RouterA] ipv6 prefix-list routera index 40 permit 11::0 64
[RouterA] ipv6 prefix-list routera index 50 permit 21::0 64
[RouterA] mpls ldp
[RouterA-ldp] ipv6 lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IPv6地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterB] ipv6 prefix-list routerb index 10 permit 100::1 128
[RouterB] ipv6 prefix-list routerb index 20 permit 100::2 128
[RouterB] ipv6 prefix-list routerb index 30 permit 100::3 128
[RouterB] ipv6 prefix-list routerb index 40 permit 11::0 64
[RouterB] ipv6 prefix-list routerb index 50 permit 21::0 64
[RouterB] mpls ldp
[RouterB-ldp] ipv6 lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IPv6地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterC] ipv6 prefix-list routerc index 10 permit 100::1 128
[RouterC] ipv6 prefix-list routerc index 20 permit 100::2 128
[RouterC] ipv6 prefix-list routerc index 30 permit 100::3 128
[RouterC] ipv6 prefix-list routerc index 40 permit 11::0 64
[RouterC] ipv6 prefix-list routerc index 50 permit 21::0 64
[RouterC] mpls ldp
[RouterC-ldp] ipv6 lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp ipv6命令,可以看到LDP IPv6 LSP的建立情况。以Router A为例:
[RouterA] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 5 Ingress: 3 Transit: 3 Egress: 2
FEC: 11::/64
In/Out Label: 2426/- OutInterface : -
Nexthop : -
In/Out Label: -/2424(L) OutInterface : -
Nexthop : -
FEC: 21::/64
In/Out Label: -/2425 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
In/Out Label: 2423/2425 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
FEC: 100::1/128
In/Out Label: 1040377/- OutInterface : -
Nexthop : -
In/Out Label: -/2426(L) OutInterface : -
Nexthop : -
FEC: 100::2/128
In/Out Label: -/1040379 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
In/Out Label: 2425/1040379 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
FEC: 100::3/128
In/Out Label: -/2427 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
In/Out Label: 2424/2427 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
# 在Router A上检测Router A到Router C的LDP IPv6 LSP的可达性。
[RouterA] ping ipv6 -a 11::1 21::1
Ping6(56 data bytes) 11::1 --> 21::1, press CTRL_C to break
56 bytes from 21::1, icmp_seq=0 hlim=63 time=2.000 ms
56 bytes from 21::1, icmp_seq=1 hlim=63 time=1.000 ms
56 bytes from 21::1, icmp_seq=2 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=3 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=4 hlim=63 time=2.000 ms
--- Ping6 statistics for 21::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/2.200/3.000/0.748 ms
# 在Router C上检测Router C到Router A的LDP IPv6 LSP的可达性。
[RouterC] ping ipv6 -a 21::1 11::1
Ping6(56 data bytes) 21::1 --> 11::1, press CTRL_C to break
56 bytes from 11::1, icmp_seq=0 hlim=63 time=2.000 ms
56 bytes from 11::1, icmp_seq=1 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=2 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=3 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 11::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.200/2.000/0.400 ms
11::0/64和21::0/64网段之间存在两条路径:Router A—Router B—Router C和Router A—Router D—Router C。通过配置IPv6 FEC标签接受控制策略,实现只沿着路径Router A—Router B—Router C建立IPv6 LSP,11::0/64和21::0/64网段之间互访的报文通过该IPv6 LSP进行MPLS转发。
图1-16 IPv6 FEC标签接受控制策略配置组网图
(1) 在各台路由器上配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPFv3。
(2) 在各台路由器上启动LDP协议。
(3) 在各台路由器上配置IPv6 LSP触发策略,使得目的地址为11::0/64和21::0/64的路由表项能够触发LDP建立IPv6 LSP。
(4) 配置IPv6标签接受控制策略,使得LDP仅沿着路径Router A—Router B—Router C建立LSP。具体配置方法为:
¡ Router A只接受Router B通告的FEC目的地址为21::0/64的FEC—标签映射;Router A拒绝Router D通告的FEC目的地址为21::0/64的FEC—标签映射。
¡ Router C只接受Router B通告的FEC目的地址为11::0/64的FEC—标签映射;Router C拒绝Router D通告的FEC目的地址为11::0/64的FEC—标签映射。
· 配置各接口的IPv6地址
按照图1-16配置各接口IPv6地址和前缀长度,包括Loopback接口,具体配置过程略。
· 配置OSPFv3
在各台路由器上配置OSPFv3,以保证各路由器之间路由可达,具体配置过程略。
(1) 使能MPLS和LDP IPv6功能
# 配置Router A。
<RouterA> system-view
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterA-GigabitEthernet0/0/1] mpls ldp transport-address 10::1
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] mpls enable
[RouterA-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterA-GigabitEthernet0/0/2] mpls ldp transport-address 30::1
[RouterA-GigabitEthernet0/0/2] quit
# 配置Router B。
<RouterB> system-view
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/1] mpls ldp transport-address 10::2
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/2] mpls ldp transport-address 20::1
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
<RouterC> system-view
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterC-GigabitEthernet0/0/1] mpls ldp transport-address 20::2
[RouterC-GigabitEthernet0/0/1] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] mpls enable
[RouterC-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterC-GigabitEthernet0/0/2] mpls ldp transport-address 40::2
[RouterC-GigabitEthernet0/0/2] quit
# 配置Router D。
<RouterD> system-view
[RouterD] mpls lsr-id 4.4.4.9
[RouterD] mpls ldp
[RouterD-ldp] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] mpls enable
[RouterD-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterD-GigabitEthernet0/0/1] mpls ldp transport-address 30::2
[RouterD-GigabitEthernet0/0/1] quit
[RouterD] interface gigabitethernet 0/0/2
[RouterD-GigabitEthernet0/0/2] mpls enable
[RouterD-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterD-GigabitEthernet0/0/2] mpls ldp transport-address 40::1
[RouterD-GigabitEthernet0/0/2] quit
(2) 配置IPv6 LSP触发策略
# 在Router A上创建IPv6地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterA] ipv6 prefix-list routera index 10 permit 11::0 64
[RouterA] ipv6 prefix-list routera index 20 permit 21::0 64
[RouterA] mpls ldp
[RouterA-ldp] ipv6 lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IPv6地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterB] ipv6 prefix-list routerb index 10 permit 11::0 64
[RouterB] ipv6 prefix-list routerb index 20 permit 21::0 64
[RouterB] mpls ldp
[RouterB-ldp] ipv6 lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IPv6地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterC] ipv6 prefix-list routerc index 10 permit 11::0 64
[RouterC] ipv6 prefix-list routerc index 20 permit 21::0 64
[RouterC] mpls ldp
[RouterC-ldp] ipv6 lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 在Router D上创建IPv6地址前缀列表routerd,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterD] ipv6 prefix-list routerd index 10 permit 11::0 64
[RouterD] ipv6 prefix-list routerd index 20 permit 21::0 64
[RouterD] mpls ldp
[RouterD-ldp] ipv6 lsp-trigger prefix-list routerd
[RouterD-ldp] quit
(3) 配置IPv6标签接受控制策略
# 在Router A上创建允许21::0/64通过的IPv6地址前缀列表prefix-from-b,该列表用来过滤Router B通告给Router A的FEC—标签映射。
[RouterA] ipv6 prefix-list prefix-from-b index 10 permit 21::0 64
# 在Router A上创建拒绝21::0/64通过的IPv6地址前缀列表prefix-from-d,该列表用来过滤Router D通告给Router A的FEC—标签映射。
[RouterA] ipv6 prefix-list prefix-from-d index 10 deny 21::0 64
# 在Router A上配置过滤Router B和Router D通告的FEC—标签映射的IPv6标签接受控制策略。
[RouterA] mpls ldp
[RouterA-ldp] ipv6 accept-label peer 2.2.2.9 prefix-list prefix-from-b
[RouterA-ldp] ipv6 accept-label peer 4.4.4.9 prefix-list prefix-from-d
[RouterA-ldp] quit
# 在Router C上创建允许11::0/64通过的IPv6地址前缀列表prefix-from-b,该列表用来过滤Router B通告给Router C的FEC—标签映射。
[RouterC] ipv6 prefix-list prefix-from-b index 10 permit 11::0 64
# 在Router C上创建拒绝11::0/64通过的IPv6地址前缀列表prefix-from-d,该列表用来过滤Router D通告给Router C的FEC—标签映射。
[RouterC] ipv6 prefix-list prefix-from-d index 10 deny 11::0 64
# 在Router C上配置过滤Router B和Router D通告的FEC—标签映射的IPv6标签接受控制策略。
[RouterC] mpls ldp
[RouterC-ldp] ipv6 accept-label peer 2.2.2.9 prefix-list prefix-from-b
[RouterC-ldp] ipv6 accept-label peer 4.4.4.9 prefix-list prefix-from-d
[RouterC-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp ipv6命令,可以看到LDP IPv6 LSP的建立情况。以Router A为例,在Router A上FEC目的地址为21::0/64的IPv6 LSP的下一跳为Router B(地址为FE80::20C:29FF:FE9D:EAC0),即只沿着路径Router A—Router B—Router C建立了IPv6 LSP,路径Router A—Router D—Router C上未建立IPv6 LSP。
[RouterA] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit 1 Egress: 1
FEC: 11::/64
In/Out Label: 2417/- OutInterface : -
Nexthop : -
FEC: 21::/64
In/Out Label: -/2416 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
In/Out Label: 2415/2416 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
# 在Router A上检测Router A到Router C的LDP IPv6 LSP的可达性。
[RouterA] ping ipv6 -a 11::1 21::1
Ping6(56 data bytes) 11::1 --> 21::1, press CTRL_C to break
56 bytes from 21::1, icmp_seq=0 hlim=63 time=4.000 ms
56 bytes from 21::1, icmp_seq=1 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=2 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=3 hlim=63 time=2.000 ms
56 bytes from 21::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 21::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/2.600/4.000/1.020 ms
# 在Router C上检测Router C到Router A的LDP IPv6 LSP的可达性。
[RouterC] ping ipv6 -a 21::1 11::1
Ping6(56 data bytes) 21::1 --> 11::1, press CTRL_C to break
56 bytes from 11::1, icmp_seq=0 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=1 hlim=63 time=2.000 ms
56 bytes from 11::1, icmp_seq=2 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=3 hlim=63 time=2.000 ms
56 bytes from 11::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 11::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.400/2.000/0.490 ms
11::0/64和21::0/64网段之间存在两条路径:Router A—Router B—Router C和Router A—Router D—Router C。通过配置标签通告控制策略,实现只沿着路径Router A—Router B—Router C建立IPv6 LSP,11::0/64和21::0/64网段之间互访的报文通过该IPv6 LSP进行MPLS转发。
图1-17 IPv6 FEC标签通告控制策略配置组网图
(1) 在各台路由器上配置路由协议,使得各路由器之间路由可达。本例中,采用的路由协议为OSPFv3。
(2) 在各台路由器上启动LDP协议。
(3) 在各台路由器上配置IPv6 LSP触发策略,使得目的地址为11::0/64和21::0/64的路由表项能够触发LDP建立IPv6 LSP。
(4) 配置IPv6标签通告控制策略,使得LDP仅沿着路径Router A—Router B—Router C建立IPv6 LSP。具体配置方法为:
¡ Router A只将FEC目的地址为11::0/64的FEC—标签映射通告给Router B;Router A不通告任何其他的FEC—标签映射。
¡ Router C只将FEC目的地址为21::0/64的FEC—标签映射通告给Router B;Router C不通告任何其他的FEC—标签映射。
¡ Router D不将FEC目的地址为21::0/64的FEC—标签映射通告给Router A;Router D不将FEC目的地址为11::0/64的FEC—标签映射通告给Router C。
· 配置各接口的IPv6地址
按照图1-17配置各接口IPv6地址和前缀长度,包括Loopback接口,具体配置过程略。
· 配置OSPFv3
在各台路由器上配置OSPFv3,以保证各路由器之间路由可达,具体配置过程略。
(1) 使能MPLS和LDP IPv6功能
# 配置Router A。
<RouterA> system-view
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls ldp
[RouterA-ldp] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] mpls enable
[RouterA-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterA-GigabitEthernet0/0/1] mpls ldp transport-address 10::1
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] mpls enable
[RouterA-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterA-GigabitEthernet0/0/2] mpls ldp transport-address 30::1
[RouterA-GigabitEthernet0/0/2] quit
# 配置Router B。
<RouterB> system-view
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls ldp
[RouterB-ldp] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] mpls enable
[RouterB-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/1] mpls ldp transport-address 10::2
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] mpls enable
[RouterB-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterB-GigabitEthernet0/0/2] mpls ldp transport-address 20::1
[RouterB-GigabitEthernet0/0/2] quit
# 配置Router C。
<RouterC> system-view
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls ldp
[RouterC-ldp] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] mpls enable
[RouterC-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterC-GigabitEthernet0/0/1] mpls ldp transport-address 20::2
[RouterC-GigabitEthernet0/0/1] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] mpls enable
[RouterC-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterC-GigabitEthernet0/0/2] mpls ldp transport-address 40::2
[RouterC-GigabitEthernet0/0/2] quit
# 配置Router D。
<RouterD> system-view
[RouterD] mpls lsr-id 4.4.4.9
[RouterD] mpls ldp
[RouterD-ldp] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] mpls enable
[RouterD-GigabitEthernet0/0/1] mpls ldp ipv6 enable
[RouterD-GigabitEthernet0/0/1] mpls ldp transport-address 30::2
[RouterD-GigabitEthernet0/0/1] quit
[RouterD] interface gigabitethernet 0/0/2
[RouterD-GigabitEthernet0/0/2] mpls enable
[RouterD-GigabitEthernet0/0/2] mpls ldp ipv6 enable
[RouterD-GigabitEthernet0/0/2] mpls ldp transport-address 40::1
[RouterD-GigabitEthernet0/0/2] quit
(2) 配置IPv6 LSP触发策略
# 在Router A上创建IPv6地址前缀列表routera,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterA] ipv6 prefix-list routera index 10 permit 11::0 64
[RouterA] ipv6 prefix-list routera index 20 permit 21::0 64
[RouterA] mpls ldp
[RouterA-ldp] ipv6 lsp-trigger prefix-list routera
[RouterA-ldp] quit
# 在Router B上创建IPv6地址前缀列表routerb,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterB] ipv6 prefix-list routerb index 10 permit 11::0 64
[RouterB] ipv6 prefix-list routerb index 20 permit 21::0 64
[RouterB] mpls ldp
[RouterB-ldp] ipv6 lsp-trigger prefix-list routerb
[RouterB-ldp] quit
# 在Router C上创建IPv6地址前缀列表routerc,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterC] ipv6 prefix-list routerc index 10 permit 11::0 64
[RouterC] ipv6 prefix-list routerc index 20 permit 21::0 64
[RouterC] mpls ldp
[RouterC-ldp] ipv6 lsp-trigger prefix-list routerc
[RouterC-ldp] quit
# 在Router D上创建IPv6地址前缀列表routerd,并配置只有通过该列表过滤的路由表项能够触发LDP建立IPv6 LSP。
[RouterD] ipv6 prefix-list routerd index 10 permit 11::0 64
[RouterD] ipv6 prefix-list routerd index 20 permit 21::0 64
[RouterD] mpls ldp
[RouterD-ldp] ipv6 lsp-trigger prefix-list routerd
[RouterD-ldp] quit
(3) 配置IPv6标签通告控制策略
# 在Router A上创建允许11::0/64通过的IPv6地址前缀列表prefix-to-b,该列表用来过滤通告给Router B的FEC—标签映射。
[RouterA] ipv6 prefix-list prefix-to-b index 10 permit 11::0 64
# 在Router A上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[RouterA] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Router A上配置IPv6标签通告控制策略:只将FEC目的地址为11::0/64的FEC—标签映射通告给Router B。
[RouterA] mpls ldp
[RouterA-ldp] ipv6 advertise-label prefix-list prefix-to-b peer peer-b
[RouterA-ldp] quit
# 在Router C上创建允许21::0/64通过的IPv6地址前缀列表prefix-to-b,该列表用来过滤通告给Router B的FEC—标签映射。
[RouterC] ipv6 prefix-list prefix-to-b index 10 permit 21::0 64
# 在Router C上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[RouterC] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Router C上配置IPv6标签通告控制策略:只将FEC目的地址为21::0/64的FEC—标签映射通告给Router B。
[RouterC] mpls ldp
[RouterC-ldp] ipv6 advertise-label prefix-list prefix-to-b peer peer-b
[RouterC-ldp] quit
# 在Router D上创建拒绝21::0/64通过的IPv6地址前缀列表prefix-to-a,该列表用来过滤通告给Router A的FEC—标签映射。
[RouterD] ipv6 prefix-list prefix-to-a index 10 deny 21::0 64
[RouterD] ipv6 prefix-list prefix-to-a index 20 permit 0::0 0 less-equal 128
# 在Router D上创建允许1.1.1.9/32通过的IP地址前缀列表peer-a,该列表用来过滤LDP对等体。
[RouterD] ip prefix-list peer-a index 10 permit 1.1.1.9 32
# 在Router D上创建拒绝11::0/64通过的IPv6地址前缀列表prefix-to-c,该列表用来过滤通告给Router C的FEC—标签映射。
[RouterD] ipv6 prefix-list prefix-to-c index 10 deny 11::0 64
[RouterD] ipv6 prefix-list prefix-to-c index 20 permit 0::0 0 less-equal 128
# 在Router D上创建允许3.3.3.9/32通过的IP地址前缀列表peer-c,该列表用来过滤LDP对等体。
[RouterD] ip prefix-list peer-c index 10 permit 3.3.3.9 32
# 在Router D上配置IPv6标签通告控制策略:不将FEC目的地址为21::0/64的FEC—标签映射通告给Router A;不将FEC目的地址为11::0/64的FEC—标签映射通告给Router C。
[RouterD] mpls ldp
[RouterD-ldp] ipv6 advertise-label prefix-list prefix-to-a peer peer-a
[RouterD-ldp] ipv6 advertise-label prefix-list prefix-to-c peer peer-c
[RouterD-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp ipv6命令,可以看到LDP IPv6 LSP的建立情况。Router A和Router C只接收到Router B通告的FEC—标签映射;Router B接收到了Router A和Router C通告的FEC—标签映射; Router D没有接收到Router A和Router C通告的FEC—标签映射;即只沿着路径Router A—Router B—Router C建立了IPv6 LSP。
[RouterA] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit: 1 Egress: 1
FEC: 11::/64
In/Out Label: 2417/- OutInterface : -
Nexthop : -
In/Out Label: -/1098(L) OutInterface : -
Nexthop : -
In/Out Label: -/2418(L) OutInterface : -
Nexthop : -
FEC: 21::/64
In/Out Label: -/2416 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
In/Out Label: 2415/2416 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAC0
[RouterB] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 2 Transit: 2 Egress: 0
FEC: 11::/64
In/Out Label: -/2417 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EA8E
In/Out Label: 2418/2417 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EA8E
FEC: 21::/64
In/Out Label: -/1099 OutInterface : GE0/0/2
Nexthop : FE80::20C:29FF:FE05:1C01
In/Out Label: 2416/1099 OutInterface : GE0/0/2
Nexthop : FE80::20C:29FF:FE05:1C01
[RouterC] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 1 Transit: 1 Egress: 1
FEC: 11::/64
In/Out Label: -/2418 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAA2
In/Out Label: 1098/2418 OutInterface : GE0/0/1
Nexthop : FE80::20C:29FF:FE9D:EAA2
FEC: 21::/64
In/Out Label: 1099/- OutInterface : -
Nexthop : -
In/Out Label: -/2416(L) OutInterface : -
Nexthop : -
In/Out Label: -/1097(L) OutInterface : -
Nexthop : -
[RouterD] display mpls ldp lsp ipv6
Status Flags: * - stale, L - liberal, B - backup, N/A – unavailable
FECs: 2 Ingress: 0 Transit: 0 Egress: 2
FEC: 11::/64
In/Out Label: 1098/- OutInterface : -
Nexthop : -
FEC: 21::/64
In/Out Label: 1097/- OutInterface : -
Nexthop : -
# 在Router A上检测Router A到Router C的LDP IPv6 LSP的可达性。
[RouterA] ping ipv6 -a 11::1 21::1
Ping6(56 data bytes) 11::1 --> 21::1, press CTRL_C to break
56 bytes from 21::1, icmp_seq=0 hlim=63 time=4.000 ms
56 bytes from 21::1, icmp_seq=1 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=2 hlim=63 time=3.000 ms
56 bytes from 21::1, icmp_seq=3 hlim=63 time=2.000 ms
56 bytes from 21::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 21::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/2.600/4.000/1.020 ms
# 在Router C上检测Router C到Router A的LDP IPv6 LSP的可达性。
[RouterC] ping ipv6 -a 21::1 11::1
Ping6(56 data bytes) 21::1 --> 11::1, press CTRL_C to break
56 bytes from 11::1, icmp_seq=0 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=1 hlim=63 time=2.000 ms
56 bytes from 11::1, icmp_seq=2 hlim=63 time=1.000 ms
56 bytes from 11::1, icmp_seq=3 hlim=63 time=2.000 ms
56 bytes from 11::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 11::1 ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.400/2.000/0.490 ms
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!