H3C 模拟器搭建BGP AD自动发现LDP信令的VPLS组网

2024-04-06 05:36

本文主要是介绍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 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。

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的过程在这里插入图片描述

    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。

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 IDVirtual Private LAN Service ID每个VPLS域的标识符。
AGIAttachment Group Identifier相同VPLS域中VSI实例间用于协商的域标识符。
AIIAttachment Individual Identifier相同VPLS域中VSI实例间用于协商的VSI实例标识符。
SAIISource Attachment Individual IdentifierBGP-AD方式VSI中进行PW协商时,携带的源附属ID,即为本端信令协商PEER IP地址。
TAIITarget Attachment Individual IdentifierBGP-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业务的自动部署。

  1. VPLS成员发现阶段

    VPLS成员发现是建立PW的第一阶段,使用BGP协议进行自动成员发现,其交互过程和携带的信息如图7-8所示。

    图7-8 VPLS成员发现的交互过程图

在这里插入图片描述

BGP AD VPLS成员发现的交互过程详细描述如下:

  1. 当在PE1设备上完成VPLS-ID、RD、RT、VSI-ID等参数的配置后,PE1会将这些信息封装到BGP的Update消息中作为BGP AD报文,向所有BGP域内的对端PE发送。当PE2在配置完成后也会做相同的处理。

    在这里插入图片描述

    其中,RD默认使用VPLS-ID的值,所以只需要配置VPLS-ID即可。而VSI-ID即本端的LSR-ID,也不需要手动配置。

  2. 在PE接收到远端发送过来的Update报文后,会根据配置的RT策略对收到的BGP AD报文进行过滤。对于符合RT策略的BGP AD报文,PE设备会从报文中获取远端VSI的信息,并将这些远端信息与本地配置生成的信息做比较。

    • 当两端设备的VSI中的VPLS-ID相同时,说明两个VSI属于同一个VPLS域,可以协商建立PW,而且这两个VSI之间只能建立一条PW。

    • 当两端设备的VSI中的VPLS-ID不同时,说明这两个VSI分属不同的VPLS域,则不能建立PW。

  3. VPLS PW自动部署阶段

    当完成VPLS成员发现后,则通过LDP FEC 129信令协商建立PW,具体交换过程和携带的信息如图7-9所示。

    图7-9 VPLS PW自动部署过程图

在这里插入图片描述

BGP AD VPLS PW的自动部署过程详细描述如下:

  1. 两台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会话拓扑的维护工作量,又能提高系统资源的利用率,减少网络资源的开销,提升网络性能。

  2. 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组网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879119

相关文章

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

JavaFX环境的搭建和一个简单的例子

之前在网上搜了很多与javaFX相关的资料,都说要在Eclepse上要安装sdk插件什么的,反正就是乱七八糟的一大片,最后还是没搞成功,所以我在这里写下我搭建javaFX成功的环境给大家做一个参考吧。希望能帮助到你们! 1.首先要保证你的jdk版本能够支持JavaFX的开发,jdk-7u25版本以上的都能支持,最好安装jdk8吧,因为jdk8对支持JavaFX有新的特性了,比如:3D等;

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

CentOS 7 SVN的搭建和使用

https://subversion.apache.org/packages.html#centos 阿里云的ECS貌似已经自带了SVN [root@xxx ~]# svn --versionsvn, version 1.7.14 (r1542130)compiled Aug 23 2017, 20:43:38Copyright (C) 2013 The Apache Software Fo

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build