03-LDP配置
本章节下载: 03-LDP配置 (578.00 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值时表示某个接口使用的标签空间。
FEC(Forwarding Equivalence Class,转发等价类)是MPLS中的一个重要概念。MPLS将具有相同特征(目的地相同或具有相同服务等级等)的报文归为一类,称为FEC。属于相同FEC的报文在MPLS网络中将获得完全相同的处理。
LDP支持根据目的IP地址和PW(Pseudo Wire,伪线)划分FEC。本文只介绍根据目的IP地址划分FEC。根据PW划分FEC的详细介绍,请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS”。
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能力的LSR周期性地发送Hello消息,通告自己的存在。通过Hello消息,LSR可以自动发现它周围的LSR邻居,并与其建立Hello邻接关系。
LDP对等体发现机制分为两种:
· 基本发现机制:用于发现本地直连的LSR邻居,即通过链路层直接相连的LSR。这种方式下,LSR周期性地向“子网内所有路由器”的组播地址224.0.0.2发送LDP的Link Hello消息,以便链路层直接相连的LSR发现此LSR。
· 扩展发现机制:用于发现远端非直连的LSR邻居,即不通过链路层直接相连的LSR。这种方式下,LSR周期性地向指定的IP地址发送LDP的Targeted Hello消息,以便指定IP地址对应的LSR发现此LSR。扩展发现机制主要应用于MPLS L2VPN和VPLS,详细介绍请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS”。
LSR可以与直连的邻居同时建立Link Hello和Targeted Hello两种邻接关系。
LDP对等体之间通过周期性地发送Hello消息来维护Hello邻接关系。如果Hello保持定时器超时时仍没有收到新的Hello消息,则删除Hello邻接关系。
通过交互Hello消息发现LSR邻居后,LSR开始与其建立会话。这一过程又可分为两步:
(1) 建立传输层连接,即在LSR之间建立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还可以通过发送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依然根据该表项转发报文,从而保证数据转发不中断。
· GR restarter:GR重启的LSR,指由管理员手工触发或控制平面异常而重启协议的设备,它必须具备GR能力。
· GR helper:GR restarter的邻居LSR,与重启的GR restarter保持邻居关系,并协助其恢复重启前的转发状态。
设备既可以作为GR restarter,又可以作为GR helper,设备的角色由该设备在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 NSR(Nonstop Routing,不间断路由)是一种通过在LDP协议主备进程之间备份必要的协议状态和数据(如LDP会话信息和LSP信息),使得LDP协议的主进程中断时,备份进程能够无缝地接管主进程的工作,从而确保对等体感知不到LDP协议中断,保证LDP会话保持Operational状态,并保证转发不会中断的技术。
导致LDP主进程中断的事件包括以下几种:
· LDP主进程重启
· LDP主进程所在的成员设备发生故障
· 进程分布优化为LDP进程决策出的位置不同于当前运行的位置而进行进程主备倒换
LDP NSR与LDP GR具有如下区别,请根据实际情况选择合适的方式确保数据转发不中断:
· 对设备要求不同:LDP协议的主进程和备进程运行在不同的设备上,因此LDP NSR功能必须运行在包含至少两台成员设备的IRF系统上,而LDP GR功能可以运行在单机设备上。
· 对LDP对等体的要求不同:使用LDP NSR功能时,LDP对等体不会感知本地设备发生了LDP进程的异常重启或主备倒换等故障,不需要LDP对等体协助恢复MPLS转发信息。LDP GR要求LDP对等体能够识别本地设备的GR能力标识(即能处理Initialization消息中的GR相关扩展),并且在LDP会话中断恢复时,LDP对等体能够作为GR helper协助本地设备恢复MPLS转发信息。
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快速重路由功能可以用来尽可能地缩短网络故障导致的MPLS流量中断时间。LDP快速重路由完全基于IP快速重路由,在IP快速重路由使能后,LDP快速重路由即自动使能。使能IP快速重路由有两种实现方式:
· 配置IGP协议自动计算备份下一跳
· 配置IGP协议通过路由策略指定备份下一跳
图1-6 LDP快速重路由功能示意图
如图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快速重路由的情况下,建议同时使能LDP IGP同步功能,以减少故障发生后IGP重新收敛导致的流量中断的时间。
与MPLS相关的协议规范有:
· RFC 5036:LDP Specification
表1-1 LDP配置任务简介
使能LDP能力 |
全局使能LDP能力 |
||
配置Hello消息参数 |
|||
配置LDP会话参数 |
|||
配置LDP倒退机制的延迟时间 |
|||
配置LSP触发策略 |
|||
配置LDP标签分发控制方式 |
|||
配置LDP环路检测 |
|||
配置LDP会话保护 |
|||
配置LDP快速重路由 |
|||
重启LDP会话 |
|||
使能本节点的LDP能力,或使能指定VPN实例的LDP能力 |
使能本节点的LDP能力,并进入LDP视图 |
||
使能指定VPN实例的LDP能力,为该VPN创建LDP实例,并进入LDP-VPN实例视图 |
|||
配置LDP的LSR ID |
缺省情况下,LDP的LSR ID与MPLS LSR ID相同 |
进入需要建立LDP会话的接口视图 |
如果该接口绑定了VPN实例,则需要在LDP视图下通过vpn-instance命令使能指定VPN实例的LDP能力 |
|
使能接口的LDP能力 |
LDP的Hello消息分为以下几种:
Hello消息参数包括:
· Link hello保持时间和报文发送时间间隔
· Targeted hello保持时间和报文发送时间间隔
进入建立LDP会话的接口视图 |
||
配置Link hello保持时间 |
缺省情况下,Link hello保持时间为15秒 |
|
配置Link hello报文发送时间间隔 |
缺省情况下,Link hello报文发送时间间隔为5秒 |
进入LDP视图 |
||
配置主动向指定对等体发送Targeted hello消息来建立LDP会话,允许应答指定对等体的Targeted hello消息,并进入LDP对等体视图 |
缺省情况下,设备不会主动向对等体发送Targeted hello消息,也不会应答对等体的Targeted hello消息 |
|
配置Targeted hello保持时间 |
缺省情况下,Targeted hello保持时间为45秒 |
|
配置Targeted hello报文发送时间间隔 |
缺省情况下,Targeted hello报文发送时间间隔为15秒 |
可以通过配置修改如下LDP会话参数:
· Keepalive保持时间和报文发送时间间隔。
· LDP传输地址,即用来建立TCP连接的IP地址。
LDP可以通过基本发现和扩展发现两种机制来发现LSR邻居。LSR与通过基本发现机制发现的LSR邻居建立LDP会话时,采用的LDP会话参数配置方法如表1-6所示;LSR与通过扩展发现机制发现的LSR邻居建立LDP会话时,采用的LDP会话参数配置方法如表1-7所示。
配置LDP会话参数时,需要注意:
· 配置的LDP传输地址应为设备上处于up状态的接口的IP地址,否则LDP会话将无法建立。
· 两端LSR的LDP传输地址必须路由可达。否则,无法建立TCP连接。
表1-6 配置基本发现机制的LDP会话参数
进入建立LDP会话的接口视图 |
||
配置Keepalive保持时间 |
缺省情况下,Keepalive保持时间为45秒 |
|
配置Keepalive报文发送时间间隔 |
缺省情况下,Keepalive报文发送时间间隔为15秒 |
|
配置LDP传输地址 |
缺省情况下,如果建立LDP会话的接口属于公网,则传输地址是本LSR的LSR ID;如果该接口属于某个VPN,则传输地址是本接口的主IP地址 如果建立LDP会话的接口与某个VPN实例绑定,则本命令指定的接口或指定的传输地址所在的接口需要与同一个VPN实例绑定 |
进入LDP视图 |
||
配置主动向指定对等体发送Targeted hello消息来建立LDP会话,允许应答指定对等体的Targeted hello消息,并进入LDP对等体视图 |
缺省情况下,设备不会主动向对等体发送Targeted hello消息,也不会应答对等体的Targeted hello消息 |
|
配置Keepalive保持时间 |
缺省情况下,Keepalive保持时间为45秒 |
|
配置Keepalive报文发送时间间隔 |
缺省情况下,Keepalive报文发送时间间隔为15秒 |
|
配置LDP传输地址 |
缺省情况下,传输地址是本LSR的LSR ID |
如果LDP对等体上配置的LDP会话参数不兼容(如LDP对等体使用的标签通告方式不同),则会导致会话参数协商失败、LDP对等体无休止地反复尝试建立会话。
LDP倒退机制用来抑制尝试建立会话的频率。如果会话因为参数不兼容而建立失败,LSR将等待初始延迟时间再尝试建立会话;如果会话再次因为参数不兼容而建立失败,则再次尝试建立会话的延迟时间为上一次延迟时间×2;延迟时间达到配置的最大值后,尝试建立会话的等待时间将保持为配置的最大延迟。
表1-8 配置LDP倒退机制的延迟时间
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
配置LDP倒退机制的初始延迟和最大延迟 |
缺省情况下,LDP倒退机制的初始延迟为15秒,最大延迟为120秒 |
为了提高LDP会话的安全性,可以配置在LDP会话使用的TCP连接上采用MD5认证,来验证LDP消息的完整性。
要想在LDP对等体之间成功建立LDP会话,必须保证LDP对等体上的LDP MD5认证配置一致。
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
使能LDP的MD5认证功能 |
缺省情况下,未使能LDP的MD5认证功能 |
LDP根据路由表项中的目的网络地址划分FEC。在LSR上配置LSP触发策略,可以限制哪些路由表项能够触发LDP为其目的网络地址分配标签并建立LSP,从而控制LSP的数量,避免LSP数量过多导致设备运行不稳定。
LSP触发策略包括:
· 所有路由表项都会触发LDP建立LSP。
· 利用IP地址前缀列表对路由表项进行过滤,被IP地址前缀列表拒绝的路由表项不能触发建立LSP。采用这种LSP触发策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
· 只有32位掩码的主机路由能够触发LDP建立LSP。
缺省情况下,只有32位掩码的主机路由能够触发LDP建立LSP。在非必要的情况下,建议用户不要随意修改LSP触发策略,以免建立过多的LSP,占用系统和网络资源。
表1-10 配置LSP触发策略
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
配置LSP的触发策略 |
缺省情况下,只有32位掩码的主机路由能够触发LDP建立LSP |
表1-11 配置LDP标签分配控制方式
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
会话建立后,需重启LDP会话,本命令的配置才能生效 |
标签通告控制用来控制向哪些对等体通告哪些FEC—标签映射,即LSR只将指定地址前缀的标签映射通告给指定的对等体。在复杂的MPLS网络环境中,通过标签通告控制可以规划动态建立的LSP,并避免设备通告大量的标签映射。
如图1-7,LSR A将FEC目的地址通过地址前缀列表B过滤的FEC—标签映射通告给LSR B;将FEC目的地址通过地址前缀列表C过滤的FEC—标签映射通告给LSR C。
在下游LSR上配置标签通告控制策略与在上游LSR上配置标签接受控制策略具有相同的效果。如果下游LSR支持配置标签通告控制策略,则推荐使用标签通告控制策略,以减轻网络负担。
在配置LDP标签通告控制策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-12 配置LDP标签通告控制策略
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
advertise-label prefix-list prefix-list-name [ peer peer-prefix-list-name ] |
缺省情况下,未配置标签通告控制策略,即向所有对等体通告满足LSP触发策略的所有IP地址前缀的标签映射 |
标签接受控制用来实现对从指定对等体接收的FEC—标签映射进行过滤,只接受指定地址前缀的FEC—标签映射。在复杂的MPLS网络环境中,通过标签接受控制可以规划动态建立的LSP,并避免设备保存大量的标签映射。
如图1-8,LSR A对LSR B通告的FEC—标签映射进行过滤,只有FEC的目的地址通过指定地址前缀列表过滤后,才会接受该FEC—标签映射;对LSR C通告的标签不进行过滤。
在下游LSR上配置标签通告控制策略与在上游LSR上配置标签接受控制策略具有相同的效果。如果下游LSR支持配置标签通告控制策略,则推荐使用标签通告控制策略,以减轻网络负担。
在配置LDP标签接受控制策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-13 配置LDP标签接受控制策略
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
缺省情况下,未配置标签接受控制策略,接受来自所有对等体的所有IP地址前缀的标签映射 |
环路检测机制用于非TTL递减设备(如标签控制的ATM交换机)组成的网络。支持TTL递减的设备上启动LDP环路检测功能没有实际用途,还会因为频繁发送标签请求或标签映射消息来更新环路检测的路径向量或跳数,而产生额外处理开销。因此,不推荐用户使用环路检测功能。
LDP环路检测机制可以检测LSP环路,并避免在MPLS网络中发生环路。
LDP环路检测有两种方式:
在传递标签映射(或者标签请求)的消息中包含跳数信息,每经过一跳该值就加一。当该值达到规定的最大值时即认为出现环路,终止LSP的建立过程。
在传递标签映射(或者标签请求)的消息中记录路径信息,每经过一跳,相应的设备就检查自己的LSR ID是否在此记录中。如果记录中没有自身的LSR ID,就会将自身的LSR ID添加到该记录中;如果记录中已有本LSR的记录,则认为出现环路,终止LSP的建立过程。
采用路径向量方式进行环路检测时,也需要规定LSP路径的最大跳数,当路径的跳数达到配置的最大值时,也会认为出现环路,终止LSP的建立过程。
表1-14 配置LDP环路检测
进入LDP视图或LDP-VPN实例视图 |
进入LDP视图 |
||
进入LDP-VPN实例视图 |
|||
配置最大跳数环路检测方式下LSP的最大跳数 |
缺省情况下,最大跳数环路检测方式下LSP的最大跳数为32 |
||
配置路径向量环路检测方式下LSP的最大跳数 |
缺省情况下,路径向量环路检测方式下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邻接关系永久保持会话。
表1-15 配置LDP会话保护
进入LDP视图 |
||
session protection [ duration time ] [ peer peer-prefix-list-name ] |
配置LDP GR之前,需要在作为GR restarter和作为GR helper的设备上均配置LDP能力。
进入LDP视图 |
||
使能LDP协议的GR能力 |
缺省情况下,LDP协议的GR能力处于关闭状态 |
|
配置GR重连超时时间 |
缺省情况下,GR重连超时时间为120秒 |
|
配置GR转发状态保持定时器的值 |
缺省情况下,GR转发状态保持定时器的值为180秒 |
进入LDP视图 |
||
缺省情况下,LDP NSR功能处于关闭状态 |
在OSPF进程、OSPF区域或IS-IS进程下使能LDP IGP同步功能后,所有属于该OSPF进程、OSPF区域或IS-IS进程的接口上都会自动使能LDP IGP同步功能。用户可以根据实际需要,在某个接口上禁止LDP IGP同步功能。
执行ospf命令时,如果通过vpn-instance vpn-instance-name参数指定了OSPF进程所属的VPN实例,则该OSPF进程下、该进程的OSPF区域下不能配置LDP IGP同步功能。
表1-18 在OSPF进程下配置LDP OSPF同步
进入OSPF视图 |
||
缺省情况下,LDP OSPF同步功能处于关闭状态 |
||
进入LDP视图 |
||
(可选)配置向IGP通知LDP已收敛的延迟时间 |
缺省情况下,LDP收敛后立即通知IGP |
|
(可选)配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间 |
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒 |
表1-19 在OSPF区域下配置LDP OSPF同步
进入OSPF视图 |
||
进入OSPF区域视图 |
|
|
缺省情况下,LDP OSPF同步功能处于关闭状态 |
||
进入LDP视图 |
||
(可选)配置向IGP通知LDP已收敛的延迟时间 |
缺省情况下,LDP收敛后立即通知IGP |
|
(可选)配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间 |
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒 |
执行isis命令时,如果通过vpn-instance vpn-instance-name参数指定了IS-IS进程所属的VPN实例,则该IS-IS进程下不能配置LDP IGP同步功能。
进入IS-IS视图 |
||
缺省情况下,LDP IS-IS同步功能处于关闭状态 |
||
进入LDP视图 |
||
(可选)配置向IGP通知LDP已收敛的延迟时间 |
缺省情况下,LDP收敛后立即通知IGP |
|
(可选)配置在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间 |
缺省情况下,在LDP协议重启或倒换后,向IGP通告LDP IGP同步状态的最大延迟时间为90秒 |
LDP快速重路由完全基于IP快速重路由实现,在IP快速重路由使能后,LDP快速重路由即自动使能。有关IP快速重路由的配置内容请参见“三层技术-IP路由配置指导”。
LDP会话状态为up后,修改LDP会话参数不会立即生效。此时,可通过配置reset mpls ldp命令重启公网或指定LDP实例中的所有会话,使得修改后的LDP会话参数生效。如果指定peer参数,则仅重启与指定对等体之间的LDP会话,新配置的LDP参数不会生效。
在用户视图下执行reset mpls ldp命令可以重启LDP会话。
重启LDP会话 |
reset mpls ldp [ vpn-instance vpn-instance-name ] [ peer peer-id ] |
开启LDP模块的告警功能后,当LDP会话状态发生变化时会产生RFC 3815中规定的告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
开启LDP模块的告警功能 |
缺省情况下,LDP模块的告警功能处于开启状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后LDP的运行情况,用户可以通过查看显示信息验证配置的效果。
表1-23 显示LDP运行状态
· Switch A、Switch B和Switch C均支持MPLS。
· 在Switch A和Switch C之间使用LDP动态建立LSP,使11.1.1.0/24和21.1.1.0/24这两个网段中互访的报文能够通过MPLS进行传输。
· Switch A、Switch B和Switch 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-9 利用LDP动态建立LSP配置组网图
· LDP根据路由信息动态分配标签,因此,利用LDP动态建立LSP时,需要配置路由协议,使得各交换机之间路由可达。本例中,采用的路由协议为OSPF。
· 在各台路由器上启动LDP协议。
· 为了控制建立的LSP数量,在Switch A、Switch B和Switch C上需要配置LSP触发策略。
按照图1-9配置各接口IP地址和掩码,包括VLAN接口和Loopback接口,具体配置过程略。
(2) 配置OSPF,以保证各交换机之间路由可达
# 配置Switch A。
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[SwitchC-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 21.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置完成后,在各交换机上执行display ip routing-table命令,可以看到相互之间都学到了到对方的主机路由。以Switch A为例:
[SwitchA] 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 OSPF 10 1 10.1.1.2 Vlan2
3.3.3.9/32 OSPF 10 2 10.1.1.2 Vlan2
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan2
10.1.1.0/32 Direct 0 0 10.1.1.1 Vlan2
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 Vlan2
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan4
11.1.1.0/32 Direct 0 0 11.1.1.1 Vlan4
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 Vlan4
20.1.1.0/24 OSPF 10 2 10.1.1.2 Vlan2
21.1.1.0/24 OSPF 10 3 10.1.1.2 Vlan2
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
(3) 使能MPLS和LDP功能
# 配置Switch A。
[SwitchA] mpls ldp
[SwitchA-ldp] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] mpls enable
[SwitchA-Vlan-interface2] mpls ldp enable
[SwitchA-Vlan-interface2] quit
# 配置Switch B。
[SwitchB] mpls ldp
[SwitchB-ldp] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] mpls enable
[SwitchB-Vlan-interface2] mpls ldp enable
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] mpls enable
[SwitchB-Vlan-interface3] mpls ldp enable
[SwitchB-Vlan-interface3] quit
# 配置Switch C。
[SwitchC] mpls ldp
[SwitchC-ldp] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] mpls enable
[SwitchC-Vlan-interface3] mpls ldp enable
[SwitchC-Vlan-interface3] quit
(4) 配置LSP触发策略
# 在Switch A上创建IP地址前缀列表switcha,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchA] ip prefix-list switcha index 10 permit 1.1.1.9 32
[SwitchA] ip prefix-list switcha index 20 permit 2.2.2.9 32
[SwitchA] ip prefix-list switcha index 30 permit 3.3.3.9 32
[SwitchA] ip prefix-list switcha index 40 permit 11.1.1.0 24
[SwitchA] ip prefix-list switcha index 50 permit 21.1.1.0 24
[SwitchA] mpls ldp
[SwitchA-ldp] lsp-trigger prefix-list switcha
[SwitchA-ldp] quit
# 在Switch B上创建IP地址前缀列表switchb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchB] ip prefix-list switchb index 10 permit 1.1.1.9 32
[SwitchB] ip prefix-list switchb index 20 permit 2.2.2.9 32
[SwitchB] ip prefix-list switchb index 30 permit 3.3.3.9 32
[SwitchB] ip prefix-list switchb index 40 permit 11.1.1.0 24
[SwitchB] ip prefix-list switchb index 50 permit 21.1.1.0 24
[SwitchB] mpls ldp
[SwitchB-ldp] lsp-trigger prefix-list switchb
[SwitchB-ldp] quit
# 在Switch C上创建IP地址前缀列表switchc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchC] ip prefix-list switchc index 10 permit 1.1.1.9 32
[SwitchC] ip prefix-list switchc index 20 permit 2.2.2.9 32
[SwitchC] ip prefix-list switchc index 30 permit 3.3.3.9 32
[SwitchC] ip prefix-list switchc index 40 permit 11.1.1.0 24
[SwitchC] ip prefix-list switchc index 50 permit 21.1.1.0 24
[SwitchC] mpls ldp
[SwitchC-ldp] lsp-trigger prefix-list switchc
[SwitchC-ldp] quit
# 配置完成后,在各交换机上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。以Switch A为例:
[SwitchA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 5 Ingress LSPs: 3 Transit LSPs: 3 Egress LSPs: 2
FEC In/Out Label Nexthop OutInterface
1.1.1.9/32 3/-
-/1279(L)
2.2.2.9/32 -/3 10.1.1.2 Vlan-int2
1279/3 10.1.1.2 Vlan-int2
3.3.3.9/32 -/1278 10.1.1.2 Vlan-int2
1278/1278 10.1.1.2 Vlan-int2
11.1.1.0/24 1277/-
-/1277(L)
21.1.1.0/24 -/1276 10.1.1.2 Vlan-int2
1276/1276 10.1.1.2 Vlan-int2
# 在Switch A上检测Switch A到Switch C的LDP LSP的可达性。
[SwitchA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS Ping FEC: 21.1.1.0/24 : 100 data bytes
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
--- FEC: 21.1.1.0/24 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max = 1/2/8 ms
# 在Switch C上检测Switch C到Switch A的LDP LSP的可达性。
[SwitchC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS Ping FEC: 11.1.1.0/24 : 100 data bytes
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
--- FEC: 11.1.1.0/24 ping statistics ---
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网段之间存在两条路径:Switch A—Switch B—Switch C和Switch A—Switch D—Switch C。通过配置标签接受控制策略,实现只沿着路径Switch A—Switch B—Switch 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仅沿着路径Switch A—Switch B—Switch C建立LSP。具体配置方法为:
· Switch A只接受Switch B通告的FEC目的地址为21.1.1.0/24的FEC—标签映射;Switch A拒绝Switch D通告的FEC目的地址为21.1.1.0/24的FEC—标签映射。
· Switch C只接受Switch B通告的FEC目的地址为11.1.1.0/24的FEC—标签映射;Switch C拒绝Switch D通告的FEC目的地址为11.1.1.0/24的FEC—标签映射。
按照图1-10配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
在各台交换机上配置OSPF,以保证各交换机之间路由可达,具体配置过程略。
(3) 使能MPLS和LDP功能
# 配置Switch A。
[SwitchA] mpls lsr-id 1.1.1.9
[SwitchA] mpls ldp
[SwitchA-ldp] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] mpls enable
[SwitchA-Vlan-interface2] mpls ldp enable
[SwitchA-Vlan-interface2] quit
[SwitchA] interface vlan-interface 6
[SwitchA-Vlan-interface6] mpls enable
[SwitchA-Vlan-interface6] mpls ldp enable
[SwitchA-Vlan-interface6] quit
# 配置Switch B。
[SwitchB] mpls lsr-id 2.2.2.9
[SwitchB] mpls ldp
[SwitchB-ldp] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] mpls enable
[SwitchB-Vlan-interface2] mpls ldp enable
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] mpls enable
[SwitchB-Vlan-interface3] mpls ldp enable
[SwitchB-Vlan-interface3] quit
# 配置Switch C。
[SwitchC] mpls lsr-id 3.3.3.9
[SwitchC] mpls ldp
[SwitchC-ldp] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] mpls enable
[SwitchC-Vlan-interface3] mpls ldp enable
[SwitchC-Vlan-interface3] quit
[SwitchC] interface vlan-interface 7
[SwitchC-Vlan-interface7] mpls enable
[SwitchC-Vlan-interface7] mpls ldp enable
[SwitchC-Vlan-interface7] quit
# 配置Switch D。
[SwitchD] mpls lsr-id 4.4.4.9
[SwitchD] mpls ldp
[SwitchD-ldp] quit
[SwitchD] interface vlan-interface 6
[SwitchD-Vlan-interface6] mpls enable
[SwitchD-Vlan-interface6] mpls ldp enable
[SwitchD-Vlan-interface6] quit
[SwitchD] interface vlan-interface 7
[SwitchD-Vlan-interface7] mpls enable
[SwitchD-Vlan-interface7] mpls ldp enable
[SwitchD-Vlan-interface7] quit
(4) 配置LSP触发策略
# 在Switch A上创建IP地址前缀列表switcha,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchA] ip prefix-list switcha index 10 permit 11.1.1.0 24
[SwitchA] ip prefix-list switcha index 20 permit 21.1.1.0 24
[SwitchA] mpls ldp
[SwitchA-ldp] lsp-trigger prefix-list switcha
[SwitchA-ldp] quit
# 在Switch B上创建IP地址前缀列表switchb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchB] ip prefix-list switchb index 10 permit 11.1.1.0 24
[SwitchB] ip prefix-list switchb index 20 permit 21.1.1.0 24
[SwitchB] mpls ldp
[SwitchB-ldp] lsp-trigger prefix-list switchb
[SwitchB-ldp] quit
# 在Switch C上创建IP地址前缀列表switchc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchC] ip prefix-list switchc index 10 permit 11.1.1.0 24
[SwitchC] ip prefix-list switchc index 20 permit 21.1.1.0 24
[SwitchC] mpls ldp
[SwitchC-ldp] lsp-trigger prefix-list switchc
[SwitchC-ldp] quit
# 在Switch D上创建IP地址前缀列表switchd,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchD] ip prefix-list switchd index 10 permit 11.1.1.0 24
[SwitchD] ip prefix-list switchd index 20 permit 21.1.1.0 24
[SwitchD] mpls ldp
[SwitchD-ldp] lsp-trigger prefix-list switchd
[SwitchD-ldp] quit
# 在Switch A上创建允许21.1.1.0/24通过的IP地址前缀列表prefix-from-b,该列表用来过滤Switch B通告给Switch A的FEC—标签映射。
[SwitchA] ip prefix-list prefix-from-b index 10 permit 21.1.1.0 24
# 在Switch A上创建拒绝21.1.1.0/24通过的IP地址前缀列表prefix-from-d,该列表用来过滤Switch D通告给Switch A的FEC—标签映射。
[SwitchA] ip prefix-list prefix-from-d index 10 deny 21.1.1.0 24
# 在Switch A上配置过滤Switch B和Switch D通告的FEC—标签映射的标签接受控制策略。
[SwitchA-ldp] accept-label peer 2.2.2.9 prefix-list prefix-from-b
[SwitchA-ldp] accept-label peer 4.4.4.9 prefix-list prefix-from-d
[SwitchA-ldp] quit
# 在Switch C上创建允许11.1.1.0/24通过的IP地址前缀列表prefix-from-b,该列表用来过滤Switch B通告给Switch C的FEC—标签映射。
[SwitchC] ip prefix-list prefix-from-b index 10 permit 11.1.1.0 24
# 在Switch C上创建拒绝11.1.1.0/24通过的IP地址前缀列表prefix-from-d,该列表用来过滤Switch D通告给Switch C的FEC—标签映射。
[SwitchC] ip prefix-list prefix-from-d index 10 deny 11.1.1.0 24
# 在Switch C上配置过滤Switch B和Switch D通告的FEC—标签映射的标签接受控制策略。
[SwitchC-ldp] accept-label peer 2.2.2.9 prefix-list prefix-from-b
[SwitchC-ldp] accept-label peer 4.4.4.9 prefix-list prefix-from-d
[SwitchC-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。以Switch A为例,在Switch A上FEC目的地址为21.1.1.0/24的LSP的下一跳为Switch B(地址为10.1.1.2),即只沿着路径Switch A—Switch B—Switch C建立了LSP,路径Switch A—Switch D—Switch C上未建立LSP。
[SwitchA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 2 Ingress LSPs: 1 Transit LSPs: 1 Egress LSPs: 1
FEC In/Out Label Nexthop OutInterface
11.1.1.0/24 1277/-
-/1148(L)
21.1.1.0/24 -/1149(L)
-/1276 10.1.1.2 Vlan-int2
1276/1276 10.1.1.2 Vlan-int2
# 在Switch A上检测Switch A到Switch C的LDP LSP的可达性。
[SwitchA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS Ping FEC: 21.1.1.0/24 : 100 data bytes
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
--- FEC: 21.1.1.0/24 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max = 1/2/8 ms
# 在Switch C上检测Switch C到Switch A的LDP LSP的可达性。
[SwitchC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS Ping FEC: 11.1.1.0/24 : 100 data bytes
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
--- FEC: 11.1.1.0/24 ping statistics ---
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网段之间存在两条路径:Switch A—Switch B—Switch C和Switch A—Switch D—Switch C。通过配置标签通告控制策略,实现只沿着路径Switch A—Switch B—Switch 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仅沿着路径Switch A—Switch B—Switch C建立LSP。具体配置方法为:
· Switch A只将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Switch B;Switch A不通告任何其他的FEC—标签映射。
· Switch C只将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Switch B;Switch C不通告任何其他的FEC—标签映射。
· Switch D不将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Switch A;Switch D不将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Switch C。
按照图1-11配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
在各台交换机上配置OSPF,以保证各交换机之间路由可达,具体配置过程略。
(3) 使能MPLS和LDP功能
# 配置Switch A。
[SwitchA] mpls lsr-id 1.1.1.9
[SwitchA] mpls ldp
[SwitchA-ldp] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] mpls enable
[SwitchA-Vlan-interface2] mpls ldp enable
[SwitchA-Vlan-interface2] quit
[SwitchA] interface vlan-interface 6
[SwitchA-Vlan-interface6] mpls enable
[SwitchA-Vlan-interface6] mpls ldp enable
[SwitchA-Vlan-interface6] quit
# 配置Switch B。
[SwitchB] mpls lsr-id 2.2.2.9
[SwitchB] mpls ldp
[SwitchB-ldp] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] mpls enable
[SwitchB-Vlan-interface2] mpls ldp enable
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] mpls enable
[SwitchB-Vlan-interface3] mpls ldp enable
[SwitchB-Vlan-interface3] quit
# 配置Switch C。
[SwitchC] mpls lsr-id 3.3.3.9
[SwitchC] mpls ldp
[SwitchC-ldp] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] mpls enable
[SwitchC-Vlan-interface3] mpls ldp enable
[SwitchC-Vlan-interface3] quit
[SwitchC] interface vlan-interface 7
[SwitchC-Vlan-interface7] mpls enable
[SwitchC-Vlan-interface7] mpls ldp enable
[SwitchC-Vlan-interface7] quit
# 配置Switch D。
[SwitchD] mpls lsr-id 4.4.4.9
[SwitchD] mpls ldp
[SwitchD-ldp] quit
[SwitchD] interface vlan-interface 6
[SwitchD-Vlan-interface6] mpls enable
[SwitchD-Vlan-interface6] mpls ldp enable
[SwitchD-Vlan-interface6] quit
[SwitchD] interface vlan-interface 7
[SwitchD-Vlan-interface7] mpls enable
[SwitchD-Vlan-interface7] mpls ldp enable
[SwitchD-Vlan-interface7] quit
(4) 配置LSP触发策略
# 在Switch A上创建IP地址前缀列表switcha,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchA] ip prefix-list switcha index 10 permit 11.1.1.0 24
[SwitchA] ip prefix-list switcha index 20 permit 21.1.1.0 24
[SwitchA] mpls ldp
[SwitchA-ldp] lsp-trigger prefix-list switcha
[SwitchA-ldp] quit
# 在Switch B上创建IP地址前缀列表switchb,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchB] ip prefix-list switchb index 10 permit 11.1.1.0 24
[SwitchB] ip prefix-list switchb index 20 permit 21.1.1.0 24
[SwitchB] mpls ldp
[SwitchB-ldp] lsp-trigger prefix-list switchb
[SwitchB-ldp] quit
# 在Switch C上创建IP地址前缀列表switchc,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchC] ip prefix-list switchc index 10 permit 11.1.1.0 24
[SwitchC] ip prefix-list switchc index 20 permit 21.1.1.0 24
[SwitchC] mpls ldp
[SwitchC-ldp] lsp-trigger prefix-list switchc
[SwitchC-ldp] quit
# 在Switch D上创建IP地址前缀列表switchd,并配置只有通过该列表过滤的路由表项能够触发LDP建立LSP。
[SwitchD] ip prefix-list switchd index 10 permit 11.1.1.0 24
[SwitchD] ip prefix-list switchd index 20 permit 21.1.1.0 24
[SwitchD] mpls ldp
[SwitchD-ldp] lsp-trigger prefix-list switchd
[SwitchD-ldp] quit
# 在Switch A上创建允许11.1.1.0/24通过的IP地址前缀列表prefix-to-b,该列表用来过滤通告给Switch B的FEC—标签映射。
[SwitchA] ip prefix-list prefix-to-b index 10 permit 11.1.1.0 24
# 在Switch A上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[SwitchA] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Switch A上配置标签通告控制策略:只将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Switch B。
[SwitchA-ldp] advertise-label prefix-list prefix-to-b peer peer-b
[SwitchA-ldp] quit
# 在Switch C上创建允许21.1.1.0/24通过的IP地址前缀列表prefix-to-b,该列表用来过滤通告给Switch B的FEC—标签映射。
[SwitchC] ip prefix-list prefix-to-b index 10 permit 21.1.1.0 24
# 在Switch C上创建允许2.2.2.9/32通过的IP地址前缀列表peer-b,该列表用来过滤LDP对等体。
[SwitchC] ip prefix-list peer-b index 10 permit 2.2.2.9 32
# 在Switch C上配置标签通告控制策略:只将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Switch B。
[SwitchC-ldp] advertise-label prefix-list prefix-to-b peer peer-b
[SwitchC-ldp] quit
# 在Switch D上创建拒绝21.1.1.0/24通过的IP地址前缀列表prefix-to-a,该列表用来过滤通告给Switch A的FEC—标签映射。
[SwitchD] ip prefix-list prefix-to-a index 10 deny 21.1.1.0 24
[SwitchD] ip prefix-list prefix-to-a index 20 permit 0.0.0.0 0 less-equal 32
# 在Switch D上创建允许1.1.1.9/32通过的IP地址前缀列表peer-a,该列表用来过滤LDP对等体。
[SwitchD] ip prefix-list peer-a index 10 permit 1.1.1.9 32
# 在Switch D上创建拒绝11.1.1.0/24通过的IP地址前缀列表prefix-to-c,该列表用来过滤通告给Switch C的FEC—标签映射。
[SwitchD] ip prefix-list prefix-to-c index 10 deny 11.1.1.0 24
[SwitchD] ip prefix-list prefix-to-c index 20 permit 0.0.0.0 0 less-equal 32
# 在Switch D上创建允许3.3.3.9/32通过的IP地址前缀列表peer-c,该列表用来过滤LDP对等体。
[SwitchD] ip prefix-list peer-c index 10 permit 3.3.3.9 32
# 在Switch D上配置标签通告控制策略:不将FEC目的地址为21.1.1.0/24的FEC—标签映射通告给Switch A;不将FEC目的地址为11.1.1.0/24的FEC—标签映射通告给Switch C。
[SwitchD-ldp] advertise-label prefix-list prefix-to-a peer peer-a
[SwitchD-ldp] advertise-label prefix-list prefix-to-c peer peer-c
[SwitchD-ldp] quit
# 配置完成后,在各设备上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。Switch A和Switch C只接收到Switch B通告的FEC—标签映射;Switch B接收到了Switch A和Switch C通告的FEC—标签映射; Switch D没有接收到Switch A和Switch C通告的FEC—标签映射;即只沿着路径Switch A—Switch B—Switch C建立了LSP。
[SwitchA] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 2 Ingress LSPs: 1 Transit LSPs: 1 Egress LSPs: 1
FEC In/Out Label Nexthop OutInterface
11.1.1.0/24 1277/-
-/1151(L)
-/1277(L)
21.1.1.0/24 -/1276 10.1.1.2 Vlan-int2
1276/1276 10.1.1.2 Vlan-int2
[SwitchB] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 2 Ingress LSPs: 2 Transit LSPs: 2 Egress LSPs: 0
FEC In/Out Label Nexthop OutInterface
11.1.1.0/24 -/1277 10.1.1.1 Vlan-int2
1277/1277 10.1.1.1 Vlan-int2
21.1.1.0/24 -/1149 20.1.1.2 Vlan-int3
1276/1149 20.1.1.2 Vlan-int3
[SwitchC] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 2 Ingress LSPs: 1 Transit LSPs: 1 Egress LSPs: 1
FEC In/Out Label Nexthop OutInterface
11.1.1.0/24 -/1277 20.1.1.1 Vlan-int3
1148/1277 20.1.1.1 Vlan-int3
21.1.1.0/24 1149/-
-/1276(L)
-/1150(L)
[SwitchD] display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 2 Ingress LSPs: 0 Transit LSPs: 0 Egress LSPs: 2
FEC In/Out Label Nexthop OutInterface
11.1.1.0/24 1151/-
-/1277(L)
21.1.1.0/24 1150/-
# 在Switch A上检测Switch A到Switch C的LDP LSP的可达性。
[SwitchA] ping mpls -a 11.1.1.1 ipv4 21.1.1.0 24
MPLS Ping FEC: 21.1.1.0/24 : 100 data bytes
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
--- FEC: 21.1.1.0/24 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max = 1/2/8 ms
# 在Switch C上检测Switch C到Switch A的LDP LSP的可达性。
[SwitchC] ping mpls -a 21.1.1.1 ipv4 11.1.1.0 24
MPLS Ping FEC: 11.1.1.0/24 : 100 data bytes
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
--- FEC: 11.1.1.0/24 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max = 1/1/1 ms
Switch S、Switch A和Switch D属于同一OSPF区域,通过OSPF协议实现网络互连。在Switch S—Switch D、Switch S—Switch A—Switch D两条路径上利用LDP分别建立主LSP和备份LSP,实现:
· 当Switch S—Switch D这条LSP正常工作时,11.1.1.0/24和21.1.1.0/24两个网段之间的流量通过该LSP传输。
· 当Switch S—Switch D这条LSP出现故障时,11.1.1.0/24和21.1.1.0/24两个网段之间的流量快速切换到Switch S—Switch A—Switch D这条备份LSP上传输。
图1-12 LDP快速重路由配置组网图
· 在各台交换机上配置路由协议,使得各交换机之间路由可达。本例中,采用的路由协议为OSPF。
· 在各台交换机上启动LDP协议。
· 在各台交换机上配置LSP触发策略,使得目的地址为11.1.1.0/24和21.1.1.0/24的路由表项能够触发LDP建立LSP。
· 为了触发建立备份LSP,在Switch S和Switch D上需要配置OSPF快速重路由。
按照图1-12配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
在各台交换机上配置OSPF,以保证各交换机之间路由可达,具体配置过程略。
(3) 配置OSPF快速重路由
OSPF快速重路由有两种配置方法,可以任选一种。
方法一:使能Switch S和Switch D的OSPF快速重路由功能(通过LFA算法选取备份下一跳信息)
# 配置Switch S。
[SwitchS] bfd echo-source-ip 10.10.10.10
[SwitchS] ospf 1
[SwitchS-ospf-1] fast-reroute lfa
[SwitchS-ospf-1] quit
# 配置Switch D。
[SwitchD] bfd echo-source-ip 11.11.11.11
[SwitchD] ospf 1
[SwitchD-ospf-1] fast-reroute lfa
[SwitchD-ospf-1] quit
方法二:使能Switch S和Switch D的OSPF快速重路由功能(通过路由策略指定备份下一跳)
# 配置Switch S。
[SwitchS] bfd echo-source-ip 10.10.10.10
[SwitchS] ip prefix-list abc index 10 permit 21.1.1.0 24
[SwitchS] route-policy frr permit node 10
[SwitchS-route-policy] if-match ip address prefix-list abc
[SwitchS-route-policy] apply fast-reroute backup-interface vlan-interface 12 backup-nexthop 12.12.12.2
[SwitchS-route-policy] quit
[SwitchS] ospf 1
[SwitchS-ospf-1] fast-reroute route-policy frr
[SwitchS-ospf-1] quit
# 配置Switch D。
[SwitchD] bfd echo-source-ip 10.10.10.10
[SwitchD] ip prefix-list abc index 10 permit 11.1.1.0 24
[SwitchD] route-policy frr permit node 10
[SwitchD-route-policy] if-match ip address prefix-list abc
[SwitchD-route-policy] apply fast-reroute backup-interface vlan-interface 24 backup-nexthop 24.24.24.2
[SwitchD-route-policy] quit
[SwitchD] ospf 1
[SwitchD-ospf-1] fast-reroute route-policy frr
[SwitchD-ospf-1] quit
(4) 使能MPLS和MPLS LDP功能
# 配置Switch S。
[SwitchS] mpls ldp
[SwitchS-mpls-ldp] quit
[SwitchS] interface vlan-interface 12
[SwitchS-Vlan-interface12] mpls enable
[SwitchS-Vlan-interface12] mpls ldp enable
[SwitchS-Vlan-interface12] quit
[SwitchS] interface vlan-interface 13
[SwitchS-Vlan-interface13] mpls enable
[SwitchS-Vlan-interface13] mpls ldp enable
[SwitchS-Vlan-interface13] quit
# 配置Switch D。
[SwitchD] mpls ldp
[SwitchD-mpls-ldp] quit
[SwitchD] interface vlan-interface 13
[SwitchD-Vlan-interface13] mpls enable
[SwitchD-Vlan-interface13] mpls ldp enable
[SwitchD-Vlan-interface13] quit
[SwitchD] interface vlan-interface 24
[SwitchD-Vlan-interface24] mpls enable
[SwitchD-Vlan-interface24] mpls ldp enable
[SwitchD-Vlan-interface24] quit
# 配置Switch A。
[SwitchA] mpls ldp
[SwitchA-mpls-ldp] quit
[SwitchA] interface vlan-interface 12
[SwitchA-Vlan-interface12] mpls enable
[SwitchA-Vlan-interface12] mpls ldp enable
[SwitchA-Vlan-interface12] quit
[SwitchA] interface vlan-interface 24
[SwitchA-Vlan-interface24] mpls enable
[SwitchA-Vlan-interface24] mpls ldp enable
[SwitchA-Vlan-interface24] quit
(5) 配置LSP的触发建立策略为所有静态路由和IGP路由项都能触发LDP建立LSP
# 配置Switch S。
[SwitchS-ldp] lsp-trigger all
[SwitchS-ldp] quit
# 配置Switch D。
[SwitchD-ldp] lsp-trigger all
[SwitchD-ldp] quit
# 配置Switch A。
[SwitchA-ldp] lsp-trigger all
[SwitchA-ldp] quit
# 在Switch S和Switch D上执行display mpls ldp lsp命令,可以看到Switch S和Switch D之间建立了主备LSP(在Out Label后存在“B”,表示该LSP为备份LSP)。以Switch S为例:
[SwitchS] display mpls ldp lsp 21.1.1.0 24
Status Flags: * - stale, L - liberal, B - backup
Statistics:
FECs: 1 Ingress LSPs: 2 Transit LSPs: 2 Egress LSPs: 0
FEC In/Out Label Nexthop OutInterface
21.1.1.0/24 -/3 13.13.13.2 Vlan-int13
2174/3 13.13.13.2 Vlan-int13
-/3(B) 12.12.12.2 Vlan-int12
2174/3(B) 12.12.12.2 Vlan-int12
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!