02-MPLS L2VPN配置
本章节下载 (980.08 KB)
1.4.3 封装类型为FR DLCI或FR端口模式时的接口配置
1.12.5 配置Martini方式MPLS L2VPN示例
1.12.6 配置Martini方式MPLS L2VPN冗余保护示例
1.12.7 配置Martini方式IP异构MPLS L2VPN示例
1.12.8 配置Kompella方式MPLS L2VPN示例
![]()
MPLS L2VPN既可以提供点到点的连接,也可以提供多点间的连接。本章只介绍提供点到点连接的MPLS L2VPN技术。
MPLS L2VPN是基于MPLS(Multiprotocol Label Switching,多协议标签交换)的二层VPN(Virtual Private Network,虚拟专用网络)技术,它利用MPLS技术在不同用户节点间建立二层连接。
采用MPLS L2VPN技术,运营商可以在统一的MPLS或IP骨干网上透明传输不同数据链路层(包括ATM、FR、VLAN、Ethernet、PPP等)的二层数据,使得数据链路层业务可以跨越MPLS或IP骨干网传递。
从用户的角度来看,MPLS或IP骨干网是一个二层交换网络,用户感知不到MPLS或IP骨干网的存在。以Ethernet类型的用户网络为例,通过MPLS L2VPN连接的Ethernet节点感知不到MPLS或IP骨干网的存在,就好像节点之间直接通过以太网链路相连。
MPLS L2VPN具有以下优势:
· 可扩展性强:MPLS L2VPN只建立二层连接关系,不引入和管理用户的路由信息。这大大减轻了服务提供商网络边缘设备甚至整个服务提供商网络的负担,使服务提供商能支持更多的VPN和接入更多的用户。
· 可靠性和私网路由的安全性得到保证:由于不引入用户的路由信息,MPLS L2VPN不能获得和处理用户路由,保证了用户VPN路由的安全。
· 支持多种网络层协议:包括IP、IPX、SNA等。
· CE(Customer Edge,用户网络边缘)设备
直接与服务提供商网络相连的用户网络侧设备。CE可以是网络设备(如路由器、交换机),也可以是一台主机。CE“感知”不到VPN的存在,不需要支持MPLS。
· PE(Provider Edge,服务提供商网络边缘)设备
与CE相连的服务提供商网络侧设备。PE主要负责VPN业务的接入。它完成报文从用户网络到公网隧道、从公网隧道到用户网络的映射与转发。
在MPLS网络中,VPN相关的所有处理都发生在PE上。
· AC(Attachment Circuit,接入电路)
连接CE与PE的链路。
· VC(Virtual Circuit,虚电路)
VC又称为PW(Pseudowire,伪线),是将两个PE上的AC连接起来的一条虚拟的双向连接。MPLS VC由一对方向相反的单向LSP构成。
· 隧道(Tunnel)
又称为公网隧道,是穿越MPLS或IP骨干网、用来承载VC的连接。隧道可以是LSP、MPLS TE、GRE隧道等。
· P(Provider,服务提供商网络)设备
不与CE直接相连。P设备只需沿着隧道将用户报文从一端PE转发到另一端PE。
MPLS L2VPN的网络架构分为远程连接和本地连接两种。
如图1-1所示,MPLS L2VPN的远程连接组网是指跨越MPLS或IP骨干网络连接两端的用户二层网络。

如图1-2所示,本地连接是指两个用户二层网络通过两个CE连接到同一个PE上,用户网络直接通过PE进行用户报文的交换。PE的作用类似于二层交换机。

为了在CE之间建立MPLS L2VPN的远程连接,实现通过MPLS L2VPN技术跨越骨干网传递二层用户报文,需要完成以下工作:
· 建立公网隧道,以便将用户网络报文从本地PE转发到对端PE。
公网隧道可以是LSP、MPLS TE、GRE隧道等。LSP隧道的详细介绍,请参见“MPLS配置指导”中的“MPLS基础”;MPLS TE隧道的详细介绍,请参见“MPLS配置指导”中的“MPLS TE”;GRE隧道的详细介绍,请参见“三层技术-IP业务”中的“GRE”。
如果在两端PE之间存在多条公网隧道,可以配置隧道策略,根据该隧道策略选择承载VC的公网隧道。隧道策略的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。
· 建立VC,以便通过VC标签标识报文所属的用户网络。
建立VC,是指两端的PE设备分别为对方分配VC标签,建立方向相反的一对单向LSP,
根据VC建立方式的不同,MPLS L2VPN的实现方式分为CCC(Circuit Cross Connect,电路交叉连接)、SVC(Static Virtual Circuit,静态虚拟电路)、Martini和Kompella四种,详细介绍请参见“1.1.6 MPLS L2VPN的实现方式”。
· 建立AC,并将AC和VC绑定,以便确定接收到的用户网络报文通过哪条VC转发。
¡ 建立AC:即在PE和CE上配置链路层协议,以便在PE和CE之间建立链路层连接,如PPP连接。
¡ AC和VC绑定:AC和VC绑定后,从该AC接收到的报文将通过绑定的VC转发,从绑定的VC上接收到的报文将转发给该AC。对于大多数链路层协议,将PE上连接CE的三层接口与VC绑定即可实现AC与VC的绑定;对于Ehernet链路,除了将三层接口与VC绑定外,还可以通过服务实例与VC绑定的方式,实现AC与VC的绑定。
MPLS L2VPN通过在二层用户报文外封装Tunnel标记和VC标签,实现用户报文在MPLS或IP骨干网中的透明传送。
· Tunnel标记用于将报文从一个PE传递到另一个PE。如果采用LSP或MPLS TE隧道,则Tunnel标记为MPLS标签;如果采用GRE隧道,则Tunnel标记为GRE头和传输协议的报文头。
· VC标签用于区分连接不同CE的二层连接。接收方PE根据VC标签决定将报文转发给哪个CE。

|
(1) L2PDU是链路层报文,PDU即Protocol Data Unit,协议数据单元 |
|
(2) T是Tunnel标记;V是VC标签 |
如图1-3所示,远程连接建立后,MPLS L2VPN的报文转发过程为:
(1) PE 1接收到CE 1发送的二层用户报文后,根据PE 1与CE 1之间的AC所绑定的VC为报文封装VC标签,并查找对应的公网隧道,为其封装Tunnel标记后将封装后的报文转发给P设备。
(2) P设备根据外层的Tunnel标记将报文转发给PE 2。
(3) PE 2从公网隧道接收到报文后,根据VC标签判断报文所属的VC。PE 2删除Tunnel标记和VC标签,还原二层用户报文后,将其转发给与该VC绑定的AC,即转发给CE 2。
![]()
上文描述的连接建立和报文转发过程不适用于CCC方式MPLS L2VPN。CCC方式MPLS L2VPN的详细介绍,请参见“1.1.6 1. CCC方式MPLS L2VPN”。
为了在两个CE之间建立MPLS L2VPN的本地连接,需要完成以下工作:
· 建立AC,即在PE和CE上配置链路层协议,以便在PE和CE之间建立链路层连接,如PPP连接。
· 将连接两个CE的两条AC绑定,以便实现从一条AC接收的报文转发给另一条AC。通过将PE上连接两个CE的三层接口绑定,即可实现AC的绑定。
如图1-4所示,本地连接建立后,MPLS L2VPN报文转发过程为:PE从CE 1接收到二层报文后,直接将该报文转发给与CE 1绑定的CE 2。

![]()
建立本地连接只需在PE上通过配置将两个AC绑定,本节不作详细介绍。本节只介绍如何通过四种方式建立MPLS L2VPN的远程VC连接。
CCC方式通过建立方向相反的两条静态LSP,并通过配置将静态LSP与AC绑定的方法来建立VC连接。采用CCC方式建立的VC连接称为CCC连接。
图1-5 CCC方式示意图

如图1-5所示,完成图中所示的各项配置后,将建立从PE 1到PE 2和从PE 2到PE 1的两条静态LSP,在PE 1上这两条静态LSP与Interface A绑定,在PE 2上与Interface B绑定,至此,一条CCC远程连接成功建立。
以CE 1发送报文给CE 2为例,CCC方式的报文转发过程为:
(1) PE 1接收到CE 1发送的报文后,由于Interface A与静态LSP绑定,因此PE 1为其添加从PE 1到PE 2的静态LSP的标签300。
(2) P接收到报文后,查找标签转发表,将入标签300替换为静态LSP的出标签310。
(3) 由于静态LSP与Interface B绑定,因此,PE 2接收到报文后,删除标签,将原始报文通过Interface B转发给CE 2。
与其他方式的MPLS L2VPN不同,CCC采用一层标签传送用户报文,只有与该静态LSP绑定的AC才能通过该静态LSP转发报文。因此,CCC对LSP的使用是独占性的。LSP只用于传递这个CCC连接的数据,不能用于其他连接,也不能用于MPLS L3VPN。
SVC是一种静态的MPLS L2VPN实现方式。SVC方式采用两层标签传递用户报文,内层的VC标签是在两端的PE上静态配置的,不需要使用信令协议传递。
Martini方式采用两层标签传递用户报文,以LDP(Label Distribution Protocol,标签分发协议)为信令协议分发内层的VC标签。
为了在PE之间交换VC标签,Martini方式对LDP进行了扩展,增加了VC FEC(Forwarding Equivalence Class,转发等价类)的FEC类型。该类型的FEC包含以下信息:
· VC type:VC的封装类型。详细介绍请参见“1.1.7 VC封装类型”。
· VC ID:PE上为VC指定的连接标识。
VC type+VC ID唯一标识了一个VC。在一台PE上,相同VC type的所有VC,其VC ID必须唯一。
如图1-6所示,两端PE分别发送标签映射消息,通过VC FEC(包含VC type、VC ID)和VC label将用于标识VC的信息和对应的VC标签发送给对端,即可实现VC标签的发布,从而在PE之间建立VC连接。
图1-6 Martini方式标签分发过程

Kompella方式采用两层标签传递用户报文,以扩展的BGP为信令协议分发内层的VC标签。
与其他方式不同,Kompella方式引入了VPN的概念,属于同一个VPN的CE之间可以建立连接,属于不同VPN的CE之间不能建立连接。
(1) 基本概念
· CE ID
Kompella方式在VPN内部对CE进行编号,通过CE ID唯一标识VPN内的一个CE。不同VPN内CE编号可以相同。
· RD(Route Distinguisher,路由标识符)
为了区分不同VPN内编号相同的CE,Kompella方式定义了RD。在CE ID前增加RD,通过RD+CE ID可以唯一标识网络中的一个CE。
· VPN target
Kompella方式使用BGP的VPN target(也称为Route target)属性来区分不同的VPN,确保属于同一个VPN的CE之间可以建立连接,属于不同VPN的CE之间不能建立连接。
PE上的VPN target属性分为以下两种:
· Export target属性:本地PE在通过BGP的Update消息将L2VPN信息(如本地CE ID、RD等)发送给对端PE时,将Update消息中携带的VPN target属性设置为Export target。
· Import target属性:PE收到其它PE发布的Update消息时,检查消息中携带的VPN target属性,只有当此属性与PE上设置的Import target匹配时,才会接收该消息中的L2VPN信息。
也就是说,VPN target属性定义了本地发送的L2VPN信息可以为哪些PE所接收,PE可以接收哪些对端PE发送来的L2VPN信息。
(2) 标签块
与Martini方式不同,Kompella方式并不是将本地PE分配的VC标签通过消息直接发送给对端PE,而是采用标签块的方式,一次为多个连接分配标签。PE将自己分配的标签块通告给同一个VPN内的所有PE,每个PE都根据其他PE通告的标签块计算出VC标签。
标签块包含以下参数:
· LB(Label Base,初始标签):标签块的标签初始值。该值为PE设备自动选取,不可手动修改。
· LR(Label Range,标签范围):标签块包含的标签数目。LB和LR确定了标签块中包含哪些标签。例如,LB为1000、LR为5,则该标签块包含的标签为1000~1004。
· LO(Label-block Offset,标签块偏移):VPN网络中CE的数量增加,原有的标签块大小无法满足要求时,PE无需撤销原有的标签块,只要在原有标签块的基础上再分配一个新的标签块就可以扩大标签范围,满足扩展需要。在这种情况下,PE通过LO来标识某个标签块在所有为CE分配的标签块中的位置,并根据LO来判断从哪个标签块中分配标签。LO的取值为之前分配的所有标签块大小的总合。例如,PE为CE分配的第一个标签块的LR为10、LO为0,则第二个标签块的LO为10;如果第二个标签块的LR为20,则第三个标签块的LO为30。
为了方便描述,下文利用LB/LO/LR来描述一个标签块,即LB为1000、LO为10、LR为5的标签块可以表示为1000/10/5。
采用标签块的方式允许用户为VPN分配一些额外的标签,留待以后使用。这样短期来看会造成标签资源的浪费,但是却带来一个很大的好处,即可以减少VPN部署和扩容时的配置工作量。假设一个企业的VPN包括10个CE,但是考虑到企业会扩展业务,将来可能会有20个CE。这样可以把LR设置为20,系统会预先为未来的10个CE分配标签。以后VPN添加CE节点时,配置的修改仅限于与新CE直接相连的PE,其他PE不需要作任何修改。这使得VPN的扩容变得非常简单。
(3) VC标签的计算方法
图1-7 VC标签计算方式

如图1-7所示,以计算连接CE 1和CE 12的VC的VC标签为例,Kompella方式中VC标签的计算方法为:
· PE 1计算本地为该VC分配的VC标签:
a. 将对端CE(CE 12)的ID(12)与PE 1分配的两个标签块进行比较,如果存在满足LO<=CE ID<LO+LR的标签块,则从该标签块中分配标签。在本例中,标签块2(1055/5/10)满足LO<=CE ID<LO+LR(即5<=12<5+10),故从该标签块中为此VC分配标签。
b. 本地为此VC分配的标签值为:LB+CE ID-LO,即1055+12-5=1062。
· PE 1计算对端PE(PE 2)为该VC分配的VC标签:
a. 将本地CE(CE 1)的ID(1)与PE 2分配的标签块进行比较,如果存在满足LO<=CE ID<LO+LR的标签块,则从该标签块中分配标签。在本例中,标签块(2000/0/15)满足LO<=CE ID<LO+LR(即0<=1<0+15),故从该标签块中为此VC分配标签。
b. 对端PE为此VC分配的标签值为:LB+CE ID-LO,即2000+1-0=2001。
· 在PE 2上也进行类似地计算,可以得到相同的结果:本地PE(PE 2)分配的VC标签为2001、对端PE(PE 1)分配的VC标签为1062。
![]()
PE为来自CE的二层用户报文封装VC标签时,封装的是对端PE为该VC分配的标签。例如,PE 1将来自CE 1的报文转发给CE 2时,封装的VC标签为2001。
(4) VC建立过程
图1-8 Kompella方式标签分发过程

如图1-8所示,CE 1和CE 2属于VPN 1,CE 3和CE 4属于VPN 2。通过为两个VPN分别配置VPN target属性,实现VPN 1内的两个CE、VPN 2内的两个CE分别可以建立VC连接,但VPN 1内的CE与VPN 2内的CE不能建立VC连接。
VC建立过程为:
a. PE 1通过BGP的Update消息将RD、CE ID、VPN target(PE 1上为VPN配置的Export target)、标签块等信息发送给PE 2。
b. PE 2接收到Update消息后,比较该消息中的VPN target是否与本地为各VPN配置的Import target匹配。如果与某个VPN的Import target匹配,则为该VPN学习Update消息中的L2VPN信息;否则,不会学习该Update消息中的信息,不进行后续的处理。在本例中,传递CE 1信息的Update消息的VPN target为100:1,与VPN 1的Import target相同,则将CE 1的信息学习到VPN 1的L2VPN信息中;传递CE 2信息的Update消息的VPN target为200:1,与VPN 2的Import target相同,则将CE 2的信息学习到VPN 2的L2VPN信息中。属于不同VPN的CE信息学习到不同的VPN中,从而实现不同VPN中CE的隔离。
c. 同样地,PE 2也向PE 1发送Update消息,PE 1也进行类似地处理。
d. PE 1和PE 2根据学习到的L2VPN信息,按照上文描述的方法为每个VPN内的CE分别计算VC标签。PE 1和PE 2均计算出VC标签后,就成功建立了VC连接。
四种实现方式的对比如表1-1所示。
|
实现方式 |
封装层数 |
VC标签分发方式 |
优点 |
缺点 |
适用场景 |
|
CCC |
一层 |
静态配置 |
· 不需要任何信令协议传递标签,占用网络资源少 · 网络设备只要能支持MPLS转发即可 · 由于LSP是专用的,采用CCC方式,可以为业务流量提供QoS保证 · 支持本地连接和远程连接 |
· 配置维护复杂。每台P设备上都需要为每条CCC连接配置两条方向相反的静态LSP · 不能自动适应网络的变化 |
拓扑简单、且其中的设备都支持MPLS的小型网络 |
|
SVC |
两层 |
静态配置 |
不需要任何信令协议传递VC标签,占用网络资源少 |
· 不能自动适应网络的变化 · 只支持远程连接 |
拓扑简单的小型网络 |
|
Martini |
两层 |
LDP |
· 在运营商网络中,只有PE设备需要保存少量的VC标签与LSP的映射关系等信息,P设备不包含任何二层VPN信息 · 当需要新增一条VC时,只在相关的两端PE上进行配置即可,不影响网络的运行 |
只支持远程连接 |
稀疏的二层连接,例如星型连接 |
|
Kompella |
两层 |
BGP |
· 引入VPN的概念,限制属于不同VPN的CE之间的通信 · 采用标签块的方式允许用户为VPN分配一些额外的标签,留待以后使用,减少VPN部署和扩容时的配置工作量 · 网络中新增一台CE时,只需在与其连接的PE上进行配置,维护工作量小,且不影响网络的运行 · 支持本地连接和远程连接 |
实现相对复杂,不易于理解 |
全连接的网络 |
为二层报文封装VC标签前,PE对不同链路层协议的二层报文的处理方式有所不同。VC封装类型(VC type)用来标识PE对二层报文的处理方式。VC封装类型与AC的链路类型(PE—CE之间的链路类型)密切相关,其对应关系如表1-2所示。
表1-2 AC链路类型及VC封装类型对应关系表
|
AC链路类型 |
VC封装类型 |
|
PPP |
PPP |
|
HDLC |
HDLC |
|
FR |
FR DLCI模式 |
|
FR端口模式 |
|
|
以太网 |
Ethernet |
|
VLAN |
|
|
ATM |
ATM AAL5帧透传 |
AC链路类型为PPP时,对应的VC封装类型为PPP;AC链路类型为HDLC时,对应的封装类型为HDLC。
PPP封装类型和HDLC封装类型中,PE对二层报文的处理方式类似,均为:PE从某个接口接收到PPP/HDLC报文后,查找与该接口绑定的VC,对PPP/HDLC报文进行封装后,通过该VC将封装后的报文传递给对端PE;对端PE去掉外层封装,还原出PPP/HDLC报文,并将其转发给用户网络。
FR链路对应的VC封装类型有两种:
· FR DLCI模式:采用该封装类型时,PE从用户网络接收到FR报文后,根据报文的DLCI(Data Link Connection Identifier,数据链路连接标识)查找对应的VC,通过该VC转发FR报文。在FR DLCI模式中,一条FR的虚电路对应一条VC连接,因此该模式又称为one-to-one映射模式。
· FR端口模式:采用该封装类型时,PE从某个接口接收到的所有FR报文,都通过与该接口绑定的VC转发。在FR端口模式中,多条FR虚电路的报文可以通过一条VC连接转发,因此该模式又称为many-to-one映射模式。
以太网链路对应的VC封装类型有两种:
· Ethernet:采用该封装类型时,VC上传输的报文不能带服务提供商网络为了区分用户而要求用户压入的P-Tag,该Tag又称为服务定界符。对于从CE侧接收到的报文,如果带有P-Tag,则删除P-tag后对报文进行封装;如果不带P-Tag,则直接对报文进行封装。对于PE转发给CE的下行报文,在将报文转发给CE前根据配置的接入模式选择是否添加P-Tag,但是它不允许重写或去除已经存在的任何Tag。
· VLAN:采用该封装类型时,VC上传输的报文必须带P-Tag。对于从CE侧接收的报文,如果带有P-Tag,则对端PE不要求Ingress改写P-Tag时,保留P-Tag;对端PE要求Ingress改写P-Tag时,将P-Tag改写为对端PE期望的VLAN Tag(Tag可能是值为0的空Tag),再对报文进行封装。如果不带P-Tag,则对端PE不要求Ingress改写P-Tag时,添加值为0的空P-Tag;对端PE要求Ingress改写P-Tag时,添加一个对端PE期望的VLAN Tag(Tag可能是值为0的空Tag)后,再对报文进行封装。对于PE转发给CE的下行报文,在将报文转发给CE前根据配置的接入模式选择重写、去除或保留P-Tag。
![]()
ATM技术的介绍,请参见“二层技术-广域网接入”中的“ATM”。
ATM链路对应的VC封装类型分为ATM AAL5帧透传。
ATM AAL5帧透传是指在PSN(Packet Switched Network,分组交换网络,如IP网络)上通过端到端的虚连接透明地传输ATM AAL5 SDU(Service Data Unit,业务数据单元),从而实现通过PSN连接分隔的ATM网络。
如图1-9所示,PE 1接收到CE 1发送的ATM信元后,从信元中获取ATM AAL5 SDU,对其进行封装后,通过PSN中的虚连接VC将ATM AAL5 SDU透明地传输到对端PE 2。PE 2删除外层封装后,将还原的ATM AAL5 SDU封装成ATM信元发送给CE 2。在这个通信过程中,CE 1和CE 2感受不到PSN的存在,实现了相互分隔的ATM网络通过PSN透明地通信。

控制字字段位于VC标签和二层数据之间,用来携带二层报文的信息,如序列号等。控制字字段具有如下功能:
· 避免报文乱序:在多路径转发的情况下,报文有可能产生乱序,此时可以通过控制字的序列号字段对报文进行排序重组。
· 传送特定二层数据帧的标记:PE在对二层报文进行处理时,可能会丢失一些信息,如帧中继的FECN(Forward Explicit Congestion Notification,前向显式拥塞通知)比特和BECN(Backward Explicit Congestion Notification,后向显示拥塞通知)比特等。PE可以将这些信息复制到控制字字段,发送给对端PE,以便对端PE正确地处理二层报文。
· 增加净载荷长度:如果VC上传递报文的净载荷长度小于64字节,则可以通过携带控制字字段,来增加净载荷的长度,以避免报文发送失败。
对于某些VC封装类型(如FR DLCI模式、ATM AAL5帧透传),VC上传递的报文必须携带控制字字段,不能通过配置来控制。对于某些VC封装类型(如PPP、HDLC和FR端口模式),控制字字段是可选的,可以通过配置来决定是否携带控制字:如果两端PE上都使能了控制字功能,则VC上传递的报文携带控制字字段;否则,不携带控制字字段。
![]()
目前,只有SVC方式和Martini方式的MPLS L2VPN支持VC冗余保护功能。
如果在两个CE之间只建立一条VC,则当该VC出现故障时,CE之间将无法通信。如图1-10所示,MPLS L2VPN支持VC冗余保护功能。在两个CE之间建立两条VC连接:主VC连接和备份VC连接。正常情况下,CE只使用主VC连接与对端CE通信;当PE 1检测到主连接出现故障时,PE 1将启用备份VC连接,即PE 1通过备份连接将CE 1的报文转发给CE 2,CE 2接收到报文后,更新MAC地址表项,以便CE 2发送给CE 1的报文也通过备份VC连接转发,从而保证通信不会中断。
图1-10 MPLS L2VPN的VC冗余保护

PE根据LDP会话状态和BFD检测结果等判断主VC连接是否出现故障。出现以下情况之一时,PE将启用备份VC连接:
· 主VC连接经过的隧道被删除或不再满足隧道策略,导致此VC的状态变为down;
· 利用BFD协议等链路检测机制,检测到主VC连接故障;
· 主VC连接两端PE之间的LDP会话down(如图1-10中,PE 1和PE 2之间的LDP会话down),导致该VC被删除;
· 执行命令手工切换主备连接。
CE接入PE的链路类型多种多样,如ATM、FR、HDLC、Ethernet、PPP等。不同接入链路类型的CE之间可以通过MPLS L2VPN网络互相通信,即MPLS L2VPN可以连接异构的网络。
![]()
· 目前,只有CCC、SVC和三层接口下创建的Martini方式VC连接可以连接异构的网络。
· MPLS L2VPN连接异构网络有两种方式:Ethernet interworking和IP interworking。目前,设备只支持IP interworking方式,本文只介绍这种方式。
图1-11 MPLS L2VPN连接异构网络示意图(Martini方式)

如图1-11所示,以CE 1的链路类型为Ethernet、CE 2的链路类型为PPP、VC连接建立方式为Martini为例,MPLS L2VPN连接异构网络的报文转发过程为:
(1) CE 1将目的地址为CE 2的以太网数据帧发送给PE 1。
(2) PE 1判断接收到的以太网数据帧内封装的是否为IP报文。若是,则删除以太网头、添加VC标签V和Tunnel标记T后,将报文转发给P。否则,丢弃该报文。
(3) P根据外层的Tunnel标记将报文转发给PE 2。
(4) PE 2删除Tunnel标记和VC标签,为报文添加PPP头(PE 2与CE 2之间的链路类型为PPP)后,将PPP数据帧发送给CE 2。
![]()
MPLS L2VPN连接异构网络时,链路层协商报文不会在网络中传递,CE之间无法直接建立二层连接。因此,PE需要与接入的CE建立二层连接,例如,PPP链路中PE需要与CE进行PPP协商,以建立PPP连接。
MPLS L2VPN连接异构网络时,根据CE接入PE的链路类型的不同,分别有如下要求:
· CE接入PE的链路类型为Ethernet
a. PE和CE所在的以太网或VLAN网络内可以存在二层设备,但只能存在PE和CE两台三层设备。
b. 对于CE发送的所有ARP请求,PE都会采用自己的MAC地址进行应答。
c. PE上需要通过default-nexthop命令配置缺省下一跳信息,以便PE正确地为发送给CE的报文封装链路层头。缺省下一跳信息为CE的MAC地址或广播MAC地址时,PE发送给CE的报文将以该MAC地址作为目的MAC地址;缺省下一跳信息为CE的IP地址时,PE通过ARP将IP地址解析为MAC地址,解析到的MAC地址将作为PE发送给CE报文的目的MAC地址。
d. CE连接PE的接口上配置路由协议的操作方式为点对点操作方式,例如通过ospf network-type p2p命令配置OSPF接口的网络类型为P2P(Point-to-Point,点到点)。
e. 在PE上取消支持连接异构网络的配置时,需要通过reset arp命令清除CE上的ARP表项,以便CE能学到新的ARP表项,避免流量被错误地丢弃。
· CE接入PE的链路类型为PPP
PE上需要配置ppp ipcp ignore local-ip,以支持IPCP无地址协商;或配置ppp ipcp proxy,以使用指定的IP地址与CE进行IPCP协商。请根据CE的支持情况,选择合适的地址协商方式。
· CE接入PE的链路类型为FR
a. 只能在FR点对点子接口上配置PE支持连接异构网络。
b. 由于FR点对点子接口不支持InARP(Inverse Address Resolution Protocol,逆向地址解析协议),因此,CE上连接PE的接口需要配置为FR点对点子接口,或在CE上通过fr map ip命令配置静态地址映射,建议映射的对端地址为远端CE的地址。
c. 需要将PE配置为FR DCE类型,CE配置为DTE类型,以便PE通知CE DLCI的变化。
· CE接入PE的链路类型为ATM AAL5
a. 只能在ATM点对点子接口上配置PE支持连接异构网络。
b. 由于ATM点到点子接口不支持InARP,因此,CE上连接PE的接口需要配置为ATM点对点子接口,或在CE上通过map ip命令配置静态MAP,建议映射的地址为远端CE的地址。
c. 在PE的ATM点对点子接口上配置map ip default。
MPLS L2VPN远程连接组网中,需要进行以下配置:
· 在PE和P上配置IGP,实现骨干网的IP连通性
· 在PE和P上配置MPLS、GRE或MPLS TE,在骨干网上建立公网隧道
· 在两端的PE上配置隧道策略,以便PE根据该隧道策略选择承载VC的公网隧道
· 在两端的PE上配置MPLS L2VPN,建立VC,并将AC与VC绑定
MPLS L2VPN本地连接组网中,只需在PE上将两个AC绑定。
本文只介绍PE设备上的MPLS L2VPN相关配置,其余配置请参考相关手册。
![]()
MPLS L2VPN对于用户网络来说是透明的,因此CE上无需进行特殊配置。
表1-3 MPLS L2VPN配置任务简介
|
操作 |
说明 |
详细配置 |
|
配置MPLS L2VPN基本功能 |
必选 本配置用来使能MPLS L2VPN功能,以便进行MPLS L2VPN的其他配置 |
|
|
配置连接CE的接口 |
必选 本配置用来在PE和CE之间建立AC |
|
|
配置CCC方式MPLS L2VPN |
选择其一 根据实际需求选择合适的实现方式 对于远程连接,本配置用来在PE之间建立VC,并将AC和VC绑定 对于本地连接,本配置用来在PE上将两个AC绑定 |
|
|
配置SVC方式MPLS L2VPN |
||
|
配置Martini方式MPLS L2VPN |
||
|
配置Kompella方式MPLS L2VPN |
||
|
配置SoftGRE功能 |
可选 |
|
|
配置L2PT功能 |
可选 |
![]()
在三层接口上创建VC连接后,如果该接口上创建了子接口,则该子接口的三层功能将失效(如无法接收ARP和IGMP报文、单播和组播报文转发不通)。删除三层接口上的VC连接后,子接口的三层功能将恢复。
表1-4 配置MPLS L2VPN基本功能
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置LSR-ID |
mpls lsr-id lsr-id |
必选 |
|
配置MPLS基本能力,并进入MPLS视图 |
mpls |
必选 |
|
退回系统视图 |
quit |
- |
|
使能L2VPN,并进入L2VPN视图 |
l2vpn |
必选 缺省情况下,L2VPN功能处于关闭状态 |
|
使能MPLS L2VPN |
mpls l2vpn |
必选 缺省情况下,MPLS L2VPN功能处于关闭状态 |
PE连接CE的接口上需要配置链路层协议,以便在PE和CE之间建立AC。对于不同的VC封装类型,PE连接CE接口上的配置有所不同,下面将分别进行介绍。
![]()
由于从PE连接CE接口接收到的报文直接通过绑定的VC转发,无需进行网络层处理,因此该接口上不需要配置IP地址。
表1-5 封装类型为PPP时的接口配置
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface { serial | pos } number |
- |
|
配置接口的链路协议类型 |
link-protocol ppp |
可选 缺省情况下,接口的链路协议类型为PPP |
|
配置IPCP无地址协商 |
ppp ipcp ignore local-ip |
MPLS L2VPN支持异构网络时,二者必选其一 缺省情况下,不支持IPCP无地址协商,未指定IPCP代理IP地址 |
|
指定IPCP代理IP地址 |
ppp ipcp proxy ip-address |
表1-6 封装类型为HDLC时的接口配置
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface { serial | pos } number |
- |
|
配置接口的链路协议类型 |
link-protocol hdlc |
必选 缺省情况下,接口的链路协议类型为PPP |
表1-7 封装类型为FR DLCI或FR端口模式时的接口配置
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface { serial | pos } interface-number |
- |
|
配置接口的链路协议类型 |
link-protocol fr [ nonstandard | ietf | mfr interface-number ] |
必选 缺省情况下,接口的链路协议类型为PPP |
|
进入FR点对点子接口视图 |
interface { serial | pos } interface-number.subnumber p2p |
封装类型为FR DLCI模式时,必选 |
|
配置虚电路 |
fr dlci dlci-number |
封装类型为FR DLCI模式时,必选 缺省情况下,接口上没有配置虚电路 |
![]()
· PE连接CE接口的DLCI号与CE设备上的DLCI号必须一致。
· 当PE连接CE接口的类型为Serial口、且封装类型为FR DLCI或FR端口模式时,必须使用reset fr inarp命令刷新PE与CE之间的信息。有关reset fr inarp命令的解释请参见“二层技术-广域网接入命令参考”中的“帧中继”。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
- |
|
配置缺省下一跳的IP地址或MAC地址 |
default-nexthop { ip ip-address | mac { mac-address | broadcast } } |
MPLS L2VPN支持连接异构网络时,必选 缺省情况下,未指定缺省下一跳信息 |
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type { interface-number | interface-number.subnumber } |
- |
|
配置缺省下一跳的IP地址或MAC地址 |
default-nexthop { ip ip-address | mac { mac-address | broadcast } } |
MPLS L2VPN支持连接异构网络时,必选 缺省情况下,未指定缺省下一跳信息 VLAN接口下,不支持本配置 |
表1-10 封装类型为ATM AAL5帧透传时的接口配置
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入ATM点对点接口或ATM点对点子接口视图 |
interface atm { interface-number | interface-number.subnumber } p2p |
- |
|
创建PVC(Permanent Virtual Circuit,永久虚电路),并进入PVC视图 |
pvc { pvc-name [ vpi/vci ] | vpi/vci } |
必选 缺省情况下,未创建任何PVC |
|
为PVC创建一个具有缺省路由属性的IPoA映射 |
map ip default |
MPLS L2VPN支持连接异构网络时,必选 缺省情况下,不存在任何映射 |
![]()
· PE连接CE接口的VPI/VCI号与CE设备上的VPI/VCI号必须一致。
· 有关PVC和ATM接口的详细介绍,请参见“二层技术-广域网接入配置指导”中的“ATM”。
表1-11 配置CCC本地连接
|
命令 |
说明 |
|
|
进入系统视图 |
system-view |
- |
|
在PE上创建一条连接两个CE的本地CCC连接 |
ccc ccc-connection-name interface interface-type interface-number out-interface interface-type interface-number [ ip-interworking ] |
必选 本配置中指定的两个接口为PE分别与两个CE连接的接口 通过指定两个接口,可以实现将这两个接口所在的AC链路绑定 |
配置CCC远程连接时,需要在PE和P上分别进行如下配置:
· 在两端PE上分别通过ccc interface in-label out-label命令指定入标签和出标签等。PE上不需要执行static-lsp命令为每个CCC远程连接配置静态LSP。
· 在PE之间的所有P设备上执行static-lsp命令为两个数据传输方向分别配置一条静态LSP,用于专门传输CCC连接的数据。
static-lsp命令的详细介绍,请参见“MPLS命令参考”中的“MPLS基础”。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
在PE上创建一条连接两个CE的远程CCC连接 |
ccc ccc-connection-name interface interface-type interface-number in-label in-label-value out-label out-label-value { nexthop ip-address | out-interface interface-type interface-number } [ control-word | no-control-word ] [ ip-interworking ] |
必选 interface interface-type interface-number参数指定的接口为PE上连接CE的接口,通过指定该接口可以实现将该接口所在的AC链路与此CCC远程连接绑定 |
![]()
· CCC使用的标签范围是16~1023,即保留给静态LSP使用的标签。
· 只有出接口连接的链路是点到点链路时,才能够使用out-interface参数指定出接口;如果出接口连接的链路不是点到点链路,如出接口类型为三层以太网接口、VLAN接口或三层聚合接口,则必须使用nexthop参数指定下一跳IP地址。
· CCC方式下,如果PE上连接CE的接口为VLAN接口、以太网子接口,则PE发送给CE的报文都会携带VLAN Tag。因此,在这种情况下,需要配置CE上连接PE的接口可以接收携带VLAN Tag的报文。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
为Transit节点配置静态LSP |
static-lsp transit lsp-name incoming-interface interface-type interface-number in-label in-label { nexthop next-hop-addr | outgoing-interface interface-type interface-number } out-label out-label |
必选 |
SVC具有以下几种配置方法:
· 在三层接口上配置普通方式的SVC:采用该方法建立的VC连接不支持VC冗余保护功能。
· 在三层接口上配置主备方式的SVC:采用该方法建立VC连接时,可以同时建立主备两条VC连接,以便实现VC的冗余保护。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入连接CE的接口视图 |
interface interface-type interface-number |
- |
|
创建普通方式的SVC |
mpls static-l2vc destination destination-router-id transmit-vpn-label transmit-label-value receive-vpn-label receive-label-value [ { control-word | ethernet | ip-interworking | no-control-word | vlan } | tunnel-policy tunnel-policy-name ] * |
必选 |
![]()
· SVC使用的标签范围是16~1023,即保留给静态LSP使用的标签。
· 本地PE上配置的transmit-vpn-label与对端PE上配置的receive-vpn-label应该相同;本地PE上配置的receive-vpn-label与对端PE上配置的transmit-vpn-label应该相同。
表1-15 在三层接口上配置主备方式的SVC
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入连接CE的接口视图 |
interface interface-type interface-number |
- |
|
创建主备SVC方式的VC连接,并进入Static-L2VC视图 |
mpls static-l2vc destination vcid [ { control-word | ethernet | ip-interworking | no-control-word | vlan } | [ tunnel-policy tunnel-policy-name ] [ backup-peer ip-address vcid [ backup-tunnel-policy tunnel-policy-name | revertive [ wtr-time wtr-time ] ] * ] ] * |
必选 缺省情况下,没有创建主备SVC方式的VC连接 执行本配置时如果指定了backup-peer参数,则可以创建备份VC,以实现VC冗余保护 |
|
退回接口视图 |
quit |
- |
|
手工将流量从当前使用的VC切换到当前处于备份状态的VC |
mpls static-l2vc switchover |
可选 |
配置Martini方式的MPLS L2VPN时需要:
(1) 配置远端对等体
Martini方式的MPLS L2VPN中,需要在PE之间交换VC标签。由于交换VC标签的两个PE可能不是直接相连的,所以需要在两个PE上分别将对端PE配置为远端对等体,以便在PE之间建立LDP远端会话,并在这个会话上传递VC FEC和VC标签。
(2) 创建Martini方式VC连接
用户可以通过在三层接口上创建Martini方式的VC连接:从该接口接收到的报文将通过创建的VC连接转发。如果三层接口为VLAN接口,则不同二层以太网接口接收的相同VLAN Tag的报文均通过创建的VC连接转发,即只能根据接收报文中的VLAN Tag匹配绑定的VC连接,无法区分不同二层以太网接口连接的不同用户和业务。因此,三层接口连接的用户都通过同一个VC连接转发报文时,建议采用此方式。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建远端对等体实体并进入MPLS-LDP远端对等体视图 |
mpls ldp remote-peer remote-peer-name |
必选 |
|
将对端PE的地址指定为LDP远端对等体的IP地址 |
remote-ip ip-address |
必选 |
![]()
有关远端对等体的配置请参见“MPLS配置指导”中的“MPLS基础”。
表1-17 在三层接口上创建Martini方式的VC连接
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入连接CE的接口视图 |
interface interface-type interface-number |
- |
|
创建Martini方式VC连接 |
mpls l2vc destination vcid [ { control-word | ethernet | ip-interworking | no-control-word | vlan } | [ tunnel-policy tunnel-policy-name ] [ backup-peer ip-address vcid [ backup-tunnel-policy tunnel-policy-name | revertive [ wtr-time wtr-time ] ] * ] ] * |
必选 执行本配置时如果指定了backup-peer参数,则可以创建备份VC,以实现VC冗余保护 |
|
手工将流量从当前使用的VC切换到当前处于备份状态的VC |
mpls l2vc switchover |
可选 |
![]()
创建Martini方式VC连接的命令主要参数有两个:一个是对端PE的IP地址,一个是VC ID。其中,VC ID与封装类型的组合必须在PE上唯一,修改封装类型可能会造成VC ID的冲突。
![]()
MPLS LSP Ping只能用来检测Martini方式VC的可达性。
在MPLS L2VPN网络中,通过MPLS LSP Ping功能,可以对VC的可达性进行检测,并提供必要的诊断信息,以便对VC的故障进行定位。
MPLS LSP Ping功能采取的方法是:在本地PE设备上为MPLS Echo Request报文压入待检测的VC对应的标签,使得MPLS Echo Request报文沿着VC转发,本地PE设备根据收到的对端PE设备的应答报文,判断VC的可达性。
表1-18 利用MPLS LSP Ping功能检测VC
|
操作 |
命令 |
说明 |
|
通过MPLS LSP Ping检测VC的可达性 |
ping lsp [ -a source-ip | -c count | -exp exp-value | -h ttl-value | -m wait-time | -r reply-mode | -s packet-size | -t time-out | -v ] * pw ip-address pw-id pw-id |
必选 可在任意视图下执行本命令 |
配置Kompella方式远程连接时,需要在PE上进行以下配置:
· 配置BGP的L2VPN能力
· 创建并配置MPLS L2VPN
· 配置CE连接
配置Kompella方式本地连接时,不需要配置BGP的L2VPN能力,只需在PE上创建并配置MPLS L2VPN、配置CE连接。
表1-19 配置BGP的L2VPN能力
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入BGP视图 |
bgp as-number |
- |
|
与对端PE建立对等体 |
peer { group-name | ip-address } as-number as-number |
必选 |
|
指定建立TCP连接的接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
必选 |
|
进入BGP-L2VPN地址族视图 |
l2vpn-family |
必选 |
|
对接收到的VPNv4路由使能VPN-Target过滤功能 |
policy vpn-target |
可选 缺省情况下,对接收的路由信息进行VPN-target扩展团体属性的过滤 |
|
使能对等体,并使能交换BGP-L2VPN地址族的BGP路由信息的能力 |
peer { group-name | ip-address } enable |
必选 |
![]()
BGP-L2VPN地址族下的详细配置,请参见“MPLS配置指导”中的“MPLS L3VPN”。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建MPLS L2VPN,并进入MPLS-L2VPN视图 |
mpls l2vpn vpn-name [ encapsulation { atm-aal5 | ethernet | fr | hdlc | ppp | vlan } [ control-word | no-control-word ] ] |
必选 |
|
为MPLS L2VPN配置RD |
route-distinguisher route-distinguisher |
必选 |
|
将指定MPLS L2VPN和一个或多个VPN Target相关联 |
vpn-target vpn-target&<1-16> [ both | export-extcommunity | import-extcommunity ] |
必选 |
|
配置MPLS L2VPN的MTU值 |
mtu mtu |
可选 缺省情况下,MPLS L2VPN的MTU值为1500 本命令配置的MTU值只用于PE之间的参数协商,并不指导转发,因此不建议使用此命令 |
![]()
· Kompella方式MPLS L2VPN必须在PE上为每个直接相连的CE所在的VPN创建L2VPN。创建L2VPN时指定的封装类型应与AC链路类型对应。
· 对于Kompella L2VPN,必须配置RD。RD配置后不能修改,除非先删除创建的VPN,然后重新创建。
配置CE连接时的主要参数解释如下:
(1) id ce-id
PE连接的本地CE的CE ID。
(2) range ce-range
当前CE在一个VPN内最多可以连接的CE数——CE范围(CE range)。
建议根据对VPN规模发展的预计,把CE range设置得比实际需要大一些。这样当以后对VPN进行扩容,增加VPN中的CE数目时,就可以尽量少的修改配置。
(3) default-offset default-offset
VPN中CE的起始编号,取值为0或1。取值为0时,表示VPN内的CE从0开始编号;取值为1时,表示VPN内的CE从1开始编号。
本参数和CE range决定了PE为CE分配的标签块:
· 第一次执行ce命令时指定CE range为ce-range1,则分配第一个标签块,其LR与CE range相同,为ce-range1。如果default-offset为0,则LO为0;否则,LO为1。
· 再次执行ce命令时将CE range增加为ce-range2(大于ce-range1),则分配第二个标签块,LR为ce-range2-ce-range1。如果default-offset为0,则LO为ce-range1;否则,LO为ce-range1+1。以此类推。
例如,在PE上先后执行如下命令,则PE分配三个标签块,分别为:LB1/0/10、LB2/10/12、LB3/22/14。其中,LB1、LB2、LB3为PE自动选取的标签值。
ce ce1 id 1 range 10 default-offset 0
ce ce1 id 1 range 22
ce ce1 id 1 range 36
(4) ce-offset ce-id
与本地CE建立远程连接或本地连接的对端CE的CE ID。
如果执行connection命令时没有指定本参数,则:
· 第一次执行connection命令时,为本地CE与ID为default-offset的对端CE建立连接。如果default-offset的值与本地CE ID相同,则为本地CE与ID为default-offset+1的对端CE建立连接。
· 再次执行connection命令时,为本地CE与ID为<上一个连接的CE ID+1>的对端CE建立连接。如果<上一个连接的CE ID+1>与本地CE ID相同,则为本地CE与ID为<上一个连接的CE ID+2>的对端CE建立连接。以此类推。
在规划VPN时,建议CE ID编号顺序递增,在配置连接时按CE ID顺序配置,这样,大多数连接都可以省略ce-offset参数,使用缺省值,从而简化配置。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入MPLS-L2VPN视图 |
mpls l2vpn vpn-name |
- |
|
创建CE,指定CE名称、CE ID、CE range、CE起始编号,并进入MPLS-L2VPN-CE视图 |
ce ce-name [ id ce-id [ range ce-range ] [ default-offset default-offset ] ] |
必选 |
|
创建Kompella方式连接 |
connection [ ce-offset ce-id ] interface interface-type interface-number [ tunnel-policy tunnel-policy-name ] |
必选 ce-offset ce-id参数指定的CE ID值决定了此连接是本地连接还是远程连接。如果该CE ID标识的CE与本CE连接在同一个PE上,则建立的为本地连接;否则,为远程连接 本配置中指定的接口为PE上连接CE的接口,通过指定该接口可以实现将该接口所在的AC链路与此连接绑定 |
![]()
· 通过重复执行ce命令的方式修改CE range时,只能把CE range改得更大,不能改小。例如:原来的CE range为10,则可以把它改为20;如果改为5,则会失败。要想将CE range改小,则需要删除这个CE,并重新创建。
· 通过重复执行ce命令的方式将CE range改得更大时,不会导致原有业务的中断。
当影响BGP路由选择的配置发生变化后,如果需要通过复位BGP会话使新的配置生效,请在用户视图下进行以下配置。
表1-22 复位L2VPN的BGP会话
|
操作 |
命令 |
|
复位L2VPN的BGP会话 |
reset bgp l2vpn { as-number | ip-address | all | external | internal } |
MPLS L2VPN远程连接组网中,需要在骨干网上配置MPLS LDP、MPLS TE或GRE,建立承载VC的公网隧道。公网隧道的配置过程较为复杂,SoftGRE功能可以用来取代复杂的公网隧道配置。
在PE设备上使能SoftGRE功能后,若PE间不存在承载VC的公网隧道,或存在的公网隧道不满足隧道策略,则PE设备会使用SoftGRE方式封装报文,即自动对封装了VC标签的二层数据报文进行GRE封装(封装GRE头和外层的IP报文头)。其中,外层IP报文头的源IP地址为本端的LSR ID、目的IP地址为远端PE的LSR ID。
在PE设备上使能SoftGRE功能后,若PE间存在可用的公网隧道,则优先采用公网隧道封装报文,不会采用SoftGRE方式封装报文。
目前,只有SVC方式的MPLS L2VPN(包括普通方式的SVC和主备方式的SVC)支持SoftGRE功能。
表1-23 配置SoftGRE功能
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入L2VPN视图 |
l2vpn |
- |
|
使能SoftGRE功能 |
mpls l2vpn soft-gre |
必选 缺省情况下,SoftGRE功能处于关闭状态 |
用户网络为以太网时,该网络内会运行自己的二层协议,例如CDP、GVRP、LACP、LLDP、PAGP、PVST、STP、UDLD、VTP等。当这些用户网络协议报文需要通过MPLS L2VPN远程连接转发时,通过在PE上配置L2PT(Layer 2 Protocol Tunneling,二层协议隧道)可以实现对协议报文进行如下处理:
· Tunnel模式:对于从用户网络接收到的协议报文,利用L2PT的组播目的MAC地址替换报文中的协议目的MAC地址;对于发送到用户网络的协议报文,如果报文目的MAC地址为本地配置的L2PT组播目的MAC地址,则根据报文的二层协议类型将报文中的MAC地址还原为该协议的目的MAC地址。如果VC连接没有跨越整个运营商网络,运营商网络内部需要将报文还原为原始二层报文在骨干网上转发。此时,为了避免骨干网和用户网络内的二层协议报文冲突,需要在运营商网络的两端设备上分别配置L2PT的Tunnel模式和BPDU Tunnel功能,以便在骨干网上传递用户网络二层协议报文时改变其目的MAC地址。BPDU Tunnel的详细介绍,请参见“二层技术-以太网交换配置指导”中的“BPDU Tunnel”。
· EXP模式:为用户网络的二层协议报文封装VC标签时,将VC标签的EXP设置为指定的值。
· Tunnel+EXP模式:同时采用Tunnel模式和EXP模式处理用户网络的二层协议报文。
· Drop模式:丢弃用户网络的二层协议报文。
用户可以根据需要为CDP、GVRP、LACP、LLDP、PAGP、PVST、STP、UDLD、VTP协议配置不同的处理模式。建议在两端PE上为同种协议配置相同的处理模式和组播目的MAC地址,否则可能会导致报文转发失败。
BPDU Tunnel功能的详细介绍,请参见“二层技术-以太网交换配置指导”中的“BPDU Tunnel”。
表1-24 配置L2PT功能
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置L2PT的组播目的MAC地址 |
l2protocol-tunnel mac-address mac-address |
可选 缺省情况下,L2PT的组播目的MAC地址为010F-E200-0003 |
|
进入连接CE的接口视图 |
interface interface-type interface-number |
- |
|
使能L2PT功能 |
l2protocol-tunnel { cdp | gvrp | lacp | lldp | pagp | pvst | stp | udld | vtp } { drop | tunnel [ experimental mpls-exp-value] | experimental mpls-exp-value } |
必选 缺省情况下,各协议的L2PT功能均处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS L2VPN的运行情况,通过查看显示信息验证配置的效果。
表1-25 MPLS L2VPN显示和维护
|
操作 |
命令 |
|
显示CCC连接信息 |
display ccc [ ccc-name ccc-name | type { local | remote } ] [ | { begin | exclude | include } regular-expression ] |
|
显示L2VPN VC使用的接口信息 |
display l2vpn ccc-interface vc-type { all | bgp-vc | ccc | ldp-vc | static-vc } [ up | down ] [ | { begin | exclude | include } regular-expression ] |
|
显示设备上创建的SVC的相关信息 |
display mpls static-l2vc [ interface interface-type interface-number [ service-instance instance-id ] ] [ | { begin | exclude | include } regular-expression ] |
|
显示设备上Martini方式VC的相关信息 |
display mpls l2vc[ interface interface-type interface-number [ service-instance instance-id ] | remote-info] [ | { begin | exclude | include } regular-expression ] |
|
显示Kompella方式的VC连接信息 |
display mpls l2vpn connection [ vpn-name vpn-name [ remote-ce ce-id | down | up | verbose ] | summary | interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
|
显示BGP路由表中的L2VPN信息 |
display bgp l2vpn { all | group [ group-name ] | peer [ [ ip-address ] verbose ] | route-distinguisher rd [ ce-id ce-id [ label-offset label-offset ] ] } [ | { begin | exclude | include } regular-expression ] |
|
显示PE上的L2VPN信息 |
display mpls l2vpn [ export-route-target-list | import-route-target-list | vpn-name vpn-name [ local-ce | remote-ce ] ] [ | { begin | exclude | include } regular-expression ] |
|
显示MPLS L2VPN的AC表项信息 |
display mpls l2vpn fib ac vpws [ interface interface-type interface-number [ service-instance service-instanceid ] ] [ | { begin | exclude | include } regular-expression ] |
|
显示MPLS L2VPN的PW表项信息 |
display mpls l2vpn fib pw vpws [ interface interface-type interface-number [ service-instance service-instanceid ] ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
|
显示L2PT统计信息 |
display l2protocol-tunnel interface interface-type interface-number |
· CE与PE之间通过Serial口相连,链路层封装PPP。
· 通过在PE上建立CCC本地连接,实现从CE 1接收的报文直接转发给CE 2、从CE 2接收的报文直接转发给CE 1,转发报文时无需查找转发表,加快转发速度。
由于CCC的本地连接是双向的,因此在PE上只需要创建一条CCC本地连接。
图1-12 配置CCC本地连接组网图

(1) 配置CE 1
# 配置连接PE的接口Serial2/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface serial 2/0
[CE1-Serial2/0] link-protocol ppp
[CE1-Serial2/0] ip address 100.1.1.1 24
(2) 配置PE
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE
[PE] interface loopback 0
[PE-LoopBack0] ip address 172.1.1.1 32
[PE-LoopBack0] quit
[PE] mpls lsr-id 172.1.1.1
[PE] mpls
[PE-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE] l2vpn
[PE-l2vpn] mpls l2vpn
[PE-l2vpn] quit
# 配置接口Serial2/0的链路协议类型为PPP。
[PE] interface serial 2/0
[PE-Serial2/0] link-protocol ppp
[PE-Serial2/0] quit
# 配置接口Serial2/1的链路协议类型为PPP。
[PE] interface serial 2/1
[PE-Serial2/1] link-protocol ppp
[PE-Serial2/1] quit
# 创建CE 1到CE 2的本地连接。
[PE] ccc ce1-ce2 interface serial 2/0 out-interface serial 2/1
(3) 配置CE 2
# 配置连接PE的接口Serial2/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface serial 2/0
[CE2-Serial2/0] link-protocol ppp
[CE2-Serial2/0] ip address 100.1.1.2 24
# 配置完成后,在PE上通过display ccc命令可以看到建立了一条CCC本地连接。
[PE] display ccc
Total ccc vc : 1
Local ccc vc : 1, 1 up
Remote ccc vc : 0, 0 up
***Name : ce1-ce2
Type : local
State : up
Intf1 : Serial2/0 (up)
Intf2 : Serial2/1 (up)
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=180 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=10 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=70 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=60 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/76/180 ms
· CE 1与PE之间通过Serial接口相连,链路层封装FR。
· CE 2与PE之间通过ATM接口相连。
· 通过在PE上建立CCC本地连接,实现异构网络的互联。
· 由于CCC的本地连接是双向的,因此在PE上只需要创建一条CCC本地连接。
· PE与CE 1之间的链路类型为FR,与CE 2之间的链路类型为ATM,因此在PE上需要配置CCC本地连接支持连接异构的网络。
图1-13 配置CCC本地IP异构连接组网图

(1) 配置CE 1
# 配置连接PE的接口Serial2/0的链路层协议为帧中继。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface serial 2/0
[CE1-Serial2/0] link-protocol fr
[CE1-Serial2/0] quit
# 为帧中继点对点子接口Serial2/0.1配置虚电路,并配置帧中继点对点子接口的IP地址。
[CE1] interface serial 2/0.1 p2p
[CE1-Serial2/0.1] fr dlci 100
[CE1-fr-dlci-Serial2/0.1-100] quit
[CE1-Serial2/0.1] ip address 100.1.1.1 24
[CE1-Serial2/0.1] quit
(2) 配置PE
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE
[PE] interface loopback 0
[PE-LoopBack0] ip address 172.1.1.1 32
[PE-LoopBack0] quit
[PE] mpls lsr-id 172.1.1.1
[PE] mpls
[PE-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE] l2vpn
[PE-l2vpn] mpls l2vpn
[PE-l2vpn] quit
# 配置接口Serial2/0。
[PE] interface serial 2/0
[PE-Serial2/0] link-protocol fr
[PE-Serial2/0] fr interface-type dce
[PE-Serial2/0] quit
[PE] interface serial 2/0.1 p2p
[PE-Serial2/0.1] fr dlci 100
[PE-fr-dlci-Serial2/0.1-100] quit
[PE-Serial2/0.1] quit
# 配置接口ATM5/0。
[PE] interface atm 5/0.1 p2p
[PE-Atm5/0.1] pvc 100/200
[PE-atm-pvc-Atm5/0.1-100/200] map ip default
[PE-atm-pvc-Atm5/0.1-100/200] quit
[PE-Atm5/0.1] quit
# 创建CE 1到CE 2的本地连接。
[PE] ccc ce1-ce2 interface serial 2/0.1 out-interface atm 5/0.1 ip-interworking
(3) 配置CE 2
# 在ATM点对点子接口ATM5/0.1上创建一条PVC,配置IPoA映射,并配置接口的IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface atm 5/0.1 p2p
[CE2-Atm5/0.1] pvc 100/200
[CE2-atm-pvc-Atm5/0.1-100/200] map ip 100.1.1.1
[CE2-atm-pvc-Atm5/0.1-100/200] quit
[CE2-Atm5/0.1] ip address 100.1.1.2 24
[CE2-Atm5/0.1] quit
# 配置完成后,在PE上查看CCC连接信息,可以看到建立了一条CCC本地连接。
[PE] display ccc
Total ccc vc : 1
Local ccc vc : 1, 1 up
Remote ccc vc : 0, 0 up
***Name : ce1-ce2
Type : local
State : up
Intf1 : Serial2/0.1 (up)
Intf2 : Atm5/0.1 (up)
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=2 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=3 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=3 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=2 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/3 ms
· CE与PE之间通过POS接口相连,链路层封装PPP。
· 通过建立CCC远程连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
配置CCC远程连接的关键步骤包括:
· 在PE上创建一条CCC远程连接(不需要配置静态LSP)。
· PE上需要使能MPLS L2VPN,P设备上不需要使能MPLS L2VPN。
· 在P上配置两条静态LSP,用于双向传递报文。
图1-14 配置CCC远程连接组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
POS5/0 |
100.1.1.1/24 |
CE 2 |
POS5/0 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
10.0.0.1/32 |
P |
Loop0 |
10.0.0.2/32 |
|
|
POS5/1 |
10.1.1.1/24 |
|
POS5/0 |
10.2.2.2/24 |
|
PE 2 |
Loop0 |
10.0.0.3/32 |
|
POS5/1 |
10.1.1.2/24 |
|
|
POS5/0 |
10.2.2.1/24 |
|
|
|
(1) 配置CE 1
# 配置连接PE 1的接口POS5/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface pos 5/0
[CE1-POS5/0] link-protocol ppp
[CE1-POS5/0] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 10.0.0.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 10.0.0.1
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 配置接口POS5/0。
[PE1] interface pos 5/0
[PE1-POS5/0] link-protocol ppp
[PE1-POS5/0] quit
# 配置接口POS5/1,使能MPLS。
[PE1] interface pos 5/1
[PE1-POS5/1] link-protocol ppp
[PE1-POS5/1] ip address 10.1.1.1 24
[PE1-POS5/1] mpls
[PE1-POS5/1] quit
# 创建CE 1到CE 2的远程连接:入接口为连接CE 1的接口,出接口为连接P的接口;入标签为100,出标签为200。
[PE1] ccc ce1-ce2 interface pos 5/0 in-label 100 out-label 200 out-interface pos 5/1
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 10.0.0.2 32
[P-LoopBack0] quit
[P] mpls lsr-id 10.0.0.2
[P] mpls
[P-mpls] quit
# 配置接口POS5/1,使能MPLS。
[P] interface pos 5/1
[P-POS5/1] link-protocol ppp
[P-POS5/1] ip address 10.1.1.2 24
[P-POS5/1] mpls
[P-POS5/1] quit
# 配置接口POS5/0,使能MPLS。
[P] interface pos 5/0
[P-POS5/0] link-protocol ppp
[P-POS5/0] ip address 10.2.2.2 24
[P-POS5/0] mpls
[P-POS5/0] quit
# 配置一条静态LSP用于转发由PE1去往PE2的报文。
[P] static-lsp transit pe1_pe2 incoming-interface pos 5/1 in-label 200 outgoing-interface pos 5/0 out-label 201
# 配置另一条静态LSP用于转发由PE2去往PE1的报文。
[P] static-lsp transit pe2_pe1 incoming-interface pos 5/0 in-label 101 outgoing-interface pos 5/1 out-label 100
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 10.0.0.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 10.0.0.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 配置接口POS5/1。
[PE2] interface pos 5/1
[PE2-POS5/1] link-protocol ppp
[PE2-POS5/1] quit
# 配置接口POS5/0,使能MPLS。
[PE2] interface pos 5/0
[PE2-POS5/0] link-protocol ppp
[PE2-POS5/0] ip address 10.2.2.1 24
[PE2-POS5/0] mpls
[PE2-POS5/0] quit
# 创建CE2到CE1的远程连接:入接口为连接CE2的接口,出接口为连接P的接口;入标签为201,出标签为101。
[PE2] ccc ce2-ce1 interface pos 5/1 in-label 201 out-label 101 out-interface pos 5/0
(5) 配置CE 2
# 配置连接PE 2的接口POS5/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface pos 5/0
[CE2-POS5/0] link-protocol ppp
[CE2-POS5/0] ip address 100.1.1.2 24
# 配置完成后,在PE 1上查看CCC连接信息,可以看到建立了一条CCC远程连接。
[PE1] display ccc
Total ccc vc : 1
Local ccc vc : 0, 0 up
Remote ccc vc : 1, 1 up
***Name : ce1-ce2
Type : remote
State : up
Intf : POS5/0 (up)
In-label : 100
Out-label : 200
Out-interface : POS5/1
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=180 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=10 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=70 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=60 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/76/180 ms
· CE与PE之间通过POS口相连,链路层封装PPP。
· 通过建立SVC方式的VC连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
主要的配置步骤可分为两部分:
· 在PE和P上配置MPLS基本转发能力:包括配置LSR ID、使能MPLS和LDP、在PE 1-P-PE 2之间运行IGP(本配置举例中使用OSPF)以建立LSP。
· 建立SVC方式的VC连接:包括在PE 1和PE 2上使能MPLS L2VPN、创建SVC连接并指定VC标签。
图1-15 配置SVC方式MPLS L2VPN组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
POS5/0 |
100.1.1.1/24 |
CE 2 |
POS5/0 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
192.2.2.2/32 |
P |
Loop0 |
192.4.4.4/32 |
|
|
POS5/1 |
10.1.1.1/24 |
|
POS5/0 |
10.2.2.2/24 |
|
PE 2 |
Loop0 |
192.3.3.3/32 |
|
POS5/1 |
10.1.1.2/24 |
|
|
POS5/0 |
10.2.2.1/24 |
|
|
|
(1) 配置CE 1
# 配置连接PE 1的接口POS5/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface pos 5/0
[CE1-POS5/0] link-protocol ppp
[CE1-POS5/0] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 全局使能LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置连接P的接口POS5/1,在此接口上使能LDP。
[PE1] interface pos 5/1
[PE1-POS5/1] link-protocol ppp
[PE1-POS5/1] ip address 10.1.1.1 24
[PE1-POS5/1] mpls
[PE1-POS5/1] mpls ldp
[PE1-POS5/1] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在接入CE 1的接口POS5/0上创建一条SVC方式VC连接。此接口不需配置IP地址。
[PE1] interface pos 5/0
[PE1-POS5/0] link-protocol ppp
[PE1-POS5/0] mpls static-l2vc destination 192.3.3.3 transmit-vpn-label 100 receive-vpn-label 200
[PE1-POS5/0] quit
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 192.4.4.4 32
[P-LoopBack0] quit
[P] mpls lsr-id 192.4.4.4
[P] mpls
[P-mpls] quit
# 全局使能LDP。
[P] mpls ldp
[P-mpls-ldp] quit
# 配置连接PE 1的接口POS5/1,在此接口上使能LDP。
[P] interface pos 5/1
[P-POS5/1] link-protocol ppp
[P-POS5/1] ip address 10.1.1.2 24
[P-POS5/1] mpls
[P-POS5/1] mpls ldp
[P-POS5/1] quit
# 配置连接PE 2的接口POS5/0,在此接口上使能LDP。
[P] interface pos 5/0
[P-POS5/0] link-protocol ppp
[P-POS5/0] ip address 10.2.2.2 24
[P-POS5/0] mpls
[P-POS5/0] mpls ldp
[P-POS5/0] quit
# 在P上运行OSPF,用于建立LSP。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.2.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 192.4.4.4 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 全局使能LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置连接P的接口POS5/0,在此接口上使能LDP。
[PE2] interface pos 5/0
[PE2-POS5/0] link-protocol ppp
[PE2-POS5/0] ip address 10.2.2.1 24
[PE2-POS5/0] mpls
[PE2-POS5/0] mpls ldp
[PE2-POS5/0] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.2.2.1 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在接入CE 2的接口POS5/1上创建一条SVC方式VC连接。此接口不需配置IP地址。
[PE2] interface pos 5/1
[PE2-POS5/1] link-protocol ppp
[PE2-POS5/1] mpls static-l2vc destination 192.2.2.2 transmit-vpn-label 200 receive-vpn-label 100
[PE2-POS5/1] quit
(5) 配置CE 2
# 配置连接PE 2的接口POS5/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface pos 5/0
[CE2-POS5/0] link-protocol ppp
[CE2-POS5/0] ip address 100.1.1.2 24
# 在PE 1上查看SVC的VC连接信息,可以看到建立了一条VC连接。
[PE1] display mpls static-l2vc
Total connections: 1, 1 up, 0 down
ce-intf state destination tr-label rcv-label tnl-policy
POS5/0 up 192.3.3.3 100 200 -
# 在PE2上也可以看到SVC的VC连接。
[PE2] display mpls static-l2vc
Total connections: 1, 1 up, 0 down
ce-intf state destination tr-label rcv-label tnl-policy
POS5/1 up 192.2.2.2 200 100 -
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=150 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=130 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=130 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=140 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=80 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 80/126/150 ms
· CE与PE之间通过Serial口相连,链路层封装PPP。
· 通过建立Martini方式的VC连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
图1-16 配置Martini方式MPLS L2VPN组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
S2/0 |
100.1.1.1/24 |
CE 2 |
S2/0 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
192.2.2.2/32 |
P |
Loop0 |
192.4.4.4/32 |
|
|
S2/1 |
10.1.1.1/24 |
|
S2/0 |
10.1.1.2/24 |
|
PE 2 |
Loop0 |
192.3.3.3/32 |
|
S2/1 |
10.2.2.2/24 |
|
|
S2/1 |
10.2.2.1/24 |
|
|
|
(1) 配置CE 1
# 配置连接PE 1的接口Serial2/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface serial 2/0
[CE1-Serial2/0] link-protocol ppp
[CE1-Serial2/0] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 全局使能LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置PE 1与PE 2建立LDP远程会话。
[PE1] mpls ldp remote-peer 1
[PE1-mpls-ldp-remote-1] remote-ip 192.3.3.3
[PE1-mpls-ldp-remote-1] quit
# 配置连接P的接口Serial2/1,在此接口上使能LDP。
[PE1] interface serial 2/1
[PE1-Serial2/1] link-protocol ppp
[PE1-Serial2/1] ip address 10.1.1.1 24
[PE1-Serial2/1] mpls
[PE1-Serial2/1] mpls ldp
[PE1-Serial2/1] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在接入CE 1的接口Serial2/0上创建VC连接。此接口不需配置IP地址。
[PE1] interface serial 2/0
[PE1-Serial2/0] mpls l2vc 192.3.3.3 101
[PE1-Serial2/0] quit
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 192.4.4.4 32
[P-LoopBack0] quit
[P] mpls lsr-id 192.4.4.4
[P] mpls
[P-mpls] quit
# 全局使能LDP。
[P] mpls ldp
[P-mpls-ldp] quit
# 配置连接PE 1的接口Serial2/0,在此接口上使能LDP。
[P] interface serial 2/0
[P-Serial2/0] link-protocol ppp
[P-Serial2/0] ip address 10.1.1.2 24
[P-Serial2/0] mpls
[P-Serial2/0] mpls ldp
[P-Serial2/0] quit
# 配置连接PE 2的接口Serial2/1,在此接口上使能LDP。
[P] interface serial 2/1
[P-Serial2/1] link-protocol ppp
[P-Serial2/1] ip address 10.2.2.2 24
[P-Serial2/1] mpls
[P-Serial2/1] mpls ldp
[P-Serial2/1] quit
# 在P上运行OSPF,用于建立LSP。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.2.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 192.4.4.4 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 全局使能LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置PE 2与PE 1建立LDP远程会话。
[PE2] mpls ldp remote-peer 2
[PE2-mpls-ldp-remote-2] remote-ip 192.2.2.2
[PE2-mpls-ldp-remote-2] quit
# 配置连接P的接口Serial2/1,在此接口上使能LDP。
[PE2] interface serial 2/1
[PE2-Serial2/1] link-protocol ppp
[PE2-Serial2/1] ip address 10.2.2.1 24
[PE2-Serial2/1] mpls
[PE2-Serial2/1] mpls ldp
[PE2-Serial2/1] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.2.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在接入CE 2的接口Serial2/0上创建VC连接。此接口不需配置IP地址。
[PE2] interface serial 2/0
[PE2-Serial2/0] mpls l2vc 192.2.2.2 101
[PE2-Serial2/0] quit
(5) 配置CE 2
# 配置连接PE 2的接口Serial2/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface serial 2/0
[CE2-Serial2/0] link-protocol ppp
[CE2-Serial2/0] ip address 100.1.1.2 24
# 在PE 1上查看VC连接信息,可以看到建立了一条VC连接。
[PE1] display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client VC Local Remote
VC ID Intf State VC Label VC Label
101 S2/0 up 1024 1025
# 在PE 2上也可以看到VC连接。
[PE2] display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client VC Local Remote
VC ID Intf State VC Label VC Label
101 S2/0 up 1025 1024
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
· CE与PE之间通过Serial口相连,链路层封装PPP。
· CE 1和CE 2之间建立两条Martini方式的VC连接:CE 1-PE 1-PE 2-CE 2的连接和CE 1-PE 1-PE 3-CE 2的连接。
· CE 1-PE 1-PE 2-CE 2的连接为主VC连接,该连接正常工作时,CE 1和CE 2通过该连接通信。
· CE 1-PE 1-PE 3-CE 2的连接为备份VC连接,当PE 1检测到主VC连接出现故障时,启用备份连接,CE 1和CE 2通过备份连接通信。
图1-17 配置Martini方式MPLS L2VPN冗余保护组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
S2/0 |
100.1.1.1/24 |
PE 2 |
Loop0 |
2.2.2.2/32 |
|
|
S2/0 |
100.2.1.1/24 sub |
|
S2/0 |
12.1.1.2/24 |
|
|
S2/1 |
100.3.1.1/24 |
PE 3 |
Loop0 |
3.3.3.3/32 |
|
PE 1 |
Loop0 |
1.1.1.1/32 |
|
S2/0 |
13.1.1.3/24 |
|
|
S2/1 |
12.1.1.1/24 |
CE 2 |
S2/0 |
100.1.1.2/24 |
|
|
S2/2 |
13.1.1.1/24 |
|
S2/1 |
100.2.1.2/24 |
(1) 配置CE 1
# 配置接口的IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface serial 2/0
[CE1-Serial2/0] link-protocol ppp
[CE1-Serial2/0] ip address 100.1.1.1 24
[CE1-Serial2/0] ip address 100.2.1.1 24 sub
[CE1-Serial2/0] quit
[CE1] interface serial 2/1
[CE1-Serial2/1] link-protocol ppp
[CE1-Serial2/1] ip address 100.3.1.1 24
[CE1-Serial2/1] quit
# 配置IS-IS,发布接口所在网段的路由。
[CE1] isis 1
[CE1-isis-1] network-entity 10.0000.0000.0001.00
[CE1-isis-1] quit
[CE1] interface serial 2/0
[CE1-Serial2/0] isis enable 1
[CE1-Serial2/0] quit
[CE1] interface serial 2/1
[CE1-Serial2/1] isis enable 1
[CE1-Serial2/1] quit
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.1
[PE1] mpls
[PE1-mpls] quit
# 全局使能MPLS LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置接口Serial2/1和Serial2/2,并配置PE 1与PE 2、PE 3建立LDP会话。
[PE1] interface serial 2/1
[PE1-Serial2/1] link-protocol ppp
[PE1-Serial2/1] ip address 12.1.1.1 24
[PE1-Serial2/1] mpls
[PE1-Serial2/1] mpls ldp
[PE1-Serial2/1] quit
[PE1] interface serial 2/2
[PE1-Serial2/2] link-protocol ppp
[PE1-Serial2/2] ip address 13.1.1.1 24
[PE1-Serial2/2] mpls
[PE1-Serial2/2] mpls ldp
[PE1-Serial2/2] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 在接入CE 1的接口Serial2/0上创建主备VC连接。此接口不需配置IP地址。
[PE1] interface serial 2/0
[PE1-Serial2/0] link-protocol ppp
[PE1-Serial2/0] mpls l2vc 2.2.2.2 20 backup-peer 3.3.3.3 30
[PE1-Serial2/0] quit
(3) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.2 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.2
[PE2] mpls
[PE2-mpls] quit
# 全局使能MPLS LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置接口Serial2/0,并配置PE 2与PE 1建立LDP会话。
[PE2] interface serial 2/0
[PE2-Serial2/0] ip address 12.1.1.2 24
[PE2-Serial2/0] mpls
[PE2-Serial2/0] mpls ldp
[PE2-Serial2/0] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 在接入CE 2的接口Serial2/1上创建VC连接。此接口不需配置IP地址。
[PE2] interface serial 2/1
[PE2-Serial2/1] mpls l2vc 1.1.1.1 20
[PE2-Serial2/1] quit
(4) 配置PE 3
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE3
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 3.3.3.3 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 3.3.3.3
[PE3] mpls
[PE3-mpls] quit
# 全局使能MPLS LDP。
[PE3] mpls ldp
[PE3-mpls-ldp] quit
# 配置接口Serial2/0,并配置PE 3与PE 1建立LDP会话。
[PE3] interface serial 2/0
[PE3-Serial2/0] ip address 13.1.1.3 24
[PE3-Serial2/0] mpls
[PE3-Serial2/0] mpls ldp
[PE3-Serial2/0] quit
# 在PE 3上运行OSPF,用于建立LSP。
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
# 使能L2VPN和MPLS L2VPN。
[PE3] l2vpn
[PE3-l2vpn] mpls l2vpn
[PE3-l2vpn] quit
# 在接入CE 2的接口Serial2/1上创建VC连接。此接口不需配置IP地址。
[PE3] interface serial 2/1
[PE3-Serial2/1] mpls l2vc 1.1.1.1 30
[PE3-Serial2/1] quit
(5) 配置CE 2
# 配置接口的IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface serial 2/0
[CE2-Serial2/0] link-protocol ppp
[CE2-Serial2/0] ip address 100.1.1.2 24
[CE2-Serial2/0] quit
[CE2] interface serial 2/1
[CE2-Serial2/1] link-protocol ppp
[CE2-Serial2/1] ip address 100.2.1.2 24
# 配置IS-IS,发布接口所在网段的路由。
[CE2] isis 1
[CE2-isis-1] network-entity 10.0000.0000.0002.00
[CE2-isis-1] quit
[CE2] interface serial 2/0
[CE2-Serial2/0] isis enable 1
[CE2-Serial2/0] quit
[CE2] interface serial 2/1
[CE2-Serial2/1] isis enable 1
[CE2-Serial2/1] quit
# 在PE 1上查看VC连接信息,可以看到建立了主备两条VC连接。
<PE1> display mpls l2vc
Total ldp vc : 2 1 up 0 down 1 blocked
Transport Client Service VC Local Remote
VC ID Intf ID State VC Label VC Label
20 S2/0 -- up 1026 1033
30 S2/0 -- blocked 1027 1050
# 在PE 1上查看VC连接详细信息,可以看到主备两条VC连接的详细信息。
<PE1> display mpls l2vc interface vlan-interface 10
***VC ID : 20
VC State : up
Destination : 2.2.2.2
Client Intf : Serial2/0 is up
Service ID : --
Local Group ID : 0
Remote Group ID : 0
Local VC Label : 1026
Remote VC Label : 1033
Tunnel Policy : -
Tunnel Type : lsp
Tunnel ID : 0xd2009
Local VCCV CC Type : CW, RA
Local VCCV CV Type : LSPV
Remote VCCV CC Type : CW, RA
Remote VCCV CV Type : LSPV
Backup VC
***VC ID : 30
VC State : blocked
Destination : 3.3.3.3
Local Group ID : 0
Remote Group ID : 0
Local VC Label : 1027
Remote VC Label : 1050
Tunnel Policy : -
Tunnel Type : lsp
Tunnel ID : 0xd2001
Remote VCCV CC Type : CW, RA
Remote VCCV CV Type : LSPV
# 在PE 2上也可以看到VC连接。
<PE2> display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client Service VC Local Remote
VC ID Intf ID State VC Label VC Label
20 S2/1 -- up 1033 1026
# 在PE 3上也可以看到VC连接。
<PE3> display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client Service VC Local Remote
VC ID Intf ID State VC Label VC Label
30 S2/1 -- up 1050 1027
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
# CE 2可以ping通CE 1连接的网段100.3.1.0/24。
[CE2] ping 100.3.1.1
PING 100.3.1.1: 56 data bytes, press CTRL_C to break
Reply from 100.3.1.1: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.3.1.1: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.3.1.1: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.3.1.1: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.3.1.1: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.3.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
# 在PE 1上使用mpls l2vc switchover命令手工切换工作连接。
<PE1> system-view
[PE1] interface serial 2/0
[PE1-Serial2/0] mpls l2vc switchover
[PE1-Serial2/0] quit
# 在PE 1上查看VC连接信息,可以看到当前使用的VC连接发生了切换。
[PE1] display mpls l2vc
Total ldp vc : 2 1 up 0 down 1 blocked
Transport Client Service VC Local Remote
VC ID Intf ID State VC Label VC Label
20 S2/0 -- blocked 1026 1033
30 S2/0 -- up 1027 1050
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.2.1.2
PING 100.2.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.2.1.2: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.2.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.2.1.2: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.2.1.2: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.2.1.2: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.2.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
# CE 2仍然可以ping通CE 1连接的网段100.3.1.0/24。
[CE2] ping 100.3.1.1
PING 100.3.1.1: 56 data bytes, press CTRL_C to break
Reply from 100.3.1.1: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.3.1.1: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.3.1.1: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.3.1.1: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.3.1.1: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.3.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
· CE 1与PE 1之间通过Serial口相连,链路层封装PPP。
· CE 2与PE 2之间通过以太网接口相连。
· 通过建立Martini方式的VC连接,实现异构网络的互联。
图1-18 配置Martini方式IP异构MPLS L2VPN组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
S2/0 |
100.1.1.1/24 |
CE 2 |
Eth1/1 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
192.2.2.2/32 |
P |
Loop0 |
192.4.4.4/32 |
|
|
S2/1 |
10.1.1.1/24 |
|
S2/0 |
10.1.1.2/24 |
|
PE 2 |
Loop0 |
192.3.3.3/32 |
|
S2/1 |
10.2.2.2/24 |
|
|
S2/1 |
10.2.2.1/24 |
|
|
|
(1) 配置CE 1
# 配置连接PE 1的接口Serial2/0的链路协议类型为PPP,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface serial 2/0
[CE1-Serial2/0] link-protocol ppp
[CE1-Serial2/0] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 全局使能MPLS LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置PE 1与PE 2建立LDP远程会话。
[PE1] mpls ldp remote-peer 1
[PE1-mpls-ldp-remote-1] remote-ip 192.3.3.3
[PE1-mpls-ldp-remote-1] quit
# 配置连接P的接口Serial2/1,在此接口上使能LDP。
[PE1] interface serial 2/1
[PE1-Serial2/1] link-protocol ppp
[PE1-Serial2/1] ip address 10.1.1.1 24
[PE1-Serial2/1] mpls
[PE1-Serial2/1] mpls ldp
[PE1-Serial2/1] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 在接入CE 1的接口Serial2/0上创建支持连接异构网络的VC连接,并配置PPP支持IPCP无地址协商。此接口不需配置IP地址。
[PE1] interface serial 2/0
[PE1-Serial2/0] mpls l2vc 192.3.3.3 101 ip-interworking
[PE1-Serial2/0] ppp ipcp ignore local-ip
[PE1-Serial2/0] quit
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 192.4.4.4 32
[P-LoopBack0] quit
[P] mpls lsr-id 192.4.4.4
[P] mpls
[P-mpls] quit
# 全局使能LDP。
[P] mpls ldp
[P-mpls-ldp] quit
# 配置连接PE 1的接口Serial2/0,在此接口上使能LDP。
[P] interface serial 2/0
[P-Serial2/0] link-protocol ppp
[P-Serial2/0] ip address 10.1.1.2 24
[P-Serial2/0] mpls
[P-Serial2/0] mpls ldp
[P-Serial2/0] quit
# 配置连接PE 2的接口Serial2/1,在此接口上使能LDP。
[P] interface serial 2/1
[P-Serial2/1] link-protocol ppp
[P-Serial2/1] ip address 10.2.2.2 24
[P-Serial2/1] mpls
[P-Serial2/1] mpls ldp
[P-Serial2/1] quit
# 在P上运行OSPF,用于建立LSP。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.2.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 192.4.4.4 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 全局使能MPLS LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置PE 2与PE 1建立LDP远程会话。
[PE2] mpls ldp remote-peer 2
[PE2-mpls-ldp-remote-2] remote-ip 192.2.2.2
[PE2-mpls-ldp-remote-2] quit
# 配置连接P的接口Serial2/1,在此接口上使能LDP。
[PE2] interface serial 2/1
[PE2-Serial2/1] link-protocol ppp
[PE2-Serial2/1] ip address 10.2.2.1 24
[PE2-Serial2/1] mpls
[PE2-Serial2/1] mpls ldp
[PE2-Serial2/1] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.2.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 在接入CE 2的接口Ethernet1/1上创建支持连接异构网络的VC连接,并配置缺省下一跳的IP地址为100.1.1.2。此接口不需配置IP地址。
[PE2] interface ethernet 1/1
[PE2-Ethernet1/1] mpls l2vc 192.2.2.2 101 ip-interworking
[PE2-Ethernet1/1] default-nexthop ip 100.1.1.2
[PE2-Ethernet1/1] quit
(5) 配置CE 2
# 为连接PE 2的接口Ethernet1/1配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface Ethernet 1/1
[CE2-Ethernet1/1] ip address 100.1.1.2 24
# 在PE 1上查看VC连接信息,可以看到建立了一条VC连接。
[PE1] display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client VC Local Remote
VC ID Intf State VC Label VC Label
101 S2/0 up 1024 1032
# 在PE 2上也可以看到VC连接。
[PE2] display mpls l2vc
Total ldp vc : 1 1 up 0 down 0 blocked
Transport Client VC Local Remote
VC ID Intf State VC Label VC Label
101 Eth1/1 up 1032 1024
# CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=40 ms
Reply from 100.1.1.2: bytes=56 Sequence=5 ttl=255 time=70 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/50/70 ms
· CE与PE之间通过Serial口相连,链路层封装PPP。
· 通过建立Kompella方式的VC连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
图1-19 配置Kompella方式MPLS L2VPN组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
S2/0 |
30.1.1.1/24 |
CE 2 |
S2/0 |
30.1.1.2/24 |
|
PE 1 |
Loop0 |
1.1.1.9/32 |
P |
Loop0 |
2.2.2.9/32 |
|
|
POS5/1 |
168.1.1.1/24 |
|
POS5/0 |
168.1.1.2/24 |
|
PE 2 |
Loop0 |
3.3.3.9/32 |
|
POS5/1 |
169.1.1.1/24 |
|
|
POS5/0 |
169.1.1.2/24 |
|
|
|
(1) 在MPLS骨干网上配置IGP
本例中使用OSPF,具体配置步骤略。
配置完成后,在各LSR上执行display ip routing-table命令可以看到都已学到彼此LSR ID的路由;执行display ospf peer命令可以看到建立了OSPF邻居关系,状态为FULL。
(2) 配置MPLS基本能力和LDP,建立LDP LSP
具体配置步骤略。
配置完成后,在各LSR上执行display mpls ldp session和display mpls ldp peer命令可以看到LDP会话和对等体的建立情况,执行display mpls lsp命令可以看到LSP的建立情况。
(3) 配置BGP的L2VPN能力
# 配置PE 1。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] l2vpn-family
[PE1-bgp-af-l2vpn] policy vpn-target
[PE1-bgp-af-l2vpn] peer 3.3.3.9 enable
[PE1-bgp-af-l2vpn] quit
[PE1-bgp] quit
# 配置PE 2。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] l2vpn-family
[PE2-bgp-af-l2vpn] policy vpn-target
[PE2-bgp-af-l2vpn] peer 1.1.1.9 enable
[PE2-bgp-af-l2vpn] quit
[PE2-bgp] quit
# 配置完成后,在PE 1和PE 2上执行display bgp l2vpn peer命令可以看到PE之间建立了对等体关系,状态为Established。
以PE 1为例:
[PE1] display bgp l2vpn peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.9 4 100 2 5 0 0 00:01:07 Established
(4) 配置L2VPN和CE连接
# 配置PE 1。
[PE1] mpls l2vpn vpn1 encapsulation ppp
[PE1-mpls-l2vpn-vpn1] route-distinguisher 100:1
[PE1-mpls-l2vpn-vpn1] vpn-target 1:1
[PE1-mpls-l2vpn-vpn1] ce ce1 id 1 range 10
[PE1-mpls-l2vpn-ce-vpn1-ce1] connection ce-offset 2 interface serial 2/0
[PE1-mpls-l2vpn-ce-vpn1-ce1] quit
[PE1-mpls-l2vpn-vpn1] quit
# 配置PE 2。
[PE2] mpls l2vpn vpn1 encapsulation ppp
[PE2-mpls-l2vpn-vpn1] route-distinguisher 100:1
[PE2-mpls-l2vpn-vpn1] vpn-target 1:1
[PE2-mpls-l2vpn-vpn1] ce ce2 id 2 range 10
[PE2-mpls-l2vpn-ce-vpn1-ce2] connection ce-offset 1 interface serial 2/0
[PE2-mpls-l2vpn-ce-vpn1-ce2] quit
[PE2-mpls-l2vpn-vpn1] quit
# 完成上述配置后,在PE上执行display mpls l2vpn connection命令,可以看到建立了一条VC连接,状态为up。
以PE 1为例:
[PE1] display mpls l2vpn connection
1 total connections,
connections: 1 up, 0 down, 0 local, 1 remote, 0 unknown
VPN name: vpn1,
1 total connections,
connections: 1 up, 0 down, 0 local, 1 remote, 0 unknown
CE name: ce1, id: 1,
Rid type status peer-id route-distinguisher intf
2 rmt up 3.3.3.9 100:1 S2/0
# CE 1与CE 2之间能够ping通。
[CE1] ping 30.1.1.2
PING 30.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 30.1.1.2: bytes=56 Sequence=1 ttl=255 time=90 ms
Reply from 30.1.1.2: bytes=56 Sequence=2 ttl=255 time=77 ms
Reply from 30.1.1.2: bytes=56 Sequence=3 ttl=255 time=34 ms
Reply from 30.1.1.2: bytes=56 Sequence=4 ttl=255 time=46 ms
Reply from 30.1.1.2: bytes=56 Sequence=5 ttl=255 time=94 ms
--- 30.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/68/94 ms
通过在PE上建立Kompella方式的本地连接,实现从CE 1接收的报文直接转发给CE 2、从CE 2接收的报文直接转发给CE 1,转发报文时无需查找转发表,加快转发速度。
图1-20 配置Kompella方式本地连接组网图

# 在PE上配置MPLS基本能力。(具体配置步骤略)
# 在PE上配置L2VPN和CE连接。
<Sysname> system-view
[Sysname] sysname PE
[PE] l2vpn
[PE-l2vpn] mpls l2vpn
[PE-l2vpn] quit
[PE] mpls l2vpn vpn1 encapsulation ppp
[PE-mpls-l2vpn-vpn1] route-distinguisher 100:1
[PE-mpls-l2vpn-vpn1] vpn-target 111:1
[PE-mpls-l2vpn-vpn1] ce ce1 id 1
[PE-mpls-l2vpn-ce-vpn1-ce1] connection ce-offset 2 interface serial 2/0
[PE-mpls-l2vpn-ce-vpn1-ce1] quit
[PE-mpls-l2vpn-vpn1] ce ce2 id 2
[PE-mpls-l2vpn-ce-vpn1-ce2] connection ce-offset 1 interface serial 2/1
[PE-mpls-l2vpn-vpn1] quit
# 完成上述配置后,在PE上执行display mpls l2vpn connection命令,可以看到建立了两条L2VPN的本地连接,状态均为up。
[PE] display mpls l2vpn connection
2 total connections,
connections: 2 up, 0 down, 2 local, 0 remote, 0 unknown
VPN name: vpn1,
2 total connections,
connections: 2 up, 0 down, 2 local, 0 remote, 0 unknown
CE name: ce1, id: 1,
Rid type status peer-id route-distinguisher intf
2 loc up --- --- S2/0
CE name: ce2, id: 2,
Rid type status peer-id route-distinguisher intf
1 loc up --- --- S2/1
# 查看VPN本地连接的配置。
[PE] display mpls l2vpn vpn-name vpn1 local-ce
ce-name ce-id range conn-num LB
ce1 1 10 1 8192/0/10
ce2 2 10 1 8202/0/10
# CE 1与CE 2之间能够ping通。
[CE1] ping 30.1.1.2
PING 30.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 30.1.1.2: bytes=56 Sequence=1 ttl=255 time=90 ms
Reply from 30.1.1.2: bytes=56 Sequence=2 ttl=255 time=77 ms
Reply from 30.1.1.2: bytes=56 Sequence=3 ttl=255 time=34 ms
Reply from 30.1.1.2: bytes=56 Sequence=4 ttl=255 time=46 ms
Reply from 30.1.1.2: bytes=56 Sequence=5 ttl=255 time=94 ms
--- 30.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/68/94 ms
· CE与PE之间通过三层以太网接口相连。
· 通过建立SVC方式的VC连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
· 配置SoftGRE功能,以简化公网隧道的配置。
图1-21 配置SoftGRE组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
Eth1/1 |
100.1.1.1/24 |
CE 2 |
Eth1/1 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
192.2.2.2/32 |
P |
Loop0 |
192.4.4.4/32 |
|
|
Eth1/2 |
10.1.1.1/24 |
|
Eth1/1 |
10.1.1.2/24 |
|
PE 2 |
Loop0 |
192.3.3.3/32 |
|
Eth1/2 |
10.2.2.2/24 |
|
|
Eth1/1 |
10.2.2.1/24 |
|
|
|
(1) 配置CE 1
# 为连接PE 1的接口Ethernet1/1配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface ethernet 1/1
[CE1-Ethernet1/1] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
# 在L2VPN视图下使能SoftGRE功能。
[PE1-l2vpn] mpls l2vpn soft-gre
[PE1-l2vpn] quit
# 配置连接P的接口Ethernet1/2。
[PE1] interface ethernet 1/2
[PE1-Ethernet1/2] ip address 10.1.1.1 24
[PE1-Ethernet1/2] mpls
[PE1-Ethernet1/2] quit
# 在PE 1上运行OSPF。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在接入CE 1的接口Ethernet1/1上创建一条SVC方式VC连接。此接口不需配置IP地址。
[PE1] interface ethernet 1/1
[PE1-Ethernet1/1] mpls static-l2vc destination 192.3.3.3 transmit-vpn-label 100 receive-vpn-label 200
[PE1-Ethernet1/1] quit
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 192.4.4.4 32
[P-LoopBack0] quit
[P] mpls lsr-id 192.4.4.4
[P] mpls
[P-mpls] quit
# 配置连接PE 1的接口Ethernet1/1。
[P] interface ethernet 1/1
[P-Ethernet1/1] ip address 10.1.1.2 24
[P-Ethernet1/1] mpls
[P-Ethernet1/1] quit
# 配置连接PE 2的接口Ethernet1/2。
[P] interface ethernet 1/2
[P-Ethernet1/2] ip address 10.2.2.2 24
[P-Ethernet1/2] mpls
[P-Ethernet1/2] quit
# 在P上运行OSPF。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.2.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 192.4.4.4 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 在L2VPN视图下使能SoftGRE功能。
[PE2-l2vpn] mpls l2vpn soft-gre
[PE2-l2vpn] quit
# 配置连接P的接口Ethernet1/1。
[PE2] interface ethernet 1/1
[PE2-Ethernet1/1] ip address 10.2.2.1 24
[PE2-Ethernet1/1] mpls
[PE2-Ethernet1/1] quit
# 在PE 2上运行OSPF。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.2.2.1 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在接入CE 2的接口Ethernet1/2上创建一条SVC方式VC连接。此接口不需配置IP地址。
[PE2] interface ethernet 1/2
[PE2-Ethernet1/2] mpls static-l2vc destination 192.2.2.2 transmit-vpn-label 200 receive-vpn-label 100
[PE2-Ethernet1/2] quit
(5) 配置CE 2
# 为连接PE 2的接口Ethernet1/1配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface ethernet 1/1
[CE2-Ethernet1/1] ip address 100.1.1.2 24
# 在PE 1上可以看到SVC信息。
[PE1] dispplay mpls static-l2vc interface ethernet 1/1
***CE-interface : Eth1/1 is up
VC State : up
Destination : 192.3.3.3
VC ID : --
Transmit-vpn-label : 100
Receive-vpn-label : 200
Tunnel Policy : -
Tunnel Type : SoftGRE
# 在PE 1上可以查看MPLS L2VPN的PW表项信息。
[PE1] display mpls l2vpn fib pw vpws verbose
Total PW Entry:1
In Interface : Eth1/1
Service Instance ID : 0
In VC Label : 200
Out VC Label : 100
Out Interface : ----
Encapsulation Type : Ethernet
Entry Type : SoftGRE
MTU : 1500
Control Word : NO
Packets received : 0
Receives discarded : 0
Packets sent : 0
Sends discarded : 0
# 在没有配置其他任何公网隧道时,CE 1与CE 2之间能够ping通。
[CE1] ping 100.1.1.2
PING 100.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 100.1.1.2: bytes=56 Sequence=0 ttl=255 time=51 ms
Reply from 100.1.1.2: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 100.1.1.2: bytes=56 Sequence=2 ttl=255 time=36 ms
Reply from 100.1.1.2: bytes=56 Sequence=3 ttl=255 time=46 ms
Reply from 100.1.1.2: bytes=56 Sequence=4 ttl=255 time=30 ms
--- 100.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/38/51 ms
· CE与PE之间通过三层以太网接口相连。
· 通过建立Martini方式的VC连接,实现CE 1和CE 2之间的二层报文跨越骨干网络传递。
· 通过L2PT功能,实现对用户网络的二层协议报文进行如下处理:
¡ STP报文:采用Tunnel模式将报文的目的MAC地址替换为0110-cd10-10ac;
¡ CDP报文:为该报文封装VC标签时,将VC标签的EXP设置为3;
¡ GVRP报文:丢弃该协议的报文。
图1-22 配置L2PT组网图

|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
Eth1/1 |
100.1.1.1/24 |
CE 2 |
Eth1/1 |
100.1.1.2/24 |
|
PE 1 |
Loop0 |
192.2.2.2/32 |
P |
Loop0 |
192.4.4.4/32 |
|
|
Eth1/2 |
10.1.1.1/24 |
|
Eth1/1 |
10.1.1.2/24 |
|
PE 2 |
Loop0 |
192.3.3.3/32 |
|
Eth1/2 |
10.2.2.1/24 |
|
|
Eth1/1 |
10.2.2.2/24 |
|
|
|
(1) 配置CE 1
# 为连接PE 1的接口Ethernet1/1配置IP地址。
<Sysname> system-view
[Sysname] sysname CE1
[CE1] interface ethernet 1/1
[CE1-Ethernet1/1] ip address 100.1.1.1 24
(2) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 全局使能LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置PE 1与PE 2建立LDP远程会话。
[PE1] mpls ldp remote-peer 1
[PE1-mpls-ldp-remote-1] remote-ip 192.3.3.3
[PE1-mpls-ldp-remote-1] quit
# 配置连接P的接口Ethernet1/2,在此接口上使能LDP。
[PE1] interface ethernet 1/2
[PE1-Ethernet1/2] ip address 10.1.1.1 24
[PE1-Ethernet1/2] mpls
[PE1-Ethernet1/2] mpls ldp
[PE1-Ethernet1/2] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在接入CE 1的接口Ethernet1/2上创建VC连接。此接口不需配置IP地址。
[PE1] interface ethernet 1/2
[PE1-Ethernet1/2] mpls l2vc 192.3.3.3 101
[PE1-Ethernet1/2] quit
# 配置L2PT的组播目的MAC地址为0110-cd10-10ac。
[PE1] l2protocol-tunnel mac-address 0110-cd10-10ac
# 在接入CE 1的接口Ethernet1/1上使能STP、CDP和GVRP协议的L2PT功能。
[PE1]interface ethernet 1/1
[PE1-Ethernet1/1] l2protocol-tunnel stp tunnel
[PE1-Ethernet1/1] l2protocol-tunnel cdp experimental 3
[PE1-Ethernet1/1] l2protocol-tunnel gvrp drop
[PE1-Ethernet1/1] quit
(3) 配置P
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 192.4.4.4 32
[P-LoopBack0] quit
[P] mpls lsr-id 192.4.4.4
[P] mpls
[P-mpls] quit
# 全局使能LDP。
[P] mpls ldp
[P-mpls-ldp] quit
# 配置连接PE 1的接口Ethernet1/1,在此接口上使能LDP。
[P] interface ethernet 1/1
[P-Ethernet1/1] ip address 10.1.1.2 24
[P-Ethernet1/1] mpls
[P-Ethernet1/1] mpls ldp
[P-Ethernet1/1] quit
# 配置连接PE 2的接口Ethernet1/2,在此接口上使能LDP。
[P] interface ethernet 1/2
[P-Ethernet1/2] ip address 10.2.2.2 24
[P-Ethernet1/2] mpls
[P-Ethernet1/2] mpls ldp
[P-Ethernet1/2] quit
# 在P上运行OSPF,用于建立LSP。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.2.2 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 192.4.4.4 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 全局使能LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置PE 2与PE 1建立LDP远程会话。
[PE2] mpls ldp remote-peer 2
[PE2-mpls-ldp-remote-2] remote-ip 192.2.2.2
[PE2-mpls-ldp-remote-2] quit
# 配置连接P的接口Ethernet1/2,在此接口上使能LDP。
[PE2] interface ethernet 1/2
[PE2-Ethernet1/2] ip address 10.2.2.1 24
[PE2-Ethernet1/2] mpls
[PE2-Ethernet1/2] mpls ldp
[PE2-Ethernet1/2] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.2.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在接入CE 2的接口Ethernet1/1上创建VC连接。此接口不需配置IP地址。
[PE2] interface Ethernet1/1
[PE2-Ethernet1/1] mpls l2vc 192.2.2.2 101
[PE2-Ethernet1/1] quit
# 配置L2PT的组播目的MAC地址为0110-cd10-10ac,与PE 1上配置的MAC地址一致。
[PE2] l2protocol-tunnel mac-address 0110-cd10-10ac
# 在接入CE 2的接口Ethernet1/1上使能STP、CDP和GVRP协议的L2PT功能。
[PE2]interface ethernet 1/1
[PE2-Ethernet1/1] l2protocol-tunnel stp tunnel
[PE2-Ethernet1/1] l2protocol-tunnel cdp experimental 3
[PE2-Ethernet1/1] l2protocol-tunnel gvrp drop
[PE2-Ethernet1/1] quit
(5) 配置CE 2
# 配置连接PE 2的接口Ethernet1/1,并为其配置IP地址。
<Sysname> system-view
[Sysname] sysname CE2
[CE2] interface ethernet 1/1
[CE2-Ethernet1/1] ip address 100.1.1.2 24
# 完成上述配置后,在PE 1和PE 2上执行display l2protocol-tunnel命令,可以看到L2PT的统计信息。
运营商网络由MPLS网络和城域以太网两部分组成。CE 1和CE 2是同一用户位于不同地域的网络的边缘设备。该用户使用VLAN 2,并运行MSTP跨越运营商网络在不同地域的所有用户网络内统一进行生成树计算。
具体需求如下:
· 在MPLS网络内建立Martini方式的VC连接,实现用户网络二层报文跨域MPLS网络透明传输。
· 在PE 1上配置L2PT功能、在PE 3上配置BPDU Tunnel功能,将用户网络STP报文的目的MAC地址替换为组播MAC地址0100-0CCD-CDD0,以避免用户网络和骨干网内的STP报文互相冲突。
· PE 1使用三层以太网接口Ethernet1/1连接CE 1;PE 3使用Access类型的端口Ethernet1/2连接CE 2,该端口允许VLAN 2的报文通过。
· PE 2使用三层以太网子接口Ethernet1/2.2连接PE 3连接,该接口能够终结VLAN 2的报文;PE 3使用Trunk类型的端口Ethernet1/1连接PE 2,该端口允许所有VLAN的报文通过。
图1-23 配置L2PT和BPDU互通组网图

(1) 配置PE 1
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.2.2.2 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.2.2.2
[PE1] mpls
[PE1-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE1] l2vpn
[PE1-l2vpn] mpls l2vpn
[PE1-l2vpn] quit
# 全局使能LDP。
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置PE 1与PE 2建立LDP远程会话。
[PE1] mpls ldp remote-peer 1
[PE1-mpls-ldp-remote-1] remote-ip 192.3.3.3
[PE1-mpls-ldp-remote-1] quit
# 配置连接PE 2的接口Ethernet1/2,在此接口上使能LDP。
[PE1] interface ethernet 1/2
[PE1-Ethernet1/2] ip address 10.1.1.1 24
[PE1-Ethernet1/2] mpls
[PE1-Ethernet1/2] mpls ldp
[PE1-Ethernet1/2] quit
# 在PE 1上运行OSPF,用于建立LSP。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在接入CE 1的接口Ethernet1/1上创建VC连接,指定VC的封装类型为Ethernet。
[PE1] interface ethernet 1/1
[PE1-Ethernet1/1] mpls l2vc 192.3.3.3 101 ethernet
[PE1-Ethernet1/1] quit
# 配置L2PT的组播目的MAC地址为0100-0CCD-CDD0。
[PE1] l2protocol-tunnel mac-address 0100-0CCD-CDD0
# 在接入CE 1的接口Ethernet1/1上使能STP协议的L2PT功能,采用Tunnel模式处理STP协议报文。
[PE1] interface ethernet 1/1
[PE1-Ethernet1/1] l2protocol-tunnel stp tunnel
[PE1-Ethernet1/1] quit
(2) 配置PE 2
# 配置LSR ID,全局使能MPLS。
<Sysname> system-view
[Sysname] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.3.3.3 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.3.3.3
[PE2] mpls
[PE2-mpls] quit
# 使能L2VPN和MPLS L2VPN。
[PE2] l2vpn
[PE2-l2vpn] mpls l2vpn
[PE2-l2vpn] quit
# 全局使能LDP。
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置PE 2与PE 1建立LDP远程会话。
[PE2] mpls ldp remote-peer 2
[PE2-mpls-ldp-remote-2] remote-ip 192.2.2.2
[PE2-mpls-ldp-remote-2] quit
# 配置连接PE 1的接口Ethernet1/1,在此接口上使能LDP。
[PE2] interface ethernet 1/1
[PE2-Ethernet1/1] ip address 10.1.1.2 24
[PE2-Ethernet1/1] mpls
[PE2-Ethernet1/1] mpls ldp
[PE2-Ethernet1/1] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在连接PE 3的接口Ethernet1/2.2上创建VC连接,指定VC的封装类型为Ethernet,并配置该接口终结VLAN 2的报文。
[PE2] interface Ethernet1/2.2
[PE2-Ethernet1/2.2] mpls l2vc 192.2.2.2 101 ethernet
[PE2-Ethernet1/2.2] vlan-type dot1q vid 2
[PE2-Ethernet1/2.2] quit
(3) 配置PE 3
# 配置Ethernet1/1端口的链路类型为Trunk,并且允许所有VLAN的报文通过该Trunk端口。
<Sysname> system-view
[Sysname] sysname PE3
[PE3] interface ethernet 1/1
[PE3-Ethernet1/1] port link-type trunk
[PE3-Ethernet1/1] port trunk permit vlan all
[PE3-Ethernet1/1] quit
# 配置Ethernet1/2端口的链路类型为Access,允许VLAN 2的报文通过。
[PE3] vlan 2
[PE3-vlan2] quit
[PE3] interface ethernet 1/2
[PE3-Ethernet1/2] port access vlan 2
# 在端口Ethernet1/2上关闭STP协议,并使能STP协议的BPDU Tunnel功能。
[PE3-Ethernet1/2] undo stp enable
[PE3-Ethernet1/2] bpdu-tunnel dot1q stp
[PE3-Ethernet1/2] quit
# 配置BPDU Tunnel报文的组播目的MAC地址为0x0100-0CCD-CDD0。
[PE3] bpdu-tunnel tunnel-dmac 0100-0ccd-cdd0
CE 1和CE 2之间可以互相ping通;在CE 1和CE 2上可以看到基于两个用户网络统一计算出了生成树。
L2VPN配置后,Ping对端失败。查看VC状态,发现VC状态为down,Remote值为无效值。
VC状态为down可能是因为两端封装类型不一致。
(1) 查看本端和对端PE设备配置的封装类型是否一致,如果配置的封装类型不一样,请修改两端的封装类型。
(2) 检查两端是否已配置了远端对等体,并正确地将对端PE地址设置为远端对等体的地址。如果没有配置远端对等体或地址配置错误,请在两端均配置正确的远端对等体地址。
Serial2/0和Serial2/1分别封装HDLC和PPP,各创建一个Martini方式VC连接,VC ID都是1。将Serial2/1的封装类型改为HDLC,则不能建立Martini方式VC连接。
将Serial2/1的封装类型改为HDLC,则会造成两个HDLC封装的Martini方式VC连接的VC ID都是1。为了避免VC ID冲突,此时Serial2/1上的Martini方式VC连接会被自动删除。
基于接口Serial2/0和Serial2/1重新创建Martini方式的VC连接,并为VC连接配置不同的VC ID。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
