Juniper MX搭建BGP信令的点对点 VPWS MPLS L2组网

本文最后更新于 2024年4月5日 上午

简介

本实验使用Juniper vMX 在PNET-LAB上运行搭建,使用BGP信令搭建VPWS。

Juniper 系列文章:https://songxwn.com/categories/Juniper/

BGP VPWS俗称Kompella L2VPN,因为RFC 6624的前身是IETF草案“draf-kompella-l2vpnl2vpn”。一直对MPLS和SDN做出重要贡献的Kireeti Kompella先生有在Juniper公司任开发与创新团队的CTO(the CTO of Juniper’s Development and Innovation team)一职。BGP VPWS的转发平面基于Martini封装(RFC 4448)。亲眼目睹BGP VPWS的开通方式,或许是理解这一技术的最佳方法了。

BGP方式VPWS

定义

BGP方式VPWS是使用BGP作为信令协议在PE(Provider Edge)间传递二层信息和VC(Virtual Circuit)标签的一种MPLS L2VPN技术。

BGP方式VPWS使用VPN Target来进行VPN路由收发的控制,给组网带来了很大的灵活性。采取分配标签块的方式进行VC标签的分配,事先为每个CE分配一个标签块,标签块的大小决定了这个CE可以与其它CE建立多少条连接。允许为VPN分配一些额外的标签,留待以后扩容使用。PE根据这些标签块进行计算,得到实际的内层标签,用于报文的传输。BGP方式的VPWS扩展性好,并且BGP方式支持本地连接和远程连接。

图15-105 BGP方式VPWS的拓扑结构

基本概念

标签块:BGP方式采用标签块(Label Block)分配标签,一次为多个连接分配标签。用户可以指定一个本地CE的范围(CE range),表明这个CE能与多少个CE建立连接。系统一次为这个CE分配一个标签块,标签块的大小等于CE range。这种方式允许用户为VPN分配一些额外的标签,短期可能会造成标签资源的浪费,但能够减少VPN扩容时的配置工作量。假设一个企业的VPN包括10个CE,考虑到企业扩展业务,将来可能会有20个CE。这时,可以把每个CE的CE range设置为20,预先为未来的10个CE分配标签。

实现过程

BGP方式的报文交互过程与LDP方式的报文交互过程类似,都使用标准的两层标签。LDP方式的内层标签是采用扩展的LDP作为信令进行交互,而BGP方式的内层标签则是采用MP-BGP作为信令进行交互,两者VC表项的形式略有不同。

图15-106 BGP方式VPWS的连接方式

图15-106所示,起初6个客户设备(CE1~CE6)接入相同的站点VPN1。为了使这6个CE设备可以相互通信,需要建立CE之间的全连接拓朴结构,即每个CE与其它5个CE各建立一条VC。为建立这些连接,在这些CE接入的PE1、PE2、PE3上只要进行如下的配置:

  1. 在每个PE上创建VPN1,并创建PE含有的CE,如在PE1上,创建CE1、CE2、CE3。

  2. 为每个CE分配含有足够Label的标签块。这里,由于一个CE和其它5个CE相连,需要分配5个label的标签块。

  3. 在PE上绑定与CE相连的链路名称和对端CE编号。

可以看到BGP方式VPWS也可以像CCC方式VPWS一样,可以建立本地连接,PE充当交换机。采用BGP方式,在全连接的情况下配置简单。

BGP-VPWS L2VPN实验拓扑

  • MX1-4 之间配置ISIS L2 打通底层路由。

  • MX1-4 之间建立MP-iBGP 全互联,开启L2VPN地址族。

  • MX1-4 之间建立LDP或RSVP,用于公网MPLS隧道建立。

  • 创建VPWS L2VPN 路由实例配置RD RT,配置站点和远程站点ID 关联接入端口。

分步配置- 以MX1-PE为例

ISIS 基础路由和接口配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
set interfaces lo0 unit 0 family inet address 1.1.1.1/32
set interfaces lo0 unit 0 family iso address 49.0001.0000.0000.0001.00
set interfaces lo0 unit 0 family mpls
# 配置Lookback0口IP地址,ISIS的NET地址,开启MPLS。
set interfaces ge-0/0/1 unit 0 family inet address 12.1.1.1/24
set interfaces ge-0/0/1 unit 0 family iso
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 family inet address 13.1.1.1/24
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family mpls
# 配置两个骨干接口,配置互联IP,开启ISIS ISO、开启MPLS。
set protocols isis interface ge-0/0/1.0 hello-padding disable
set protocols isis interface ge-0/0/1.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface ge-0/0/2.0 hello-padding disable
# ISIS宣告骨干互联接口,配置为P2P网络类型,关闭Hello报文填充。
set protocols isis interface lo0.0 passive
# ISIS宣告lookback 口,并配置为被动接口。
set protocols isis level 2 wide-metrics-only
# 配置ISIS L2 度量值计算为宽。
set protocols isis level 1 disable
# 关闭ISIS L1,只使用L2互联。

MP-iBGP - L2VPN

1
2
3
4
5
6
7
8
9
10
11
12
13
set routing-options autonomous-system 9527 
set routing-options router-id 1.1.1.1
# 配置BGP AS号,全局路由ID
set protocols bgp group songxwn.com local-address 2.2.2.2
# 创建BGP组,并指定为iBGP
set protocols bgp group songxwn.com type internal
# 配置源IP为LookbackIP
set protocols bgp group songxwn.com neighbor 2.2.2.2
set protocols bgp group songxwn.com neighbor 3.3.3.3
set protocols bgp group songxwn.com neighbor 4.4.4.4
# 建立iBGP邻居,全互联,也可以考虑做RR。
set protocols bgp group songxwn.com family l2vpn signaling
# 开启l2vpn地址族,允许传递l2vpn类路由。

LDP和MPLS配置

1
2
3
4
5
6
7
8
set protocols ldp interface ge-0/0/1.0
set protocols ldp interface ge-0/0/2.0
set protocols ldp interface lo0.0
# 骨干互联接口,Lookback口开启LDP
set protocols mpls interface lo0.0
set protocols mpls interface
set protocols mpls interface
# 骨干互联接口,Lookback口开启MPLS

VPWS CCC 接入配置

1
2
3
4
5
6
7
8
9
10
11
12
set interfaces ge-0/0/8 encapsulation ethernet-ccc
set interfaces ge-0/0/8 unit 0 family ccc

# 无VLAN标签配置


set interfaces ge-0/0/7 encapsulation flexible-ethernet-services
set interfaces ge-0/0/7 unit 102 family encapsulation vlan-ccc
set interfaces ge-0/0/7 unit 102 vlan-id 101
set interfaces ge-0/0/7 unit 102 family ccc

# 带VLAN标签配置

VPWS 路由实例配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
set routing-instances songxwn.vpws instance-type l2vpn

# 配置类型为l2vpn

set routing-instances songxwn.vpws interface ge-0/0/8.0

# 将接口加入路由实例

set routing-instances songxwn.vpws route-distinguisher 192.168.1.0:11
set routing-instances songxwn.vpws vrf-target target:100:1

# 配置RT RD

set routing-instances songxwn.vpws protocols l2vpn site MX1-11 site-identifier 11

# 配置本地站点的站点ID

set routing-instances songxwn.vpws protocols l2vpn site MX1-11 interface ge-0/0/8.0 remote-site-id 14

# 配置本地站点对应接口和对端站点ID

set routing-instances songxwn.vpws protocols l2vpn encapsulation-type ethernet

# 配置封装模式为以太网,带VLAN需要配置为encapsulation-type ethernet-vlan

set routing-instances songxwn.vpws protocols l2vpn no-control-word

# 在包含不支持



  • RD - 帮助 BGP 区分 可能相同的网络层可达性信息 (NLRI) 从不同 VPLS 实例接收的消息。每个VPLS路由实例 在 PE 路由器上配置的必须具有唯一的路由区分器。

  • RT - 定义哪个路由是 VPLS 的一部分。 唯一的路由目标有助于区分不同的 VPLS 服务在同一路由器上。

  • site - 提供 VPWS 站点的唯一名称,全局唯一。

  • site-identifier - 提供唯一的数字标识符 对于 VPWS站点,全局唯一,两两对应

https://www.juniper.net/documentation/cn/zh/software/junos/vpn-l2/topics/concept/vpns-configuring-the-local-site-on-pe-routers-in-layer-2-vpns.html

MX1 配置一览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# MX1 配置
set interfaces ge-0/0/8 encapsulation ethernet-ccc
set interfaces ge-0/0/8 unit 0 family ccc
## CCC 接入端口配置
set interfaces ge-0/0/1 unit 0 family inet address 12.1.1.1/24
set interfaces ge-0/0/1 unit 0 family iso
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 family inet address 13.1.1.1/24
set interfaces ge-0/0/2 unit 0 family iso
set interfaces ge-0/0/2 unit 0 family mpls
## 骨干互联接口配置
set interfaces lo0 unit 0 family inet address 1.1.1.1/32
set interfaces lo0 unit 0 family iso address 49.0001.0000.0000.0001.00
set interfaces lo0 unit 0 family mpls
## Lookback0口配置
set routing-instances songxwn.vpws instance-type l2vpn
set routing-instances songxwn.vpws protocols l2vpn site MX1-11 interface ge-0/0/8.0 remote-site-id 14
set routing-instances songxwn.vpws protocols l2vpn site MX1-11 site-identifier 11
set routing-instances songxwn.vpws protocols l2vpn encapsulation-type ethernet
set routing-instances songxwn.vpws protocols l2vpn no-control-word
set routing-instances songxwn.vpws interface ge-0/0/8.0
set routing-instances songxwn.vpws route-distinguisher 192.168.1.0:11
set routing-instances songxwn.vpws vrf-target target:100:1
## VPWS 路由实例配置
set protocols isis interface ge-0/0/1.0 hello-padding disable
set protocols isis interface ge-0/0/1.0 point-to-point
set protocols isis interface ge-0/0/2.0 point-to-point
set protocols isis interface ge-0/0/2.0 hello-padding disable
set protocols isis interface lo0.0 passive
set protocols isis level 2 wide-metrics-only
set protocols isis level 1 disable
## ISIS互联配置
set protocols ldp interface ge-0/0/1.0
set protocols ldp interface ge-0/0/2.0
set protocols ldp interface lo0.0
## LDP配置
set protocols mpls interface lo0.0
set protocols mpls interface ge-0/0/1.0
set protocols mpls interface ge-0/0/2.0
## MPLS配置
set routing-options autonomous-system 9527
# 配置BGP AS号
set protocols bgp group songxwn.com type internal
# 创建BGP组,并指定为iBGP
set protocols bgp group songxwn.com local-address 4.4.4.4
set protocols bgp group songxwn.com neighbor 3.3.3.3
set protocols bgp group songxwn.com neighbor 1.1.1.1
set protocols bgp group songxwn.com neighbor 2.2.2.2
#BGP Peer配置
set protocols bgp group songxwn.com family l2vpn signaling
# 开启l2vpn地址族,允许传递l2vpn类路由。

从MX4 接入PC Ping MX1 接入PC 接入PC 抓包

VPWS L2VPN 连接验证

1
show l2vpn connections   

验证VPWS MPLS转发表

1
show route forwarding-table family mpls | match ccc

验证BGP、ISIS、LDP邻居

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
show bgp summary 
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 3 Down peers: 0
Table Tot Paths Act Paths Suppressed History Damp State Pending
bgp.l2vpn.0
3 3 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
2.2.2.2 9527 1238 1237 0 0 9:13:27 Establ
bgp.l2vpn.0: 1/1/1/0
songxwn.com.l2vpn.0: 1/1/1/0
3.3.3.3 9527 57 56 0 0 24:07 Establ
bgp.l2vpn.0: 1/1/1/0
songxwn.com.l2vpn.0: 1/1/1/0
4.4.4.4 9527 39 38 0 0 15:55 Establ
bgp.l2vpn.0: 1/1/1/0
songxwn.com.l2vpn.0: 1/1/1/0
1
2
3
4
5
6
7
8
show isis adjacency 
Interface System L State Hold (secs) SNPA
ge-0/0/1.0 MX2 2 Up 23
ge-0/0/2.0 MX3 2 Up 20
show ldp session
Address State Connection Hold time Adv. Mode
2.2.2.2 Operational Open 20 DU
3.3.3.3 Operational Open 29 DU

参考文档

https://support.huawei.com/enterprise/zh/doc/EDOC1100278572/ba6287d2#ZH-CN_CONCEPT_0172356174

https://www.juniper.net/documentation/cn/zh/software/junos/vpn-l2/topics/concept/vpn-layer-2-overview.html

主要还有大侠唐在飞的大力支持


Juniper MX搭建BGP信令的点对点 VPWS MPLS L2组网
https://songxwn.com/Juniper-BGP-VPWS-P2PVLL/
作者
Song
发布于
2024年4月5日
更新于
2024年4月5日
许可协议