本文主要是介绍H3C 模拟器搭建BGP AD自动发现LDP信令的VPLS组网,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
本实验使用在H3C HCL上运行搭建,使用AD-BGP方式搭建VPLS。
Juniper 系列文章:https://songxwn.com/categories/Juniper/
LDP VPLS采用FEC 128 TLV的LDP协议作为信令协议,需要手工配置PW,对设备的性能要求较低;BGP AD VPLS采用BGP协议自动发现VPLS域中的成员,并通过FEC 129 TLV的LDP协议自动建立PW。通常LDP VPLS适合于少量站点的VPLS网络,BGP AD VPLS适合于要求大量PW的VPLS网络。
VPLS系列文章: https://songxwn.com/tags/vpls/
基础理论
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 Signaling | PW信令协议 | 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。 |
VPLS的三种方式 - PW信令协议
PW信令协议主要有LDP和BGP。在信令协议基础上实现的VPLS可以分为以下几种:
-
LDP方式的VPLS
-
BGP方式的VPLS
-
BGP AD方式的VPLS
类型 | 描述 | 特点 | 应用场景 |
---|---|---|---|
LDP方式的VPLS | 采用LDP作为信令协议,也称为Martini方式的VPLS。 | 协议比较简单,对PE设备要求低,不能提供VPN成员自动发现机制,需要手工配置。在增加PE时需要在每个PE上都配置到新PE的PW。在每两个PE之间建立LDP Session,其Session数与PE数的平方成正比。当需要时才对每个PE分配一个标签,标签利用率高。在跨域时,必须保证所有域中配置的VSI都使用同一个VSI ID值空间。 | 适合用在Site点比较少,不需要或很少跨域的情况,特别是PE不运行BGP的时候。 |
BGP方式的VPLS | 采用BGP作为信令协议,也称为Kompella方式的VPLS。 | 要求PE设备运行BGP,对PE设备要求高,可以提供VPN成员自动发现机制,用户使用简单。在增加PE时只要PE数没有超过标签块大小就不需要修改原有PE上的配置,只需配置新的PE。利用RR(Route Reflector)降低BGP连接数,从而提高网络的可扩展性。分配一个标签块,对标签有一定浪费。在跨域时,采用VPN-Target识别VPN关系,对跨域的限制较小。 | 适合用在大型网络的核心层,PE本身运行BGP以及有跨域需求的情况。 |
BGP AD方式的VPLS | 首先通过扩展的BGP UPDATE报文来自动发现VPLS域中的其他成员信息,然后通过LDP FEC 129信令报文来完成本地VSI与远端VSI之间自动协商建立VPLS PW。 | 通过VPLS成员自动发现和VPLS PW的自动部署:与LDP方式VPLS相比,网络新增站点时配置的工作量少。与BGP方式VPLS相比,不仅节省本地的标签资源,而且能兼容与PWE3的互通。 | BGP AD方式VPLS结合了BGP和LDP两种VPLS信令各自的优点。 |
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的过程
-
当PE1和VSI关联并指定PE2为其对端后,此时如果PE1和PE2之间的LDP Session已经建立,PE1则采用DU方式主动向PE2发送标签映射消息(Label Mapping Message),该消息中包含PW ID和与该PW ID绑定的VC标签,以及接口参数。
-
PE2收到该标签映射消息后,会检查本地是否也和该VSI进行了关联。如果已经关联并且封装类型等参数也相同,则说明PE1和PE2的VSI都在同一个VPN内。此时PE2将接受标签映射消息,即单向VC1建立成功。同时,PE2向PE1回应自己的标签映射消息,PE1收到PE2的标签映射消息后作同样的检查和处理,最终也成功建立VC2。
-
-
利用LDP信令协议拆除PW的过程如图4-5所示:
图4-5 利用LDP信令协议拆除PW的过程
-
当PE1取消指定PE2为其对端后,PE1向PE2发送标签撤除消息(Label Withdrawal Message),PE2收到该消息后拆除VC1,并向PE1回应标签释放消息(Label Release Message)。
-
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的过程
-
当PE1和VSI关联并指定PE2为其对端后,此时如果PE1和PE2之间的BGP Session已经建立,PE1则向PE2发送携带MP-REACH属性的Update消息,包括Site ID和标签块信息。
-
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的过程
-
当PE1取消指定PE2为其对端后,PE1向PE2发送携带MP-UNREACH属性的Update消息,PE2收到该消息后释放标签并拆除VC1,同时向PE1回应携带MP-UNREACH属性的Update消息。
-
PE1收到标签释放消息后,释放标签并拆除VC2。
-
BGP AD方式的VPLS
介绍
BGP AD VPLS是BGP Auto-Discovery VPLS的简写,也称为BGP自动发现方式的VPLS,是一种自动部署VPLS网络的新技术。
BGP AD VPLS是首先通过扩展的BGP UPDATE报文来自动发现VPLS域中的其他成员信息,然后通过LDP FEC 129信令报文来完成本地VSI与远端VSI之间自动协商建立VPLS PW的过程。此外,BGP AD也支持HVPLS(Hierarchical Virtual Private LAN Service),可以通过关闭水平分割功能,使该对等体在HVPLS网络中属于用户端。
目的
随着VPLS技术的广泛应用,VPLS的组网规模也越来越大,网络部署的配置量也越来越大。为了实现简化网络配置,业务自动部署,降低运营成本的实际需求,引入了BGP AD VPLS的技术。
BGP AD VPLS是结合了Kompella VPLS和Martini VPLS两种类型的VPLS信令的优势而提出来的,利用扩展BGP报文在成员自动发现方面的优势来完成VSI之间的成员发现,再利用LDP FEC 129信令来协商建立PW,完成VPLS PW业务的自动部署。
通过VPLS成员自动发现和VPLS PW的自动部署,减少了部署VPLS网络的配置工作量,实现了业务的自动部署,降低了客户的运营成本。
相关概念
缩略语 | 英文全称 | 说明 |
---|---|---|
VPLS ID | Virtual Private LAN Service ID | 每个VPLS域的标识符。 |
AGI | Attachment Group Identifier | 相同VPLS域中VSI实例间用于协商的域标识符。 |
AII | Attachment Individual Identifier | 相同VPLS域中VSI实例间用于协商的VSI实例标识符。 |
SAII | Source Attachment Individual Identifier | BGP-AD方式VSI中进行PW协商时,携带的源附属ID,即为本端信令协商PEER IP地址。 |
TAII | Target Attachment Individual Identifier | BGP-AD方式VSI中进行PW协商时,携带的目的附属ID,即为对端信令协商PEER IP地址。 |
实现过程
BGP AD VPLS结合了Martini VPLS和Kompella VPLS的优势,通过BGP信令实现VPLS成员的自动发现,不仅减少了配置工作量,而且减少了对标签的浪费。
BGP AD VPLS是通过扩展BGP UPDATE报文,携带VSI成员信息,完成VPLS域中VSI成员之间的自动发现,然后通过LDP FEC 129类型的信令进行协商,完成VSI之间PW的自动建立,实现了VPLS域中VSI成员的自动发现及VPLS PW业务的自动部署。
-
VPLS成员发现阶段
VPLS成员发现是建立PW的第一阶段,使用BGP协议进行自动成员发现,其交互过程和携带的信息如图7-8所示。
图7-8 VPLS成员发现的交互过程图
BGP AD VPLS成员发现的交互过程详细描述如下:
-
当在PE1设备上完成VPLS-ID、RD、RT、VSI-ID等参数的配置后,PE1会将这些信息封装到BGP的Update消息中作为BGP AD报文,向所有BGP域内的对端PE发送。当PE2在配置完成后也会做相同的处理。
其中,RD默认使用VPLS-ID的值,所以只需要配置VPLS-ID即可。而VSI-ID即本端的LSR-ID,也不需要手动配置。
-
在PE接收到远端发送过来的Update报文后,会根据配置的RT策略对收到的BGP AD报文进行过滤。对于符合RT策略的BGP AD报文,PE设备会从报文中获取远端VSI的信息,并将这些远端信息与本地配置生成的信息做比较。
-
当两端设备的VSI中的VPLS-ID相同时,说明两个VSI属于同一个VPLS域,可以协商建立PW,而且这两个VSI之间只能建立一条PW。
-
当两端设备的VSI中的VPLS-ID不同时,说明这两个VSI分属不同的VPLS域,则不能建立PW。
-
-
VPLS PW自动部署阶段
当完成VPLS成员发现后,则通过LDP FEC 129信令协商建立PW,具体交换过程和携带的信息如图7-9所示。
图7-9 VPLS PW自动部署过程图
BGP AD VPLS PW的自动部署过程详细描述如下:
-
两台PE上属于相同VPLS域的VSI根据到远端(BGP AD中的Next Hop)的LDP会话状态相互发起LDP Mapping(FEC 129)信令,其中携带AGI、SAII、TAII和标签等信息。
BGP AD VPLS在成员发现后,采用主动触发LDP协议创建LDP会话的方式,使LDP能够按照业务的需求来建立会话。当VPLS业务撤销,不再使用该LDP会话时,再主动触发LDP协议拆除LDP会话。这样既能减少LDP会话拓扑的维护工作量,又能提高系统资源的利用率,减少网络资源的开销,提升网络性能。
-
PE接收到远端的LDP Mapping(FEC 129)信令后,解析获取VPLS-ID、PW Type、MTU、TAII等信息,将这些信息与本地VSI比较,如果协商通过,并且满足建立PW的条件时,创建到对端的PW。
环路避免
在以太网上,为了避免环路,一般的二层网络都要求使能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 AD-VPLS实验拓扑
-
PE1-3 之间配置OSPF Area0 打通底层路由。
-
PE1-3 之间建立MP-iBGP,开启L2VPN地址族。
-
PE1-3 之间建立LDP,用于公网MPLS隧道建立。
-
创建VSI配置RD RT,开启BGP AD。
分步配置- 以PE1为例
OSPF 基础路由和骨干接口配置
ospf 1area 0.0.0.0network 1.1.1.9 0.0.0.0network 20.1.1.0 0.0.0.255network 30.1.1.0 0.0.0.255# 配置ospf并宣告接口。interface LoopBack0ip address 1.1.1.9 255.255.255.255
#
interface GigabitEthernet0/0ip address 20.1.1.1 255.255.255.0mpls enablempls ldp enable
#
interface GigabitEthernet0/1ip address 30.1.1.1 255.255.255.0mpls enablempls ldp enable# 配置骨干接口,并开启MPLS和LDP.
MP-iBGP - AD
bgp 9527peer 2.2.2.9 as-number 9527peer 2.2.2.9 connect-interface LoopBack0peer 3.3.3.9 as-number 9527peer 3.3.3.9 connect-interface LoopBack0#address-family l2vpnpeer 2.2.2.9 enablepeer 3.3.3.9 enable# 建立BGP开启L2VPN地址族传递
LDP和MPLS配置
mpls lsr-id 1.1.1.9
mpls ldp# 开启全局LDP,配置LDP源地址为 lookback地址
l2vpn enable# 开启l2vpn全局vsi songxwn.comauto-discovery bgproute-distinguisher 100:1vpn-target 100:1 export-extcommunityvpn-target 100:1 import-extcommunitysignaling-protocol ldpvpls-id 9527:1# VSI配置,开启BGP AD,配置RD RT,配置信令协议为ldp,配置vpls-id。vpls-id同VPS组网需要相同
VPLS AC 接入配置
interface GigabitEthernet0/2xconnect vsi songxwn.com
# 不带VLAN接入
interface Giabitethernet 1/0/1service-instance 10encapsulation s-vid 100xconnect vsi songxwn.com
# 二层子接口接入
从CE-3 接入PC Ping CE-1 接入PC 抓包
VPLS 连接验证
display l2vpn pw verbose
VSI Name: svcPeer: 2.2.2.9 VPLS ID: 9527:1Signaling Protocol : LDPLink ID : 8 PW State : UpIn Label : 917629 Out Label: 917629MTU : 1500PW Attributes : MainVCCV CC : -VCCV BFD : -Tunnel Group ID : 0x800000230000000Tunnel NHLFE IDs : 4Peer: 3.3.3.9 VPLS ID: 9527:1Signaling Protocol : LDPLink ID : 9 PW State : UpIn Label : 917628 Out Label: 917628MTU : 1500PW Attributes : MainVCCV CC : -VCCV BFD : -Tunnel Group ID : 0x800000330000001Tunnel NHLFE IDs : 5
验证VPLS MAC地址表(有通信才会有地址)
display l2vpn mac-addressMAC Address State VSI Name Link ID/Name Aging
56dc-86bf-0406 Dynamic svc 0 Aging
56dc-8f68-0606 Dynamic svc 9 Aging
--- 2 mac address(es) found ---
验证BGP、OSPF、LDP邻居
show bgp peer l2vpnBGP local router ID: 1.1.1.9Local AS number: 9527Total number of peers: 2 Peers in established state: 2* - Dynamically created peerPeer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State2.2.2.9 9527 21 24 0 1 00:16:23 Established3.3.3.9 9527 19 23 0 1 00:13:32 Established
show ospf peerOSPF Process 1 with Router ID 1.1.1.9Neighbor Brief InformationArea: 0.0.0.0Router ID Address Pri Dead-Time State Interface2.2.2.9 20.1.1.2 1 40 Full/DR GE0/03.3.3.9 30.1.1.3 1 31 Full/DR GE0/1
display mpls ldp peer
Total number of peers: 2
Peer LDP ID State Role GR MD5 KA Sent/Rcvd
3.3.3.9:0 Operational Passive Off Off 178/178
2.2.2.9:0 Operational Passive Off Off 178/178
参考文档
https://support.huawei.com/enterprise/zh/doc/EDOC1100075312/ea751f32
https://support.huawei.com/enterprise/zh/doc/EDOC1100333866/3120d885
https://www.h3c.com/cn/d_202306/1884427_30005_0.htm#_Toc137577552
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
主要还有大侠唐在飞的大力支持
这篇关于H3C 模拟器搭建BGP AD自动发现LDP信令的VPLS组网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!