• [技术干货] 了解L2VPN
    本次给大家分享一些学习到的L2VPN的相关知识,如果以下内容有存疑的地方,欢迎大家评论区讨论~~                                    
  • [技术干货] GRE VPN 技术原理笔记
    • • GRE简称通用路由封装协议(Generic Rrouting Encapsulation)他的作用是把一种协议的报文封装在另外一种协议的报文中的技术,是一种隧道技术(只要这样子做,都称为隧道技术)。所以我们抓包看到的至少有两个头部,这两个头部的作用就是穿越异种网络。而且他还可以对组播报文进行封装,这是IPsec做不到的,也就是说我们可以在GRE上面跑路由协议(可以让两个异地的设备跑动态路由),并且可以和IPsec结合,保证更高的安全性。 • GRE虽然我们把它称为VPN技术,但是他一般来说不会单独使用,因为他缺乏安全性,但是他的优点很明显,非常的简单,成为来隧道技术的一个代表。   GRE:Generic Rrouting Encapsulation,通用路由封装协议。 • 一种三层的VPN封装技术。 • 在任意一种网络协议上传送任意一种其他网络协议的封装方法。 • 解决了跨越异种网络(不是一种网络)的报文传输问题,异种报文传输的通道被称为隧道(Tunnel)。 • 异种网络:不是同一种网络,这些网络默认是不兼容的,通讯是有问题的。 如:私网跨越公网到达私网,IPv4跨越IPv6到达IPv4,反之亦然。本身这个技术用到的方面很广,是一种隧道技术。 • • GRE优点 GRE缺点 建立隧道 点到点隧道 (一个点到一个点,多个点就要多个隧道口) 支持多种网络层协议 静态配置隧道参数 支持组播路由 部署负责,连接关系时代价巨大 配置简单,容易部署 缺乏安全性(最大的致命伤)   GRE核心功能:建立隧道,打通私网 • 隧道一般配置在出口且有公网的设备上。 • • 有了隧道以后,相当于在出口设备和对端出口设备接了一条专线,因为VPN就是用来代替专线的,可以理解为他是一条虚拟的专线,而且从路由层面上来说,正常我们数据从出口设备发出,到达目的网络会有多跳,而我们建立VPN后,只会算一跳,这些细节也会被隐藏。相当于也是减少了路径的跳数。 • • GRE over IPsec是实际应用场景较多的,GRE隧道一般很少单独使用,因为不安全, 所有用IPsec来保护,当然IPsec也可以单独使用。IPsec虽然很强大,有自己的隧道和加密技术,但是IPsec不支持路由组播,而GRE支持,所以使用IPsec保护GRE进行安全传输。所以是先有GRE然后再由IPsec来保护GRE,这也就是GRE over IPsec,这是实际需求的一种用法。 •   GRE封装:穿马甲 • 在原始封装的数据报文字段中加入新的IP头部,在新的IP报头和老的IP报头中间加一个协议,这就是GRE报头。 •  • GRE头部 • • 把原本的IP报头当成货物,这个被称为乘客协议,GRE负责承载乘客协议的IP报文,可以理解为车辆,然后由新的IP报头在公网进行传输,公网设备只会查看新的IP报头,然后进行转发。  • GRE报头详解 • 协议号为47,经过GRE封装后,新的IP报头的协议号为47。GRE报头里面还有载荷协议,用于判断上层是上面类型。 • • GRE封装后报头 •   GREVPN转发过程详解: • 私网到私网的路由不走缺省路由,要走隧道口,当我们收到一个私网路由时,这时设备会查找路由表。 • • 查询路由表后,发现要去的地址的下一跳是隧道口,设备发现我们要走的是隧道口,所以会对数据报文进行GRE封装。 • •  设备加了一个GRE头部,同时会有新的IP头部,这个新的IP头部,会有新的源和目标IP地址,就是建立时的隧道源和隧道目标。 • 隧道口的意义在于设备查找路由时找到出接口是隧道口,或者下一跳是隧道目标。 • 因此,私网数据报文保留,加上GRE报头和新的IP报头(隧道源和隧道目标)。 • • 数据报文发送出去后,中途运营商的设备会根据外层的IP报头进行转发。 • • 目标设备收到数据报文后,进行解封装,看到GRE报文后,会继续解封装,然后在看到原先发送的数据报文,发现是私网包头,进行查找路由,发现有就进行转发,回包也是如此,这就完成通讯。 •  • GRE通讯流程图 •    GREVPN配置: • 命令 备注 Interface tunnel 0/x/x 创建隧道口。 Tunnel-protocol x 指定协议。 source 指定隧道源/接口/IP。 destination 指定隧道目地/IP。 Ip address x 添加隧道口地址(必须) Ip route-static d m tp 配置静态隧道口。 d=目的 m=掩码  tp=隧道接口/宣告口 Dis int tunnel x 查看隧道口信息。 Keepalive period 5 retry-times 3 开启Keepalive避免数据黑洞。 Gre checksum/key  配置简单校验/验证   GREVPN路由宣告注意事项:使用动态路由宣告时,千万不能宣告公网接口(只能宣告私网路由)。 • 如果a宣告了公网地址,那么b就会通过a的隧道口学习到这个公网地址,这个时候b的隧道目标就出现问题了,有两条路由,一是物理口的缺省,二是往隧道口的隧道目标,b向a发送数据报文时,会进行封装,如何通过隧道目标发送出去,然而隧道目标的下一跳还是隧道口,这样子就有问题了,会一直递归封装。 •   GREVPN隧道口虚假状态:只要设备上有到隧道目标的路由,那么隧道口即可激活。 • 隧道口激活UP状态很简单,只要有去隧道目标的路由,即可启用隧道口,他不判断隧道目标链路是否正常,没有检测机制,如果中间链路出现故障,那么会造成业务中断。 • • 解决办法:开启keepalive,开启后,会通过隧道发送keepalive的数据包让对端回复,周期性发送,用于检测对端隧道是否可达。会发送keepalive message ,对端隧道会进行keepalive reply 回复。 •  •  •
  • [技术干货] 看图学数通(七)安全相关知识之VPN、GRE
    上六篇帖子,小编介绍了OSI七层模型、TCP/IP模型、路由相关知识、交换相关知识、安全相关知识之ACL、NAT、安全相关知识之防火墙,相信看了小编上六篇帖子的人,应该对OSI七层模型、TCP/IP模型、路由相关知识、交换相关知识、安全相关知识之ACL、NAT、安全相关知识之防火墙有一定的了解,忘了的小伙伴可以点击下方链接再回顾下,本篇小编打算和小伙伴们一起回顾下安全相关知识之VPN、GRE。看图学数通(一)OSI七层模型看图学数通(二)TCP/IP模型看图学数通(三)路由相关知识看图学数通(四)交换相关知识看图学数通(五)安全相关知识之ACL、NAT看图学数通(六)安全相关知识之防火墙   VPN相关知识   Virtual Private Network,简称VPN。我们运用VPN技术,可以实现利用公有网络实现私有的数据通信,相当于我们在通信节点之间,跨公有网络建立一个私有的、专用的虚拟通信隧道,而且基于不同的VPN技术,我们还能让这个通信隧道具有安全性、可信任、可靠性、完整性检验等特点。VPN有两个显著的特点:专用型、虚拟性。由于VPN是在公有网络上临时建立的安全专用虚拟网络,用户就节省了租用专线的费用,在运行的资金支出上,除了购买VPN设备,企业所付出的仅仅是向企业所在地的ISP支付一定的上网费用,也节省了长途电话费,因此VPN价格低廉。   GRE相关知识   Generic Routing Encapsulation,简称GRE,是一种VPN技术,通过GRE技术,我们能够对网络层数据进行封装,封装后的数据能够在公共网络中传输。GRE提供了一种隧道机制。GRE的工作机制非常简单,就是将原始的IP报文的基础上,加上一个新的GRE的头部,然后再套上一个新的隧道IP头。这个新的隧道IP头部用于在中间的公有网络中传输被封装的原始IP数据包。   智能云网   智能云网社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识。目前承载了云园区网络,云广域网络,数通网络开放可编程,超融合数据中心网络,数通网络设备开放社区共五个场景。为了响应广大开发者需求,还提供了开发者交流、API 体验中心、多媒体课件、SDK工具包、开发者工具以及远程实验室共六大工具,让开发者轻松开发。欢迎各位前来体验。>>戳我了解更多<<
  • [技术干货] 为什么 5G专用网络对企业数字化转型至关重要
    今天的企业制造设施正在经历一场翻天覆地的变化。这个被称为“工业4.0”的新变革时代正迫使企业将制造业的几乎每个方面都数字化。人工智能 (AI)、机器学习 (ML)、机器人、“协作机器人”、复杂传感器、云计算和物联网 (IoT) 都为生产和供应链流程带来了巨大的价值。 但是,为了使企业真正从这种跨领域的更智能、更互联的“事物”的冲击中获得价值,需要在网络弹性和速度方面具有一定优势。 可以考虑采用5G专用网络。凭借超快的速度和接近零的延迟,企业可以缓解与连接系统相关的可靠性问题。由于不再需要有线连接,生态系统被 5G 实现的更大程度的灵活性所吸引。 支持 5G 的工厂将能够以更快的响应时间进行通信,并能够与比以往任何有线或无线系统多得多的传感器保持连接。例如,5G 的延迟为 1-10m,而 Wi-Fi 和 4G 将接近 20m 或更多;拥有 5G 的工厂还将能够在单位面积上连接更多设备,其数量是 Wi-Fi 和 4G 的十倍。 5G专用网络对企业的5大好处 1、最大化运营效率 通过从安装在生产线上的物联网设备或传感器捕获实时数据,组织现在可以更深入地了解运营的各个方面,并能够以更高的精度分析流程。通过近实时数据和人工智能的使用,可以监测和评估机器和实际制造流程的状况,从而可以立即进行调整,以优化工厂的整体效能。 通过利用5G专用网络的超高速和低延迟,自动导引车 (AGV) 现在将在智能工厂或仓库中变得更加普遍,从而提高生产效率。 2、供应链优化 借助5G专用网络,更高的可见性意味着企业供应链的无缝优化。随着互联工具和设备的使用,通过及时补充库存和零件,提高了整个供应链流程的自动化能力,从而确保准时交付并减少延误风险。 3、资产跟踪的可见性 了解所有连网设备和机器的位置对于实现工厂内的效率提升至关重要。定位方法的出现,例如基于云的蜂窝定位,给专用网络带来了颠覆性的精确度。工厂现在将能够以 3D 亚米级精度定位任何支持 5G 的设备。结合对高密度连接的支持,公司现在能够跟踪更多、价值更低的资产,从而创建大量新的、更易于访问的用例。 4、预测性维护 平衡企业生产设施的停机时间和维护需求并非易事。通过利用5G连接、数据分析和物联网来预测维护需求,可以降低因机械故障导致停机的风险,并且可以充分规划预测性维护窗口。通过5G的覆盖范围来监测生产线上的每一步来实现这一点。 5、5G 专用网络 = 提高工人的安全性 广泛可用的设备传感器,再加上 5G 近乎瞬时的响应时间,可以创建一个更加安全的生产环境。工厂车间中需要操控重型机械的工人数量将会减少,同时紧急停机指示器将更加灵敏。 此外,通过在5G专用网络中使用边缘计算,可以进一步提高效率。在网络边缘而不是在云中发送、检索或计算数据不仅安全得多,而且还可以缩短响应时间。节省毫秒可能听起来不是很多,但在考虑工厂内部自动化时,每一毫秒都很重要——尤其是在对人类工人更危险的环境中。 通过在协作机器人环境中安装5G跟踪传感器,工人和自动导引车的活动可以变得安全。 最终,5G专用网络有望为企业带来重大运营效益。它们不仅为技术和生产力带来新的能力,而且还以更强大竞争优势的形式带来战略价值。来源 | 物联之家网作者 | polte 编译 | iotohme原文链接 | https://www.iothome.com/tech/connectivity/2021/1201/11969.html
  • [技术干货] 使用ncclient连接华为设备创建vpn
    【案例总结】使用ncclient连接设备创建vpn1、环境准备# python以及pip版本 PS D:\TOOLS\nc-client> pip --version pip 21.2.4 from c:\users\y00451247\appdata\local\programs\python\python37\lib\site-packages\pip-21.2.4-py3.7.egg\pip (python 3.7) PS D:\TOOLS\nc-client> python --version Python 3.7.3 # 安装ncclient pip install ncclient2、场景搭建需要实现的是,创建PE1和PE2之间的VPN通道,最终可以通过查询路由表来证明。本例中只以PE1设备作为需要配置的设备,PE2使用类似方法进行配置。3、ncclient python脚本写作步骤配置主要包括创建vpn-instance -- vrf_ncc_oc_nat配置接口 GigabitEthernet0/3/8.4091配置路由策略配置ipv4配置ipv6配置静态路由以其中创建vpn-instance配置块为例:# step1: 配置块字符串获取使用xml-translate工具将目标命令行放置在xml-translate begin之后,在将所有需要转换的命令行都输入之后,使用xml-translate end结束本次转换,我们只需截取节点内的内容并作为需要发送报文字符串。# step2: 调用ncclient库函数,与设备建立连接 manager.connect(host=host, port=port, username=user, password=password, hostkey_verify = False, device_params={'name': "huaweiyang"},allow_agent = False,look_for_keys = False) # step3: 调用ncclient库函数,下发edit-config报文; 其中rpc为上述xml-translate转换出的字符串 manager.dispatch(xml_.to_ele(rpc)) # step4: 调用ncclient库函数,下发commit报文, 使配置实际生效 manager.commit()其他配置块与创建vpn-instance配置块类似,需要重复执行step3和step4,将转换出的报文依次下发到设备 4、结果验证将完整的python脚本完成执行后,可以通过如下命令行查看路由状态
  • [问题求助] 如何查询设备信息
    在做L3VPN SSP的时候,VPN的RD格式为<loopback0-address>:<value>,我们希望只是填入<value>这个参数,loopback0地址由SSP自动查询设备生成,请问这个如何实现?谢谢
  • [问题求助] 如何灵活创建VPN
    在Yang模型中,定义了一个list(如下代码),生成的AOC GUI如下图。 希望能够灵活输入vpn的参数(VPN的数量根据用户输入来确定) 但是发现每次list只有最后添加的的VPN参数才生效,请问如何才能实现这种需求?(脚本可以参考附件) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202109/26/020019hdvmhhhvt8urvwde.png) ``` list vrfList { key "vrfName"; leaf vrfName { description "Defines a type of service component identifier."; type string { length 1..255 { description "VPN Routing/Forwarding instance name, support 1-255 characters."; } } mandatory true; } leaf rd { description "BGP route distinguisher"; type string; } leaf rtInList { type string { length "0..63"; } } leaf rtOutList { type string { length "0..63"; } } } } ```
  • [技术干货] 【云驻共创】AOC一触即发,玩转L3VPN业务开发
    一 背景什么是智能云网,业务上云,智驱行业新价值,围绕“数字化、智能化、服务化”,华为打造端到端智能云网解决方案,以数赋智,提供云园区网络、云广域网络、数通网络开放可编程、超融合数据中心网络、数通网络设备开放社区五大场景,让企业上好云、用好云。本直播实战AOC开发L3VPN业务。二 AOC核心机制及相关概念AOC的核心机制:模型驱动、映射机制、事物机制、配置预览和历史记录等。• 模型驱动:• AOC可以根据Yang模型自动生成Web UI和RestConf。• Yang模型在配置下方的时候可以存储备份,和同步设备上的配置• Yang同时起到了屏蔽南向协议的作用,例如NetConf和STelnet。映射机制:AOC的映射机制将SSP的网源模型映射为AOC中data store的网源模型进行自动比较,形成一些列操作,对开发者非常的友好。事务机制:针对于复杂业务,可能有多个设备,也可能一个设备多条配置,事物机制在实时监控配置下发过程,如果出现异常进行回滚配置预览:基于AOC任何下发的配置,在页面上可以看到预览信息,可以看到下发的报文什么样子的。历史记录:在AOC上做的任务配置,可以记录用户针对AOC的北向记录配置,同时也可以记录AOC对设备的配置记录,这样非常方便的进行审计。2.1 SSP定义 Specific Service Plugin 缩写,也称为业务包。业务是指 针对一款或多款设备设计的,利用一台或多台设备的能力共同达 成某种目的的应用程序。在一个SSP包中,定义了完成一套网络级 业务配置对应的数据YANG模型、 Python脚本、Jinja2模板。 • 业务YANG模型描述了业务的相关参数。 • Python脚本可以对输入业务Yang模型数据进行进一步校验或 者逻辑处理,AOC在open-api中提供了很多接口方便用户处 理。 • Jinja2模板通过使用Jinja2语法诸如插值、条件判断、循环等 完成对网元的Yang模型数据结构描述。2.2 作用业务包可支撑业务跨设备、跨厂商快速部署,当在开放可编程中导入一 个SSP后,用户就可以基于业务Yang模型对对应的网络业务进行配置 发放,并且支持查看由业务分解出的网元级配置等。三 开发全景开发全景如下步骤:1.业务分析2.开发SSP包• 创建SSP包模板• 编辑pkg.json• 业务开发YANG模型• 开发Python映射代码• 开发Jinja2模板• 编写测试用例3.编译SSP包4.验证SSP包在开发SSP包步骤中是一个循环的步骤。四 L3VPN业务分析4.1 环境• IDE:本地IDE或者在线IDE环境 • AOC:在线AOC环境或者本地实验室AOC环境4.2 设计L3vpn的组网以及配置比较复杂,当前由于时间及环境的关系 我们只挑选PE节点中的部分配置下发,其他的节点及配置类似, 假定业务分析设计阶段已完成,网元层最终要下发给设备的模 型数据已确定,只需要针对PE节点下发vpn相关属性,以及接 口相关属性4.3 目标编写Yang,编写分解逻辑以及模板,最终AOC试运行产生的配置数 据符合预期4.4 命令行解析假设设备上VPN的全局配置已经配置完成。现在 只需要下发如下配置: 1. 创建VPN实例5G-RAN,配置RT和RD值。 2. 创建子接口,配置接口地址、vlan并绑定 VPN实例。 3. 配置VPN路由,引入静态路由和直连路由, 配置BGP对等体。 4. 使能YANG接口下发bgp配置。上图为Yang模型对应的格式报文,最终写的jinja2模版报文也类似。4.5 整理网络配置的输入参数根据l3vpn业务梳理出网络配置的输入参数: 1. 标识哪个VPN业务下发到哪台设备,提取出 设备名称和VPN名称两个参数,作为组合 key标识一个VPN业务。 2. VPN需要配置RT和RD值,过滤路由信息, 提取出RD和RT两个参数。 3. 接口需要配置IPv4地址、绑定VPN、配置 vlan,提取出子接口名称、接口描述、接口 IP和掩码4个参数。 4. 配置BGP对等体,提取出对等体的IP。五 开发业务YANG模型5.1 编写业务YANG模型 1. 在SSP包模板的yang模型中,服务名称对应 业务YANG module的名称,业务定义点对 应业务YANG模型的“app:applicationdefinition”。 2. 在yang模型中定义业务标识,本例中使用设 备名称和VPN名称作为组合key。 3. 在yang模型中定义VPN业务的RD和RT值。 4. 在yang模型中定义子接口配置。 5. 在yang模型中定义对等体信息。5.2 校验YANG文件运行命令D:\yang-offline-util>java -jar yang-offline-util.jar validate console path .yang-offline-util.zip获取地址: https://devzone.huawei.com/test/aoc/resDownload.html 1. 从AOC开发者社区上下载YANG文件校验工具。 2. 然后解压“yang-offline-util.zip”。 3. 将软件包“yang”目录下的业务YANG模型文件, 复制到“yang-offline-util.zip” 的解压路径下。 4. 从离线工具包中获取业务YANG模型文件依赖的 YANG文件huawei-ac-applications.yang和ietfinet-types.yang,并放到和业务YANG模型文件 的同一个目录下。 5. 打开CMD并切换到校验工具所在目录,执行命令 验证YANG模型的正确性。当运行结果为空时, 表明YANG文件格式正确。六 开发Python映射6.1 开发python映射代码 1. 在编写python代码前,需要引入必要的头 文件中的相关类。 2. 复写“ncs_map” 方法,将用户业务 YANG定义的业务数据填充到jinja模板。 3. 定义一个方法,用于更新VRF描述信息。 4. 定义一个方法,用于校验主接口是否存在。 5. 添加Jinja模板过滤器,用于在Jinja模板中 实现SSP业务映射到不同款型设备。6.2 开发Jinja2模板1. 根据ifm、network-instance、bgp的配置,制 作Jinja2模板,在业务分析涉及阶段已分析,并获取 到了对应的网元Jinja2模型。 2. 将具体值提取出变量,完成后将模板放入到模板 文件(L3VPN>template>l3vpn>NE8000M8.j2)中。 3. 如果有多种类型设备,可以将业务扩展映射到不 同款型的设备。 4. 将编写好的模板放入到模板文件 (L3VPN>template>l3vpn>servicepoint.j2)中。6.3 编写测试用例编写测试用例 1. 编写llt测试代码,并保存到test > l3vpn路径下的脚本文件中。2. 运行测试脚本文件,可以看到 生成的报文,检查报文格式和 值是否正确。6.4 加载SSP 包1. 在AOC软件的“包仓库”页 面,先删除原来的SSP包模 板。 2. 然后导入新开发的SSP包和 签名文件。 3. 单击“操作”列中的“部 署”,激活SSP包。 6.5 下发网络业务1. 进入“业务管理”页面,选中 业务模型“l3vpn”,单击 “增加”。 2. 在打开的页面中,填写设备名 称和VRF名称后,单击“创 建”。 3. 再填写 子接口与和bgp 等配置 信息 。 4. 单击“试运行”,查看将要下 发的配置报文 。七 实战在CloudIDE进行编码设配配置包仓库中创建包模版最终完成开发及测试运行。本文整理自华为云社区内容共创活动:【内容共创系列】中秋月圆至,人间好时节——签约作者征集令,推荐/参与活动有奖。查看活动详情:https://bbs.huaweicloud.com/blogs/298594
  • [技术干货] vdpn应该叫VPN 还是 叫 专线?
    1、含义上的区别VPN,是虚拟专用网络,属于远程访问技术,利用公用网络架设专用网络。VPDN,是虚拟专有拨号网络业务,是在中国宽带互联网基础上开放的基于拨号方式的虚拟专有网络业务。2、工作原理上的区别VPN工作原理是根据规则确定对数据加密还是直接传输;对需要加密数据,进行加密并附上数据签名,加上新的数据报头重新封装;将封装后的数据包通过隧道在公共网络上传输;数据包到达目的VPN设备后,将其解封,核对数字签名无误后,对数据包解密。VPDN工作原理是向用户提供采用PSTN、ISDN、XDSL、电缆或无线以拨号方式接入中国宽带互联网,采用专用的网络加密和通信协议,可以使企业在公共网络上构建一条虚拟的、不受外界干扰的专用通道,从而安全访问企业网内部数据资源的业务。一、性质不同1、VPDN:在中国宽带互联网基础上开放的基于拨号方式的虚拟专有网络业务。2、VPN:利用公用网络架设专用网络。二、特点不同1、VPDN特点:(1)方便:企业总部商务平台建立在互联网上。所属用户可登录互联网,使用vpdn业务,登录内网办公。(2)可靠:面向远程用户与企业网关的连接,拨号接入服务器采用独立设备,保证vpdn连接的稳定性和可靠性。(3)安全:由于采用了先进的虚拟通道技术和两种认证手段,传输的文件和数据信息不会被发现和窃取。(4)自助:企业可以管理自己的拨号用户开通、销售和设置用户权限。
  • [信息速递] 直播有礼,“AOC一触即发,玩转L3VPN”,急速报名
    你想成为编程大牛吗?你知道网络开发也可以如此简单吗?特邀华为数通网络开放可编程专家WeiWei老师,为您讲解L3VPN业务包开发,实战网络自动化。学编程、思变革、迎未来!这是网络新运维革命的盛会。精彩时刻,等你加入!直播主题:AOC一触即发,玩转L3VPN业务开发直播时间:2021年8月20日16:00-17:30直播介绍:综合运用YANG、python、Jinja能力,通过AOC社区“在线开发”云上平台,快捷创建虚拟网元,完成L3VPN业务包的实战开发。1、【直播前】报名链接:https://bbs.huaweicloud.com/signup/70f7ab3bb2624ba38c7429eecc7fad70?utm_source=webinar&utm_medium=signup&utm_campaign=signup2、【直播后】直播盖楼有奖链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=147210
  • [热门活动] 【中奖公布中】【HDZ研习社-21年8月】【“AOC一触即发,玩转L3VPN”业务开发直播盖楼】
    欢迎大家来到【“AOC一触即发,玩转L3VPN”业务开发直播盖楼】观看直播,参与盖楼赢好礼!感谢大家积极参与,截止2021年8月31日,本活动共盖楼121层,我们在参与活动的小伙伴中随机抽取2名参与话题1互动的中奖者,中奖信息如下,恭喜各位!!!请中奖的用户在2021.9.12日前填写问卷提供收件地址:>>戳我去填写收件地址<<,过期不候哦!【“AOC一触即发,玩转L3VPN”业务开发直播盖楼】直播来了,WeiWei老师为您打造专场直播“AOC一触即发,玩转L3VPN业务开发”,参与盖楼活动吧,更有礼品相送哦!【直播主题】AOC一触即发,玩转L3VPN业务开发【直播时间】2021年8月20日16:00-17:00【直播盖楼活动时间】:8月13月-8月31日【直播介绍】你想成为编程大牛吗?你知道网络开发也可以如此简单吗?特邀华为数通网络开放可编程专家WeiWei老师,为您讲解L3VPN业务包开发,实战网络自动化。学编程、思变革、迎未来!这是网络新运维革命的盛会。精彩时刻,等你加入!一、【直播盖楼】1、互动话题1:关键词在本主题帖盖楼,帖子内容:“数通网络开放可编程”即可。2、互动话题2:观点分享在本主题帖回帖,帖子内容:分享观后感,数据通信学习兴趣点或诉求。3、互动话题3:直播报名直播报名入口:链接:https://bbs.huaweicloud.com/signup/70f7ab3bb2624ba38c7429eecc7fad70?utm_source=webinar&utm_medium=signup&utm_campaign=signup二维码:在本主题帖回帖,回帖实例:1.华为开发者社区账号:XXXX2.报名截图:待定二、活动抽奖规则参与互动方式奖品数量发放规则话题1华为定制保温杯2当总楼层达到100时,从参与互动话题1中随机抽取2名幸运者话题2 双肩包2当总楼层达到200时,从参与互动话题2中随机抽取2名幸运者话题3华为手环1当总楼层达到400时,从参与互动话题3中随机抽取1名幸运者备注:1、 以上3个话题均可参与,且盖楼评奖相互独立。2、 每种话题发帖数量不超过5条,参与度越高获奖机会越大。三、奖品展示(以实物为准)                                                                                                                                        
  • [热门活动] 【数通网络开放可编程,L3VPN业务包开发宣传帖】
    【数通网络开放可编程,L3VPN业务包开发宣传帖】一.直播简介直播来了,WeiWei老师为您打造专场直播“数通网络开放可编程,L3VPN业务包开发”,直播时间8月20日16.00-17.00更有礼品相送哦。欢迎大家来到【数通网络开放可编程,L3VPN业务包开发】观看直播,参与盖楼赢好礼吧!【直播主题】数通网络开放可编程,L3VPN业务包开发【直播时间】2021年8月20日16:00-17:00【直播介绍】你想成为编程大牛吗?你知道网络开发也可以如此简单吗? 8月20日16:00-17:00,特邀华为数通网络开放可编程专家WeiWei老师,为您讲解L3VPN业务包开发,实战网络自动化。学编程、思变革、迎未来!这是网络新运维革命的盛会。精彩时刻,等您加入!1.【直播前】       https://bbs.huaweicloud.com/signup/70f7ab3bb2624ba38c7429eecc7fad70?utm_source=webinar&utm_medium=signup&utm_campaign=signup(报名链接)2.【直播中】1、 直播间抽奖(8月20日)      直播间抽奖共分3轮,直播过程中开展。奖品和数量分别是华为定制开发者T恤2件,华为定制保温杯2个,华为三脚架自拍杆1个。2、盖楼回帖抽奖(活动时间:8月13月-8月31日)      设计3个话题,分别对应不同奖品,奖品和数量分别是华为定制保温杯2个,双肩包2个,华为手环1个,当楼层达到100-200-400层数随机抽奖。3.  【直播后】***********************************奖品发放/后续活动*********************************二 .盖帖活动具体方式盖楼帖链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=147210&page=1&authorid=&replytype=&extra=#pid1291161                                                       三 .注意事项1、获奖名单将会在2021.9.10前在本帖公布,请及时关注。2、中奖者请在2021.9.17前将华为数通开发者社区注册截图和收货信息(收件人,收件地址,联系电话)邮件给nceecosystem@huawei.com,过期不候哦!数通开发者社区注册入口:https://devzone.huawei.com/cn/network/portal.html3、  活动务必遵守数通开发者社区活动规则:https://bbs.huaweicloud.com/forum/thread-23077-1-1.html4、  为了让更多的用户参与评奖,若活动中出现参与了3种话题且均获奖的用户,原则上只发放活动中价值最高的奖品。5、  本活动最终解释权归华为数通开发者社区所有。四.观看直播链接华为LIVE:华为开发者社区直播间:斗鱼 待更新:虎牙 待更新:YY直播 待更新:华为数通微信视频号: 
  • [代码Show] 我的编程首战手册——看直播、鼓勇气、搞实战
    实战L3VPN业务包开发最近看完直播“AOC一触即发,玩转L3VPN业务开发”,对开放可编程强大的可编程能力很感兴趣,又很担心开发一个SSP包很复杂,所以今天亲自上手,试试实战做个L3VPN业务的软件包,看看是不是很难?直播视频回放地址:https://bbs.huaweicloud.com/live/HDZ_live/202108201600.html实战环境:本地IDE环境  从PyCharm官网下载安装社区版本,PyCharm官网:https://www.jetbrains.com/pycharm/AOC界面:在线AOC环境  https://remotelab.huawei.com/AOCmini2001/aocwebsite/#/aocIndexPage下面是记录的完整的实战过程。开发一个L3VPN的EasyMap网络业务,将配置下发到已纳管的设备NE8000M8上。万丈高楼平地起,首先要把基础打牢。          开发SSP包,首先得要有一个空的SSP软件包模板。可以从开放可编程环境上下载模板,也可以拿已有的SSP包做模板。          下面讲一下如何从环境上创建和下载模板。进入开放可编程主界面,在主菜单中选择“包仓库”,从左侧导航栏选择进入“包管理”界面,单击“增加”。并在弹出的“增加”对话框中设置软件包的相关属性。属性名称属性值名称L3VPN版本1.0.0提供商HUAWEI包类型Specific Service plugin描述l3vpn服务名称l3vpn业务定义点l3vpn映射类型python+template单击“确定”后,在弹出的提示添加成功的对话框中再次单击“OK”,即可在软件包列表中看到新添加的软件包。单击这条软件包记录“操作”栏中的下载图标下载该软件包到本地。接下来就在模板上编辑,先编辑软件包配置文件,描述下SSP包相关信息。打开PyCharm,单击“Create New Project”,进入“New Project”对话框。展开“Project Interpreter”区域,确认配置无误后,单击“Create”。如果已创建工程,则直接打开PyCharm工程即可。将下载下来的软件包解压到当前工程所在路径。在集成开发环境左侧导航树中,双击打开pkg.json文件。如果生成模板时填写的很规范,基本上这里不用修改什么。注意检查下hooks下的参数设置,EasyMap网络层业务分解为网元层业务时,type设置为mapping。{ "name": "L3VPN", "version": "1.0.0", "description": "l3vpn", "package-type": "ssp", "producer": "huawei", "service-name":"l3vpn", "nce-min-versions":[ "1.0.0" ], "hooks": [ { "type": "mapping", "key": "l3vpn", "python-class-name": "l3vpn.l3vpn.L3VPNService" } ] }开发SSP包,能实现在界面上配置业务参数,快速下发业务。那么我们现在就要开发业务YANG模型,定义这些参数。在集成开发环境左侧导航树中,双击打开yang目录下的.yang文件,编写YANG模型。不同的业务对应不同的参数,这里L3VPN业务涉及的参数已经帮大家整理出来了,如下表所示,不懂业务的开发者只需照抄定义即可。表 L3VPN业务配置参数类别描述参数名称参数值VPN业务标识标识哪个VPN业务下发到哪台设备,提取设备名称和VPN名称。deviceNamePE1vrfName5G-RANVPN配置参数VPN需要配置RD和RT值,过滤路由信息,提取RD和RT值。rd100:01:00rt100:11:00接口配置参数绑定VPN的子接口需配置IPv4地址,提取子接口名称、子接口描述、子接口IP和子接口掩码。ifNameGigabitEthernet0/5/0.1descriptionconnect to pe2ip20.1.2.9Subnet mask255.255.255.0BGP对等体配置参数配置BGP对等体的IP地址,提取对等体IP。peerAddress2.2.2.2下面YANG文件中定义上述参数。module l3vpn { //模块名称对应服务名称 //YANG模块命名空间,全球唯一的URI标识;通过prefix定义命令空间的缩写字符串 namespace "http://example.com/l3vpn"; prefix "l3vpn"; //huawei-ac-applications和ietf-inet-types定义了公共模型,这里需要导入 import huawei-ac-applications { prefix app; } import ietf-inet-types { prefix inet; } description "The module for L3VPN example."; revision 2020-11-05 { description "Initial revision."; } //可以用augment定义对YANG模型的增广模型 augment "/app:applications"{ list l3vpn { app:application-definition "l3vpn"; /*app:application-definition 表示定义一个系统可识别的servicepoint, 这里的service-point必须要和pkg.json文件hooks参数中的key字段值一致。*/ key "deviceName vrfName"; //定义业务标识,本例中使用设备名称和VPN名称作为组合key leaf deviceName { type string { length "1..512"; } } leaf vrfName { description "Defines a type of service component identifier."; type string { length 1..255 { description "VPN Routing/Forwarding instance name, support 1-255 characters."; } } mandatory true; } //在yang模型中定义VPN业务的RD和RT值 leaf rd { description "BGP route distinguisher"; type string; } leaf rt { description "Route target extended community as per RFC4360"; type string; } //在yang模型中定义子接口名称 leaf ifName { type string { length "0..255"; } } //在yang模型中定义子接口描述 leaf description { type string { length "0..242"; } } //在yang模型中定义子接口IP leaf ip { type inet:ipv4-address; } //在yang模型中定义子接口掩码 leaf subnet { type inet:ipv4-address; } //在yang模型中定义对等体IP信息 leaf peerAddress { type inet:ipv4-address; } } } } 开发Python代码,实现业务功能逻辑。本实例代码逻辑主要包含如下几部分:检查绑定VPN子接口的主接口是否存在,不存在则报错。(可选)更新VPN描述信息,方便后续查询时显示业务用途。这项可选,没有也不影响业务功能。将业务YANG定义的业务数据填充到Jinja2模板中,生成下发设备的报文。L3VPN软件包代码示例如下所示。# 必选,NcsService是系统提供的供SSP包继承的父类,需要复写以实现业务YANG数据到Jinja2模板的映射;devicemgr提供了一些查询设备信息的接口。 from aoc import NcsService, devicemgr # datastore提供了读写数据库的接口 from aoc import datastore # AOCException是系统定义的异常类,可以把用户自定义的异常呈现到前台界面 from aoc.exception.aocexceptions import AOCException # L3VPNService继承NcsService类并复写ncs_map方法 class L3VPNService(NcsService): def ncs_map(self, request, aoccontext=None, template=None): l3vpn_dict = self.xmltodict(request.xml) # 检查主接口是否存在 self.checkInterfaceIsExist(request, aoccontext) # 更新VPN描述信息 self.updateDes(l3vpn_dict) self.logger.info(str(l3vpn_dict)) # 将业务YANG定义的业务数据填充到jinja2模板 res = self.render('l3vpn/servicepoint.j2', l3vpn_dict) self.logger.info(res) return res # 更新vrf描述信息 # 如果要获取YANG模型相关的节点数据,可以通过x.y.z或x['y']['z']这样的方式便捷操作模型数据。 def updateDes(self, l3vpn_dict): if '3G' in l3vpn_dict['l3vpn']['vrfName'] : l3vpn_dict.update({"vrfDes": '3G'}) l3vpn_dict['l3vpn'].update({"description": '3G'}) # 校验主接口是否存在 def checkInterfaceIsExist(self, request, aoccontext): device_id = devicemgr.query_neid(request.xmldictnode.l3vpn.deviceName) subIfName = request.xmldictnode.l3vpn.ifName pointIndex = subIfName.find('.') parentName = subIfName[0:pointIndex] self.logger.info('deviceId:%s, parentName:%s' % (device_id, parentName)) if devicemgr.is_snd(device_id, 'NE8000M8SPC300_SND') or devicemgr.is_snd(device_id, 'NE8000_M8'): path = "huawei-ac-nes:inventory-cfg/nes/ne/" + device_id + "/huawei-ifm:ifm/interfaces/" # 查询配置数据库中数据 output = datastore.read_datastore_rdb(aoccontext, path) asnindex = str(output).find(parentName) if asnindex == -1: raise AOCException(parentName + ' not exist in device!') # 添加Jinja2模板过滤器,用于在Jinja模板中实现SSP业务映射到不同款型设备 def add_filters(self): result = {"is_snd": self.is_snd} return result def is_snd(self, nename, sndid): # 根据设备名称查询设备ID neid = devicemgr.query_neid(nename) # 判断设备使用的哪个网元驱动包 return devicemgr.is_snd(neid, sndid)开发Jinja模板,将南向报文的主要部分写好,空白部分用python中变量传递值进来。先同步下设备配置。在主菜单中选择“设备配置 > 设备配置”。进入“设备配置”界面,选择对应的设备,单击“同步操作 > 同步”。登录设备,在设备上用命令行配置L3VPN业务。选择对应的设备,单击“差异发现”。差异发现结束后,“同步状态”显示为“差异发现完毕”,在操作列单击“查看差异”,打开差异呈现页面,选择“导出模板”。在“设备配置”界面,单击对应设备操作列中的“编辑”。在左边模型节点上方单击导出图标,弹出导出页面。在导出页面中,勾选“huawei-ifm、Huawei-network-instance和huawei-bgp”三个模型节点,勾选“合并模板”,勾选“带结构不带数据”导出方式,然后单击“确定”。打开导出的模板,对比差异发现导出的数据模板,删除多余部分,仅保留下发部分,然后把输入参数替换为参数名称变量。最后把编辑的内容放入到模板文件“template>l3vpn>NE8000M8.j2”中。<bgp xmlns:x="urn:huawei:yang:huawei-bgp" x:tag="no_delete"> <global> <yang-enable>true</yang-enable> </global> </bgp> <network-instance xmlns="urn:huawei:yang:huawei-network-instance"> <instances> <instance> <name>{{l3vpn.vrfName}}</name> {%- if l3vpn.vrfDes %} <description>{{vrfDes}}</description> {%- endif %} <afs xmlns="urn:huawei:yang:huawei-l3vpn"> <af> <type>ipv4-unicast</type> <route-distinguisher>{{ l3vpn.rd }}</route-distinguisher> <tunnel-policy>LDP</tunnel-policy> <vpn-targets> <vpn-target> <value>{{ l3vpn.rt }}</value> <type>export-extcommunity</type> </vpn-target> <vpn-target> <value>{{ l3vpn.rt }}</value> <type>import-extcommunity</type> </vpn-target> </vpn-targets> </af> </afs> <bgp xmlns="urn:huawei:yang:huawei-bgp"> <base-process> <afs> <af> <type>ipv4uni</type> <ipv4-unicast> <import-routes> <import-route> <protocol>direct</protocol> <process-id>0</process-id> </import-route> <import-route> <protocol>static</protocol> <process-id>0</process-id> </import-route> </import-routes> </ipv4-unicast> </af> </afs> <peers> <peer> <address>{{ l3vpn.peerAddress }}</address> <remote-as>100</remote-as> </peer> </peers> </base-process> </bgp> </instance> </instances> </network-instance> <ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface> <name>{{ l3vpn.ifName }}</name> <type>GigabitEthernet</type> <description>{{ l3vpn.description }}</description> <vrf-name>{{ l3vpn.vrfName }}</vrf-name> <ipv4 xmlns="urn:huawei:yang:huawei-ip"> <addresses> <address> <ip>{{ l3vpn.ip }}</ip> <type>main</type> <mask>{{ l3vpn.subnet }}</mask> </address> </addresses> </ipv4> </interface> </interfaces> </ifm>将业务扩展映射到不同款型的设备,编写调用对应款型设备Jinja2模板的逻辑,将编辑好的内容放入到模板文件“template>l3vpn>servicepoint.j2”中。<inventory-cfg xmlns="urn:huawei:yang:huawei-ac-nes"> <nes> <ne> <neid>{{l3vpn.deviceName| to_ne_id}}</neid> {%- if l3vpn.deviceName | is_snd('NE8000M8SPC300_SND') %} {% include 'l3vpn/NE8000M8.j2' %} {% elif l3vpn.deviceName | is_snd('NE8000M8_SND') %} {% include 'l3vpn/NE8000M8.j2' %} {% endif %} </ne> </nes> </inventory-cfg>开发工作已完成了,喝杯茶休息一下。然后接下来我们验证下YANG文件语法合法性。登录数通网络开放可编程社区:https://devzone.huawei.com/cn/enterprise/aoc/resDownload.html,下载验证工具。解压“yang-offline-util.zip”。复制软件包“yang”目录下的YANG模型文件到“yang-offline-util.zip”的解压路径下。运行如下命令验证YANG文件的正确性。前面路径是你的工具解压路径,不要搞错了哦。后面蓝色命令请务必输出正确,特别注意path后面是空格和一个点。C:\Users\demo\yang-offline-util>java -jar yang-offline-util.jar validate console path .当运行结果为空时,表明YANG文件格式正确。否则就需要根据报错检查并修正错误。C:\Users\demo>cd yang-offline-util C:\Users\demo\yang-offline-util>Java -jar yang-offline-util.jar validate console path . C:\Users\demo\yang-offline-util>最后,编译软件包,制作出可使用的软件包。在PyCharm窗口中,单击窗口下方的“Terminal”展开命令行窗格。运行软件包路径下“bin”目录中的“makeFile.bat”文件开始编译软件包。在命令行中运行如下命令:(dem) C:\Users\demo\PycharmProjects\dem>cd bin(dem) C:\Users\demo\PycharmProjects\dem\bin>makeFile.bat运行完成后,如果命令回显出现下面的内容表示编译成功。此时,可前往软件包路径下的“output”目录中获取软件包及其签名文件。[com.huawei.ncecommon.extended.pkg.mgr.tools.tool.Main] - [ZipAndSign] Sign: Execute successSo easy,好了,大功告成,软件包做出来,庆祝下吧!
  • [技术干货] 【转载】HVPN简介
    HVPN解决方案现在对层次化VPN统一叫HVPN,两种实现形式,一种叫HoVPN,一种叫H-VPN。在IPRAN网络中,采用HVPN方案构建的无线接入网,不仅使网络具备优秀FMC承载能力,而且使CSG到RSG之间实现层次化,具有良好的可扩展性和灵活性,适合规模较大的网络承载。产生背景常规的BGP/MPLS IP VPN 是一种平面模型,对网络中所有PE 设备的性能要求相同,当网络中某些PE 在性能和可扩展性方面存在问题时,整个网络的性能和可扩展性将受到影响。目前的网络设计大多采用经典的分层结构,BGP/MPLS IP VPN 的平面模型与典型的分层网络模型不相符,在每一个层次上部署PE 都会遇到扩展性问题,不利于大规模部署VPN。为解决可扩展性问题,BGP/MPLS IP VPN 必然要从平面模型转变为分层模型分层VPN(Hierarchy of VPN)解决方案将PE 的功能分布到多个PE 设备上,多个PE 承担不同的角色,并形成层次结构,共同完成一个PE 的功能。分层VPN对处于较高层次的设备的路由能力和转发性能要求较高,而对处于较低层次的设备的相应要求也较低,符合典型的分层网络模型。BGP/MPLS VPN 可以逐层部署。当UPE 的性能不够的时候,可以添加一个SPE,将UPE 的位置下移。当SPE 的接入能力不足的时候,可以为其添加UPE。UPE 和SPE 之间采用标签转发,因而只需要一个(子)接口相互连接,节约有限的接口资源。若UPE 和SPE 之间相隔一个IP/MPLS 网络,采用GRE 或LSP 等隧道连接。在分层部署MPLS VPN 时,有良好的可扩展性。UPE 上只需维护本地接入的VPN 路由,所有远端路由都用一条缺省或聚合路由替代,减轻了SPE 的负担。SPE 和UPE 通过动态路由协议MP-BGP 交换路由、发布标签。每一个UPE 只需建立一个MP-BGP 对等体(主备情况建两个),协议开销小,配置工作量小。HVPN的基本结构,主要包括UPE、SPE和NPE三类设备:  UPE:直接连接用户的设备称为下层PE(Underlayer PE)或用户侧PE(User-end PE),简称UPE。UPE主要完成用户接入功能。  SPE:接入UPE并位于网络内部的设备称为上层PE(Superstratum PE)或运营商侧PE(Service Provider-end PE),简称SPE。SPE主要完成VPN路由的管理和发布。  NPE:连接SPE并面向网络侧的PE称为网络侧PE(Network Provider-end PE),简称NPE。 HoVPN和H-VPN区别1、 路由传播HoVPN:SPE仅向UPE发布缺省路由或聚合路由H-VPN:SPE向UPE通告所有明细路由2、 流量传输HoVPN:UPE发往其他UPE或NPE的流量都需要通过在SPE上通过查找私网转发表进行流量转发H-VPN:UPE发往其他UPE或NPE的流量直接在SPE上交换标签进行转发3、 配置差异HoVPN:SPE上需要部署VPN实例(配置RT)H-VPN:SPE上不需要部署VPN实例,但是需要配置反射器,直接在NPE和UPE之间反射BGP VPNv4路由 (配置BGP VPNv4 FRR)
  • [技术干货] 【转载】浅谈对VLL、PWE3、VPLS三种L2VPN的认识
    1.1      VPN的简单分类首先说以下VPN的分类,VPN的分类有许多种方式。我们一般常接触的分类方式是按照运营模式进行分类:    1)、CPE-Based VPN:  设备放置在用户侧(Custom Premise Equipment)由用户管理或委托运营商进行管理;     2)、Network-Based VPN:  设备放置在运营商网络侧用户设备不需要感知VPN由运营商管理,又称为Provider Provide VPN。本文所讨论的三种L2VPN都是属于Network Base VPN。图1、 VPN技术的分类1.2      VLL、PWE3、VPLS三种L2VPN区别1.2.1     三种L2VPN的简介VLL( Virtual Leased Line,虚拟租用线,也被称为VPWS)是对传统租用线业务的仿真VLL技术是一种点到点的虚拟专线技术,能够支持几乎所有的链路层协议。VLL简单的理解就好比在客户之间拉了一条网线。分为Kompella和Martini两种实现方式,但Kompella工作组已经解散,Martini也更新为PWE3技术。PWE3(Pseudo-Wire Emulation Edge to Edge)是端到端仿真业务,PWE3是VLL的一种实现方式,是对Martini协议的扩展。PWE3扩展了新的信令,减少了信令的开销,规定了多跳的协商方式,使得组网方式更加灵活。在IPRAN网络大量使用PWE3来承载TDM等二层业务。VPLS(Virtual Private LAN Service)是一种基于MPLS和以太网技术的二层VPN技术。具体分为Juniper主导的Kompella方式和Cisco主导的Martini方式,是将公网模拟为二层交换机。适合于点到多点的业务,简单的说VPLS就是一个超级交换机。1.2.2     VLL、PWE3、VPLS实现方式的对比下面这张表是总结的VLL、PWE3、VPLS三种L2VPN的实现方式对比。分类实现方式信令协议备注VLLCCC手动配置支持本地连接MartiniLDP不支持本地连接,配置ldp remote-peerSVC内层标签手动配置,外层LDP看成是Martini方式的静版KompellaBGP使用vpn-target进行vpn路由的收发控制,支持本地和远程连接。PWE3VLL的Martini形式扩展LDP信令的扩展1、  增加了Notification方式2、  增加了多跳PW扩展3、  TDM接口扩展VPLSKompellaBGPPE端口绑定VSI(虚交换实例)进行VPLS转发MartiniLDP1.3      举例三种L2VPN实际配置对比只说这三种L2VPN不能很好的理解,下面就以一个Martini和Kompella两种方式实现VPN跨域Option C为例子,说说VLL和VPLS的区别(PWE3只是是VLL Maritni形式的一种扩展和演进,在这种场景下实现和VLL完全相同,后面会对PWE3进行单独的介绍)。Martini和Kompella的最主要区别是:1、使用Martini方式时,采用LDP信令分发标签,PE之间要建立mpls ldp remote-peer;2、采用Kompella方式时,采用BGP信令分发标签,PE之间建立MP-EBGP关系。1.3.1     Martini方式的VLL和VPLSMrtini形式的Option C实现时,典型组网如下图所示。首先在骨干网上运行IGP协议,使同一个AS域内的各设备能互通。在骨干网上节点使能MPLS,在PE与ASBR之间建立动态LSP隧道。同一AS的PE和ASBR之间建立IBGP,在各ASBR之间配置EBGP。在ASBR上需配置路由策略,使能标签路由功能。在PE1和PE2之间建立MPLS LDP远端对等体关系。图2、Martini方式实现跨域Option C的典型组网上图2中,PE1、ASBR1、ASBR2、PE2的loopback0 地址分别为1.1.1.1/32,2.2.2.2/32,3.3.3.3/32,4.4.4.4/32。1、  VLL形式在完成前面的基础配置后,检查PE1和PE2之间的remote-ldp peer建立起来,需要在mpls l2vpn试图下面配置动态VC的信令行为是非Notification方式,也就是Martini方式。如果不配置这条命令,默认是PWE3方式。这也是PWE3和VLL Martini的最主要区别。 mpls l2vpn  mpls l2vpn default martini在PE上面创建动态VLL链接mpls l2vc ip-address vc-id其中ip-address为PW对端设备的IP地址2、  VPLS形式VPLS形式的首先创建一个VSI,然后在连接CE的端口上绑定该vsi实例,这和L3VPN中绑定VPN-instance有点类似。    Martini方式的两种L2VPN配置实现差异如下表所示。Msrtini形式配置差异PE上的命令差异VLL1、  在mpls l2vpn试图下面配置动态VC的信令行为是Martini方式2、  在PE上面创建动态VLL链接mpls l2vpn  mpls l2vpn default martini#interface Serial0/0/1 link-protocol ppp undo shutdown mpls l2vc 4.4.4.4 100VPLS1、  建立一个VSI,PW信令设置为LDP;2、  在端口下绑定该VSI。mpls l2vpn#vsi a1 staticpwsignal  ldp  vsi-id 2  peer 4.4.4.4#interface GigabitEthernet0/0/1.1undo shutdownvlan-type dot1q 10l2 binding vsi v11.3.2     Kompella方式VLL和VPLSMrtini形式的Option C实现时,典型组网如下图所示。协议部署和Martini方式的基本一致,区别在于PE1和PE2之间建立的是MP-EBGP远端对等体关系。图3、 Kompella方式实现跨域Option C的典型组网图3中,PE1、ASBR1、ASBR2、PE2的loopback0 地址分别为1.1.1.1/32,2.2.2.2/32,3.3.3.3/32,4.4.4.4/32。Kompella方式的VLL和VPLS差异如下表Kompella方式配置差异PE上的命令差异VLL              创建l2vpn实例,创建CE连接mpls l2vpn#mpls l2vpn vpn1 encapsulation ppproute-distinguisher 100:1vpn-target 1:1 import-extcommunityvpn-target 1:1 export-extcommunityce ce1 id 1 range 10 default-offset 0connection ce-offset 2 interface Serial0/0/1VPLS1、 创建VSI虚交换实例,pw信令协议为bgp2、 在端口下绑定VSI实例mpls l2vpn#vsi v1 autopwsignal bgproute-distinguisher 100:1vpn-target 1:1 import-extcommunityvpn-target 1:1 export-extcommunitysite 1 range 5 default-offset 0#interface GigabitEthernet1/0/0.1undo shutdownvlan-type dot1q 10l2 binding vsi v11.3.3     PWE3形式的L2VPNPWE3相对VLL的Martini方式在以下几点进行了扩展。1、  信令扩展,LDP信令增加了Notification方式,只通告状态,不拆除信令,除非配置删除或者信令协议中断。这样能够减少控制报文的交互,降低信令开销,兼容原来的LDP和Martini方式。2、  多跳扩展,增加PW多跳功能,这点在IPRAN网络中应用十分广泛,对于TDM和ATM业务的承载都可以采用多条PW方式。在IPRAN中典型组网如下图所示:CSG和RSG之间部署多条PW,CSG、ASG、RSG之间建立MPLS LDP PEER,在CSG、RSG上配置业务PW,在主备ASG上配置交换PW,在主备RSG之间部署Bypass PW。图4、多条PW在IPRAN中的应用3、  TDM接口扩展支持更多的电信低速TDM接口。通过控制字CW(Control Word)及转发平面RTP(Real-time Transport Protocol)协议,引入对TDM的报文排序、时钟提取和同步的功能。1.4      总结这三种L2VPN理解起来容易搞混,简单的理解,VLL是点到点的业务,可以将整个网络看成一条网线;VPLS是点到多点业务,可将整个网络看成是一个交换机;PWE3是端到端的仿真,其实就是VLL的Martini形式扩展。理解这几点,再去看这三种L2VPN就容易很多了。