三个部分:

  1. 源端CE把普通IPv4路由发布到直连的PE上,然后转换成VPN-IPv4的路由。
  2. 源端PE把VPN-IPv4路由发布到目的端PE上,以使MPLS隧道两端的PE相互学习对端的私网路由。
  3. 目的端PE把所学习的源端VPN-IPv4路由转换成普通的IPv4路由发布到直连的CE上,使MPLS隧道两端的Site间相互学习对方的私密路由。


第一步和第三步是在CE与PE间建立动态路由邻居关系如OSPF,RIP或者静态路由或者建立EBGP邻居关系传递。我们这里主要是讨论第2步,PE间VPNv4路由发布的原理。

四个步骤:

一.私网标签分配:
在BGP/MPLS IP VPN中,PE通过MP-BGP发布私网路由给骨干网的其他相关的PE前,需要为私网路由分配VPN标签(私网标签)。当数据包在骨干网传输时,携带私网标签。

PE上分配私网标签的方法有如下两种:

基于路由的VPN标签分配:为VPN路由表的每一条路由分配一个标签。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。

基于VPN实例的VPN标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。MP-BGP为私网路由分配标签的前提是PE上使能MPLS功能。

二.私网路由交叉:
两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理:

检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。对于RR发送过来的VPNv4路由,如果收到的路由中cluster_list包含自己的cluster_id,则丢弃这条路由。

进行BGP的路由策略过滤,如果不通过,则丢弃该路由。之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。VPNv4路由与本地VPN实例的Import VPN-Target进行匹配的过程称为私网路由交叉。

PE上有种特殊的路由,即来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。例如:CE1所在的Site属于VPN1,CE2所在的Site属于VPN2,且CE1和CE2同时接入PE1。当PE1收到来自CE1的VPN1的路由时,也会与VPN2对应的VPN实例的Import Target属性匹配。

VPNv4路由抓包:

三.公网隧道迭代:
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。

隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID用于唯一标识一条隧道。VPN报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。

四.私网路由的选择规则:
经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。

对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:

  1. 同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。

  2. 同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。

对于到同一目的地址的多条路由,如果进行路由的负载分担,则:

  1. 优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。

  2. 只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。

  3. 负载分担的AS_PATH属性必须完全相同。

路由发布实例:

以下图为(PE-CE之间使用BGP,公网隧道为LSP)为例,说明将CE2的一条路由发送到CE1的过程。

  1. 在CE2的BGP IPv4单播地址族下引入IGP(Interior Gateway Protocol)路由。
  2. CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为VPN IPv4路由,加入对应的VPN实例路由表。
  3. Egress PE为该路由分配VPN标签,并将标签和VPN IPv4路由信息加入MP-IBGP的Update消息中的NLRI字段中,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。
  4. Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该VPN实例路由表。
  5. Ingress PE把该路由通过BGP Update消息发布给CE1。此时路由是普通IPv4路由。
  6. CE1收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE1把该路由加入IGP路由表。

上面过程只是将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给CE2,其过程与上面的步骤类似,此处不再复述。

整理资料来源:《华为hedex文档》

MPLS virtual private network路由信息的发布过程相关推荐

  1. MPLS Virtual Private Network

    目录 传统Virtual Private Network 1.产生 2.网络结构 3.Virtual Private Network模型 3.1.Overlay Virtual Private Net ...

  2. MPLS virtual private network PE-CE之间的路由协议(OSPF)

    基础配置: OSPF 协议是PE和CE之间路由协议的另一种选择,如果要将VPN用户路由传递到其他PE,那么需要在PE上把OSPF路由引入到MP-BGP,在远端PE上需要将MP-BGP的VPNv4路由引 ...

  3. MPLS virtual private network 跨域方案实现原理

    概述: 随着MPLS技术的成熟,其应用越来越流行,尤其是在VPN方面.通过运营商提供的VPN服务,将分布在各地的站点通过运营商的网络连接起来,避免了租用专线,节省了大量的成本.近年来,由于MPLS V ...

  4. 华为数通笔记-MPLS virtual private network

    简介 BGP MPLS VPN是一种L3VPN,它使用BGP在服务提供商骨干网发布VPN路由,使用MPLS,在骨干网中传递VPN路由. CE:用户边缘设备,与PE有相连的接口,感知不到VPN路由的存在 ...

  5. MPLS virtual private network报文转发过程

    概述: 首先数据流由CE 到PE使用的是IP转发,这个很容易理解.而数据流要经过骨干网,因为骨干网内部Р路由器没有私网路由,也就是没办法使用P转发,这时就应该想到用MPLS标签转发技术.在IP报文进入 ...

  6. Virtual Private Network

    VPN技术的运行机制与发展 虚拟专用网络(Virtual Private Network,VPN)是利用不可靠的公用互联网络作为信息传输媒介,通过附加的安全隧道.用户认证和访问控制等技术实现与专用网络 ...

  7. 虚拟专用网(Virtual Private Network)

    虚拟专用网(Virtual Private Network) 假如一个公司的两个场所需要通信,那么每个场所至少需要有一个路由器和全球唯一的IP地址,当场所A中的X主机向B场所的Y主机发送信息时,主机X ...

  8. 企业路由器配置L2TP 站点到站点模式Virtual Private Network指南_3(外网访问内网资源)

    应用场景:  企业路由器提供多类VPN功能.其中L2TP VPN可以实现企业站点之间搭建安全的数据传输通道,将接入Internet的企业分支机构与总部网络通过安全隧道互联,实现资源.信息共享. 资源说 ...

  9. Virtual Private Network虚拟专用网络-在Linux上搭建专用通道

    一.VPN VPN属于远程访问技术,简单地说就是利用公用网络架设专用网络.例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问. 在传统的企业网络配置中,要进行远程访问,传统 ...

  10. 【计算机网络学习笔记17】网络安全、加密技术、“Virtual Private Network”技术

    [计算机网络学习笔记17]网络安全.加密技术."Virtual Private Network"技术 一.网络安全概述 1.1 网络系统的安全目标: 1.可用性(Availabil ...

最新文章

  1. 使用date命令,进行时间戳和日期时间的互转
  2. 终止进程的方法总结(使用)
  3. SAP Cloud for Customer里的Sales Lead和Lead
  4. x264 struct学习 1
  5. vuex使用模块的时候 获取state里的数据语法
  6. Embeded linux之地址映射
  7. 求问模式达人,静态类可否代替单件?
  8. atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结
  9. 卡巴斯基KEY被列入黑名单
  10. android第三方视频播放加密,android 视频 加密/解密(使用AES)
  11. 广州橙优设计:学习UI需要那些?UI设计必须会的软件
  12. 抖音新王牌:“多闪”怎么快速引流脚本爆粉软件?批量添加多闪群批量私信好友!...
  13. 当web应用包含了websocket长连接,如何在web应用前加一层nginx转发
  14. Python+OpenCV手势识别Mediapipe(基础篇)
  15. 安卓chrome插件开发!你有过迷茫吗?最全的BAT大厂面试题整理
  16. 51单片机控制的数字温度计 PROTEUS 和51单片机教程
  17. 星辉信息科技教程-Centos上silk微信语音转换成mp3格式
  18. php cache_expire,PHP session_cache_expire 会话函数
  19. SVN客户端安装和使用
  20. 数据处理(10):SHP与JSON格式文件相互转换

热门文章

  1. 双非院校,0项目经验,三个月入职大厂NLP算法岗,月薪30k+
  2. 深入理解成分句法分析中的Dynamic Oracle
  3. 输入一个链表,输出该链表中倒数第k个结点
  4. 数据分析人员需要掌握SQL到什么程度?3个常考题目刷一刷
  5. 书单丨上过太空的JavaScript用着就是香!
  6. 实用贴丨正确的「递归」打开方式:让计算机像计算机一样去计算
  7. 别再对 Istio 一脸懵了,万众期待的第一本 Istio 著作现!已!上!市
  8. 9位工作流业内专家联袂推荐
  9. 末日帝国——Agile公司的困境 (5)
  10. 情感识别数据online_shopping_10_cats