示例:将第 2 层电路与第 2 层 VPN 互连
此示例提供用于配置和验证到第 2 层 VPN 的第 2 层电路的分步过程和命令。其中包含以下部分:
要求
此示例使用以下硬件和软件组件:
Junos OS 9.3 或更高版本
2 个 MX 系列 5G 通用路由平台
2 M 系列多服务边缘路由器
1 T 系列核心路由器
1 台 EX 系列以太网交换机
概述和拓扑
配置
在任何配置会话中,都最好定期验证可以使用命令提交 commit check
配置。
在此示例中,使用以下命令提示识别要配置的路由器:
CE1
标识客户边缘 1 (CE1) 路由器PE1
标识提供商边缘 1 (PE1) 路由器CE3
标识客户边缘 3 (CE3) 路由器PE3
标识提供商边缘 3 (PE3) 路由器CE5
标识客户边缘 5 (CE5) 路由器PE5
标识提供商边缘 5 (PE5) 路由器
此示例分以下部分进行组织:
在 PE 和 P 路由器上配置协议
逐步过程
在此示例中,所有 PE 路由器和 P 路由器均配置了 OSPF 作为 IGP 协议。除 fxp.0 外,所有接口均支持 MPLS、LDP 和 BGP 协议。面向核心的接口支持 MPLS 地址和 inet 地址。
将所有 PE 和 P 路由器配置为 OSPF 作为 IGP。在所有接口(除外
fxp.0
)上启用 MPLS、LDP 和 BGP 协议。LDP 用作第 2 层电路的路由器 PE1 上的信令协议。以下配置片段显示了路由器 PE1 的协议配置:[edit] protocols { mpls { interface all; interface fxp0.0 { disable; } } bgp { group RR { type internal; local-address 192.0.2.1; family l2vpn { signaling; } neighbor 192.0.2.7; } } ospf { traffic-engineering; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } } ldp { interface all; interface fxp0.0 { disable; } } }
将 PE 和 P 路由器配置为 OSPF 作为 IGP。在所有接口(除外
fxp.0
)上启用 MPLS、LDP 和 BGP 协议。BGP 用作第 2 层 VPN 路由器 PE3 上的信令协议。以下配置片段显示了路由器 PE3 的协议配置:[edit] protocols { mpls { interface all; interface fxp0.0 { disable; } } bgp { group RR { type internal; local-address 192.0.2.3; family l2vpn { signaling; } neighbor 192.0.2.7; } } ospf { traffic-engineering; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } } ldp { interface all; interface fxp0.0 { disable; } } }
逐步过程
配置接口
在路由器 PE1 上
ge-1/0/0
,配置接口封装。要配置接口封装,请包含语句encapsulation
并指定ethernet-ccc
选项(也支持 vlan-ccc 封装)。ge-1/0/0.0
配置逻辑接口系列以实现电路交叉连接功能。要配置逻辑接口系列,请包括family
语句并指定ccc
选项。对于第 2 层电路域中的所有路由器,封装的配置方式应相同。[edit interfaces] ge-1/0/0 { encapsulation ethernet-ccc; unit 0 { family ccc; } } lo0 { unit 0 { family inet { address 192.0.2.1/24; } } }
路由器 PE5 是使用互连接口将第 2 层电路 拼接 到第 2 层 VPN 的路由器。对等单元接口的配置是互连的组成。
在路由器 PE5 上
iw0
,使用两个逻辑接口配置接口。要配置iw0
接口,请包含该interfaces
语句并指定iw0
为接口名称。对于单元 0 逻辑接口,包括语句,peer-unit
并将逻辑接口unit 1
指定为对等接口。对于单元 1 逻辑接口,包括语句,peer-unit
并将逻辑接口unit 0
指定为对等接口。[edit interfaces] iw0 { unit 0 { encapsulation ethernet-ccc; peer-unit 1; } unit 1 { encapsulation ethernet-ccc; peer-unit 0; } }
在路由器 PE5 上,配置逻辑环路接口。环路接口用于建立路由器 PE1 和 PE5 的目标 LDP 会话。
[edit interfaces] lo0 { unit 0 { family inet { address 192.0.2.5/24; } } }
逐步过程
配置第 2 层电路协议
在路由器 PE1 上,使用语句配置远程 PE 路由器的
neighbor
IP 地址。PE 邻接人的环路地址和路由器 ID 通常是邻接人的 IP 地址。即使 PE 路由器上配置的最大传输单元 (MTU) 与远程 PE 路由器上配置的 MTU 不匹配,也允许建立第 2 层电路,请添加语句ignore-mtu-mismatch
。[edit] protocols { l2circuit { neighbor 192.0.2.5 { interface ge-1/0/0.0 { virtual-circuit-id 100; no-control-word; ignore-mtu-mismatch; } } } }
在路由器 PE5 上,配置远程 PE 路由器的 IP 地址。要配置远程 PE 路由器的 IP 地址,请在路由器 PE1 上添加
neighbor
语句并指定环路接口的 IP 地址。将虚拟电路 ID 配置为与邻接路由器上的虚拟电路 ID 相同。即使本地 PE 路由器上配置的 MTU 与远程 PE 路由器上配置的 MTU 不匹配,也允许建立第 2 层电路,请添加语句ignore-mtu-mismatch
。还包括语句,禁止使用no-control-word
控制字进行多路分离。[edit protocols] l2circuit { neighbor 192.0.2.1 { interface iw0.0 { virtual-circuit-id 100; no-control-word; ignore-mtu-mismatch; } } }
在路由器 PE5 上,通过在层次结构级别包含语句
[edit routing-instances routing-instances-name protocols]
来l2vpn
配置第 2 层 VPN 协议。要配置iw0
接口,请包含该interfaces
语句并指定iw0
为接口名称。接口iw0
在第 2 层 VPN 协议下配置,以便从iw0.1
逻辑接口接收环路数据包。该l2vpn
协议在具有站点 CE5 的路由器 PE5 上配置,该路由器在 BGP L2VPN 路由实例中配置。路由器 CE1 通过路由器 PE5 上的第 2 层互连配置与路由器 CE5 通信。[edit] routing-instances { L2VPN { instance-type l2vpn; interface ge-2/0/0.0; interface iw0.1; route-distinguisher 65000:5; vrf-target target:65000:2; protocols { l2vpn { no-control-word; encapsulation-type ethernet; site CE5 { site-identifier 5; interface ge-2/0/0.0 { remote-site-id 3; } } site l2-circuit { site-identifier 6; interface iw0.1 { remote-site-id 3; } } } } } }
除了
iw0
接口配置外,还必须配置第 2 层互连l2iw
协议。l2iw
如果没有协议配置,则无论是否存在任何iw
接口,第 2 层互连路由都无法形成。在路由器 PE5 上
l2iw
,配置协议。要配置协议,请在l2iw
层级添加语句[edit protocols]
。[edit] protocols { l2iw; }
验证
逐步过程
验证路由器 PE1 上的第 2 层电路连接。
在路由器 PE1 上,使用
show l2circuit connections
命令验证从路由器 PE1 到路由器 PE5 的第 2 层电路是否为Up
。user@PE1> show l2circuit connections Layer-2 Circuit Connections: Legend for connection status (St) EI -- encapsulation invalid NP -- interface h/w not present MM -- mtu mismatch Dn -- down EM -- encapsulation mismatch VC-Dn -- Virtual circuit Down CM -- control-word mismatch Up -- operational VM -- vlan id mismatch CF -- Call admission control failure OL -- no outgoing label IB -- TDM incompatible bitrate NC -- intf encaps not CCC/TCC TM -- TDM misconfiguration BK -- Backup Connection ST -- Standby Connection CB -- rcvd cell-bundle size bad XX -- unknown SP -- Static Pseudowire Legend for interface status Up -- operational Dn -- down Neighbor: 192.0.2.5 Interface Type St Time last up # Up trans ge-1/0/0.0(vc 100) rmt
Up
Jan 3 22:00:49 2010 1 Remote PE: 192.0.2.5, Negotiated control-word: No Incoming label: 301328, Outgoing label: 300192 Local interface: ge-1/0/0.0, Status: Up, Encapsulation: ETHERNET在路由器 PE5 上
show l2vpn connections
,使用命令验证第 2 层 VPN 连接是否Up
使用iw0
第 2 层电路的对等接口。user@PE5> show l2vpn connections Instance: L2VPN Local site: CE5 (5) connection-site Type St Time last up # Up trans l2-circuit (6) loc OR 3 rmt
Up
Jan 3 22:51:12 2010 1 Remote PE: 192.0.2.3, Negotiated control-word: No Incoming label: 800258, Outgoing label: 800000 Local interface: ge-2/0/0.0, Status: Up, Encapsulation: ETHERNET Local site: l2-circuit (6) connection-site Type St Time last up # Up trans CE5 (5) loc OR 3 rmt Up Jan 3 22:56:38 2010 1 Remote PE: 192.0.2.3, Negotiated control-word: No Incoming label: 800262, Outgoing label: 800001 Local interface:iw0.1
, Status:Up
, Encapsulation: ETHERNET
逐步过程
验证第 2 层电路是否与第 2 层 VPN 连接终止。
在路由器 PE5 上
show l2circuit connections
,使用命令验证第 2 层电路是否Up
正在使用iw0
接口。这将通过iwo.1
接口环路连接到第 2 层 VPN。user@PE5> show l2circuit connections Layer-2 Circuit Connections: Neighbor: 192.0.2.1 Interface Type St Time last up # Up trans
iw0.0
(vc 100) rmtUp
Jan 3 21:59:07 2010 1 Remote PE: 192.0.2.1, Negotiated control-word: No Incoming label: 300192, Outgoing label: 301328在路由器 PE 5 上,使用
show route table mpls.0
命令验证第 2 层电路和第 2 层 VPN 路由。在以下示例中,第 2 层电路与 LDP 标签301328
相关联,第 2 层 VPN 与 LDP 标签800001
相关联。请注意用于第 2 层互连路由的两个iw0
接口。user@PE5>show route table mpls.0 mpls.0: 18 destinations, 20 routes (18 active, 2 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0 *[MPLS/0] 5d 20:07:31, metric 1 Receive 1 *[MPLS/0] 5d 20:07:31, metric 1 Receive 2 *[MPLS/0] 5d 20:07:31, metric 1 Receive 299776 *[LDP/9] 2d 03:00:51, metric 1 300048 *[LDP/9] 2d 03:00:49, metric 1 > to 10.10.6.1 via xe-0/1/0.0, Pop 300048(S=0) *[LDP/9] 2d 03:00:49, metric 1 > to 10.10.6.1 via xe-0/1/0.0, Pop 300192 *[L2IW/6] 19:11:05, metric2 1 > to 10.10.6.1 via xe-0/1/0.0, Swap 800001 [L2CKT/7] 20:08:36 > via iw0.0, Pop 800258 *[L2VPN/7] 19:16:31 > via ge-2/0/0.0, Pop Offset: 4
800262 *[L2IW/6] 19:11:05, metric2 1 > to 10.10.3.1 via xe-1/1/0.0, Swap 301328 [L2VPN/7] 19:11:05 > via iw0.1, Pop Offset: 4
ge-2/0/0.0 *[L2VPN/7] 19:16:31, metric2 1 > to 10.10.6.1 via xe-0/1/0.0, Push 800000 Offset: -4 iw0.0 *[L2CKT/7]
20:08:36, metric2 1 > to 10.10.3.1 via xe-1/1/0.0, Push301328
iw0.1 *[L2VPN/7]
19:11:05, metric2 1 > to 10.10.6.1 via xe-0/1/0.0, Push800001
Offset: -4