Juniper MX搭建BGP信令的VPLS组网

简介

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

PS:BGP信令会自动建立VPLS互联,不需要手动指定。

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

https://www.juniper.net/documentation/en_US/junos/topics/example/vpls-bgp-configuring.html

基础理论

VPLS称为虚拟专用局域网业务(Virtual Private LAN Service),是公用网络中提供的一种点到多点的L2VPN(Layer 2 Virtual Private Network)业务,使地域上隔离的用户站点能通过MAN/WAN(Metropolitan Area Network/Wide Area Network)相连,并且使各个站点间的连接效果像在一个LAN(Local Area Network)中一样。它是一种基于MPLS(MultiProtocol Label Switching)和以太网的二层VPN技术,也被称为透明局域网业务TLS(Transparent LAN Service)。

VPLS的典型组网如下图所示,处于不同物理位置的用户通过接入不同的PE设备,实现用户之间的互相通信。从用户的角度来看,整个VPLS网络就是一个二层交换的交换机,用户之间就像直接通过LAN互连在一起一样。

在这里插入图片描述

VPLS基本传输结构

如下图所示,整个VPLS网络就像一个交换机,它通过MPLS隧道在每个VPN的各个Site之间建立虚链路(PW),并通过PW将用户二层报文在站点间透传。对于PE(Provider Edge)设备,它会在转发报文的同时学习源MAC并建立MAC转发表项,完成MAC地址与用户接入接口(AC接口)和虚链路(PW)的映射关系。

VPLS网络中各组件的概念如下:

名称全称概念
AC(Attachment Circuit)接入电路用户与服务提供商之间的连接,即连接CE与PE的链路。支持的接口类型仅支持EVC二层子接口。
PW(Pseudo Wire)伪线两个PE设备上VSI之间的一条双向虚拟连接。它由一对方向相反的单向的MPLS VC(Virtual Circuit)组成,也称为仿真电路。
VSI(Virtual Switch Instance)虚拟交换实例VSI是交换机上为每一个VPLS单独划分的一个虚拟交换处理单元,在每一个VSI中都有独立的一张MAC地址表和转发器,并负责终结PW。
PW SignalingPW信令协议VPLS实现的基础,用于创建和维护PW。目前,PW信令协议主要有LDP(Label Distribution Protocol)和BGP(Border Gateway Protocol)。
Tunnel隧道用于承载PW,一条隧道上可以承载多条PW。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透明传输,可以是LSP(Label Switched Path)隧道。
Forwarder转发器转发器相当于VPLS的转发表。PE收到AC上送的数据帧,由转发器选定转发报文使用的PW。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PW信令协议

PW信令协议主要有LDP和BGP。在信令协议基础上实现的VPLS可以分为以下几种:

  • LDP方式的VPLS

  • BGP方式的VPLS

类型描述特点应用场景
LDP方式的VPLS采用LDP作为信令协议,也称为Martini方式的VPLS。协议比较简单,对PE设备要求低,不能提供VPN成员自动发现机制,需要手工配置。适合用在Site点比较少,不需要或很少跨域的情况,特别是PE不运行BGP的时候。
在增加PE时需要在每个PE上都配置到新PE的PW。
在每两个PE之间建立LDP Session,其Session数与PE数的平方成正比。
当需要时才对每个PE分配一个标签,标签利用率高。
在跨域时,必须保证所有域中配置的VSI都使用同一个VSI ID值空间。
BGP方式的VPLS采用BGP作为信令协议,也称为Kompella方式的VPLS。要求PE设备运行BGP,对PE设备要求高,可以提供VPN成员自动发现机制,用户使用简单。适合用在大型网络的核心层,PE本身运行BGP以及有跨域需求的情况。
在增加PE时只要PE数没有超过标签块大小就不需要修改原有PE上的配置,只需配置新的PE。
利用RR(Route Reflector)降低BGP连接数,从而提高网络的可扩展性。
分配一个标签块,对标签有一定浪费。
在跨域时,采用VPN Target识别VPN关系,对跨域的限制较小。

LDP方式的VPLS

介绍

LDP方式的VPLS(Martini方式VPLS)采用静态发现机制实现成员发现,采用LDP作为信令。这种方式通过扩展标准LDP的TLV来携带VPLS的信息,增加了128类型和129类型的FEC TLV。建立PW时的标签发布方式采用DU模式,标签保持方式采用Liberal Label Retention。

实现过程

  • 利用LDP信令协议建立PW的过程如图4-4所示:

    图4-4 利用LDP信令协议建立PW的过程在这里插入图片描述

    1. 当PE1和VSI关联并指定PE2为其对端后,此时如果PE1和PE2之间的LDP Session已经建立,PE1则采用DU方式主动向PE2发送标签映射消息(Label Mapping Message),该消息中包含PW ID和与该PW ID绑定的VC标签,以及接口参数。

    2. PE2收到该标签映射消息后,会检查本地是否也和该VSI进行了关联。如果已经关联并且封装类型等参数也相同,则说明PE1和PE2的VSI都在同一个VPN内。此时PE2将接受标签映射消息,即单向VC1建立成功。同时,PE2向PE1回应自己的标签映射消息,PE1收到PE2的标签映射消息后作同样的检查和处理,最终也成功建立VC2。

  • 利用LDP信令协议拆除PW的过程如图4-5所示:

    图4-5 利用LDP信令协议拆除PW的过程在这里插入图片描述

    1. 当PE1取消指定PE2为其对端后,PE1向PE2发送标签撤除消息(Label Withdrawal Message),PE2收到该消息后拆除VC1,并向PE1回应标签释放消息(Label Release Message)。

    2. PE1收到标签释放消息后,释放标签并拆除VC2。

BGP方式的VPLS

介绍

BGP方式的VPLS(Kompella方式VPLS)采用动态发现机制实现成员发现,用BGP作为信令。这种方式利用BGP的多协议扩展(MP-BGP)传递VPLS成员信息,其中MP-REACH和MP-UNREACH属性传递VPLS的标签信息,接口参数信息在扩展团体属性中传递,VPN成员关系靠RD(Route Distinguish)和VPN-Target来确定,RD和VPN-TARGET都在扩展团体属性中传递。

实现过程

  • 利用BGP信令协议建立PW的过程如图4-6所示:

    图4-6 利用BGP信令协议建立PW的过程
    在这里插入图片描述

    1. 当PE1和VSI关联并指定PE2为其对端后,此时如果PE1和PE2之间的BGP Session已经建立,PE1则向PE2发送携带MP-REACH属性的Update消息,包括Site ID和标签块信息。

    2. PE2收到该Update消息后,根据自己的Site ID和报文中的标签块,计算出唯一的一个标签值,作为VC标签,此时单向VC1建立成功。同时,PE2根据报文中Site ID和本地标签块,也可以得到PE1的VC标签值,并向PE1发送Update消息,PE1收到PE2的Update消息后作同样的检查和处理,最终也成功建立VC2。

  • 利用BGP信令协议拆除PW的过程如图4-7所示:

    图4-7 利用BGP信令协议拆除PW的过程在这里插入图片描述

    1. 当PE1取消指定PE2为其对端后,PE1向PE2发送携带MP-UNREACH属性的Update消息,PE2收到该消息后释放标签并拆除VC1,同时向PE1回应携带MP-UNREACH属性的Update消息。

    2. PE1收到标签释放消息后,释放标签并拆除VC2。

环路避免

在以太网上,为了避免环路,一般的二层网络都要求使能STP(Spanning Tree Protocol)协议。但是对使用VPLS的用户来说,不会感知到ISP(Internet Service Provider)的网络,因此在私网侧使能STP的时候,不能把ISP的网络考虑进来。因而VPLS中使用PW全连接和水平分割转发来避免环路:

PE之间逻辑上全连接(PW全连接),也就是每个PE必须为每一个VPLS转发实例创建一棵到该实例下的所有其他PE设备的树。

每个PE设备必须支持水平分割转发来避免环路。“水平分割转发”的意思就是从公网侧PW收到的数据包不再转发到这个VSI关联的其它PW上,只能转发到私网侧,从PE收到的报文不转发到其他PE。也就是说要求任意两个PE之间通过直接相连的PW通信,而不能通过第三个PE设备中转报文,这也是PE之间需要建立全连接(PW全连接)的原因。

PE间全连接和水平分割一起保证了VPLS转发的可达性和无环路。当CE到PE有多条连接,或连接到同一个VPLS VPN的不同CE间有连接时,VPLS不能保证没有环路发生,需要使用其他方法来避环。

对于用户来说,在L2VPN私网内运行STP协议是允许的,所有的STP的BPDU(Bridge Protocol Data Unit)报文只是在ISP的网络上透传。

BGP-VPLS实验拓扑

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

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

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

  • 创建VPLS VRF配置RD RT,配置唯一站点关联接入端口。

分步配置- 以MX1为例

ISIS 基础路由和接口配置

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

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 
set protocols bgp group songxwn.com neighbor 3.3.3.3
set protocols bgp group songxwn.com neighbor 4.4.4.4
# 建立iBGP邻居
set protocols bgp group songxwn.com family l2vpn signaling
# 开启l2vpn地址族,允许传递l2vpn类路由。

LDP和MPLS配置

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

VPLS AC 接入配置

set interfaces ge-0/0/3 vlan-tagging
set interfaces ge-0/0/3 encapsulation vlan-vpls
set interfaces ge-0/0/3 unit 0 encapsulation vlan-vpls
set interfaces ge-0/0/3 unit 0 vlan-id 600
set interfaces ge-0/0/3 unit 0 family vpls
# 带VLAN接入,带VLAN传输,发送到对端也会带VLAN。
set interfaces ge-0/0/4 encapsulation ethernet-vpls
set interfaces ge-0/0/4 unit 0 family vpls
# 不带VLAN接入

VPLS 路由实例配置

set routing-instances songxwn.com instance-type vpls
set routing-instances songxwn.com 
set routing-instances songxwn.com interface ge-0/0/3.0
 
set routing-instances songxwn.com no-tunnel-services
set routing-instances songxwn.com route-distinguisher 192.168.0.1:9527
set routing-instances songxwn.com vrf-target target:9527:9527
set routing-instances songxwn.com protocols vpls no-tunnel-services
set routing-instances songxwn.com protocols vpls site MX1 site-identifier 1
set routing-instances songxwn.com protocols vpls site MX1 interface ge-0/0/3.0
set routing-instances songxwn.com protocols vpls site 
    
  • RD - 帮助 BGP 区分 可能相同的网络层可达性信息 (NLRI) 从不同 VPLS 实例接收的消息。每个VPLS路由实例 在 PE 路由器上配置的必须具有唯一的路由区分器。

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

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

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

PS:no-tunnel-services 参考 https://www.juniper.net/documentation/cn/zh/software/junos/vpn-l2/topics/task/vpls-configuring-without-tunnel-services-pic.html

https://www.juniper.net/documentation/en_US/junos/topics/concept/vpls-security-routing-instance-understanding.html

MX1 配置一览

# MX1 配置
set interfaces ge-0/0/3 vlan-tagging
set interfaces ge-0/0/3 encapsulation vlan-vpls
set interfaces ge-0/0/3 unit 0 encapsulation vlan-vpls
set interfaces ge-0/0/3 unit 0 vlan-id 600
set interfaces ge-0/0/3 unit 0 family vpls
set interfaces ge-0/0/4 encapsulation ethernet-vpls
set interfaces ge-0/0/4 unit 0 family vpls
## AC 接入端口配置
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.com instance-type vpls
set routing-instances songxwn.com protocols vpls site MX1 interface ge-0/0/4.0
set routing-instances songxwn.com protocols vpls site MX1 site-identifier 1
set routing-instances songxwn.com protocols vpls no-tunnel-services
set routing-instances songxwn.com interface ge-0/0/4.0
set routing-instances songxwn.com route-distinguisher 192.168.0.1:9527
set routing-instances songxwn.com vrf-target target:9527:9527
## VPLS 路由实例配置
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 抓包

VPLS 连接验证

 show vpls connections   

验证VPLS MAC地址表(有通信才会有地址)

show vpls mac-table

验证VPLS MPLS转发表

show route forwarding-table family mpls

验证BGP、ISIS、LDP邻居

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
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/EDOC1100075312/ea751f32

https://www.h3c.com/cn/d_200805/606212_30003_0.htm

https://www.juniper.net/documentation/en_US/junos/topics/example/vpls-bgp-configuring.html

https://www.juniper.net/documentation/cn/zh/software/nce/feature-guide-virtual-private-lan-service/topics/example/vpls-bgp-configuring-detailed-solutions.html

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值