MPLS/BGP Learning Notes

VN网络的特点:

  1. 使用共享的公共网络环境实现各私网的连接;
  2. 不同的私有网络之间相互不可见。

使用BGP在服务提供商骨干网络上发布VN路由,使用MPLS在服务提供商骨干网上转发VN报文。

网络结构

BGP/MPLS IP VN模型BGP/MPLS IP VPN模型

  • CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VN的存在,也不需要支持MPLS。
  • PE(Provider Edge):服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VN的所有处理都发生在PE上,对PE性能要求较高。
  • P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VN信息。

地址空间重叠:

VN是一种私有网络,不同的VN独立管理自己的地址范围,也称为地址空间(address space)。不同VN的地址空间可能会在一定范围内重合,例如,VN1和VN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。

问题讨论:

  1. PE设备怎么区分不同VN客户的相同路由?
  2. 冲突路由在公网传播时,接收端PE如何正确导入VN客户路由?
  3. PE设备收到IP数据包后,如何正确的发送给目的VN客户?

BGP的优点提供了思路:

  1. 公网的VN路由数量庞大,BGP是唯一支持大量路由的协议
  2. BGP的报文基于TLV的结构,便于扩展
  3. BGP可以承载附加在路由后面的任何信息,并作为可选属性传递给其他邻居

难点迎刃而解

  1. 本地路由冲突问题:可以通过在同一台PE设备上为不同的VN建立单独的路由,这样冲突的路由就被隔离开来
  2. 在路由传递过程中,为不同的VN路由添加不同的标识,以示区别。这些标识可作为BGP属性传递
  3. 由于IP报文不可更改,可以在IP报文头前加一些路由信息。由始发路由器打上标记,接收路由器在收到带标记的数据包时,根据标记转发给正确的VN

工作原理

  • 共享PE设备上实现重叠路由的隔离就是在PE设备上将来自每个VN的路由放入自己对应的VN Routing Table 中,每个VN Routing Table 只记录对应VN中学来的路由,就像是专用PE一样。这个VN Routing Table 称谓 VRF,即VN路由转发表
  • 每个VRF都需要对应一个VN instance ,VN用户对应接口绑定到VN instance 中
  • 对于每个PE,可以维护一个或多个VN instance,同时维护一个公网的路由表(全局路由表),多个VN instance实例相互独立且隔离

如何在网络传递过程中区分冲突路由?

  • 将VN路由发布到全局路由表之前,使用一个全局唯一的标识和路由绑定,以区分冲突的私网路由。这个标识被称为RD(Route Distinguisher)
  • RD即VN路由标识符,由8字节组成,配置时同一PE设备上分配给每个VN的RD必须唯一
  • RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VN-IPv4地址(即VNv4地址)
  • 运营商设备采用BGP协议作为承载VN路由的协议,并将BGP协议进行了扩展,称为MP-BGP(Multiprotocol Extensions for BGP-4)。PE从CE接收到客户的IPv4私网路由后,将客户的私网路由添加各种标识信息后变为VNv4路由放入MP-BGP路由表中,并通过MP-BGP协议在公网上传递。

Hub-Spoke场景中VPN路由的引入问题:

  • RD不能解决VN路由正确引入VN的问题
  • 我们需要一种类似于Tag的标识,这个标识人工分配,发送端PE发送时打上标识,接收端PE收到后,根据需要将带有相应标识的路由引入VN
  • RT属性用于将路由正确引入VN,有两类VN Target 属性,Import Target 和 Export Target,分别用于VN路由的导出和导入
  • RT(Route Target)封装在BGP的扩展Community属性中,在路由传递过程中作为可选可传递属性进行传递
  • RT的本质是每个VRF表达自己的路由取舍及喜好的属性
    • Export Target:本端的路由在导出VRF,转变为VNv4的路由时,标记该属性
    • Import Target:对端收到路由时,检查其Export Target属性。当此属性与PE上某个VN实例的Import Target 匹配时,PE就把路由加入到该VN实例中

工作过程:

MPLS VN的工作过程分为两部分:

  • MPLS VN路由的传递过程
  • MPLS VN路由的转发过程

MPLS VN路由的传递过程分为四个阶段:

  • CE与PE之间的路由交换
    • CE与PE之间可以通过静态路由协议交换路由信息,也可以通过动态路由协议(如:RIP、OSPF、ISIS、BGP等)交换路由信息
  • VRF路由注入MP-BGP的过程
    • VRF中的IPv4路由被添加上RD、RT与标签信息成为VNv4的路由放入到MP-BGP的路由表中,通过MP-BGP协议在PE设备之间交换路由信息
  • 公网标签的分配过程
    • MPLS协议在运营商网络分配公网标签,建立标签隧道,实现私网数据在公网上的转发
    • PE之间运行的MP-BGP协议为VN路由分配私网标签,PE设备根据私网标签将数据正确转发给相应的VN
    • 运营商的骨干网络中的PE设备与P设备,需要运行IGP协议使运营商网络中的路由可达
    • PE设备与P设备需要运行LDP协议,动态分配标签,以建立标签隧道
  • MP-BGP路由注入VRF的过程
    • PE2在接收到PE1发送的VNv4路由后将检查路由的扩展团体属性,将携带的Export Target值与本端VN的Import Target值比较,数值相同则将路由引入VN的路由表,实现路由的正确引入

MPLS VN的数据转发过程分为三个步骤:

  • CE设备到PE设备的数据转发
    • 数据从CE1转发给PE1,PE1收到数据包后,查找本地VN1的路由表,发现数据包需要进行标签转发,分配的私网标签为1027,到达目标地址的下一跳为PE2
    • PE1通过查找LFIB表,发现到达PE2被分配的公网标签为1030,出接口为G0/0/0,PE1将数据包进行MPLS封装,内层为1027,外层为1030,从G0/0/0转发出去
  • 公网设备上的数据转发
    • 数据包在公网上转发时,通过MPLS协议已建立好的标签隧道将数据报文转发到PE2。转发过程中只改变公网标签
    • P设备收到数据包后,查找LFIB表,进标签为1030的数据包,对应的出标签为3,即将公网标签剥离后,将数据包发送给PE2,PE2收到的是只有内层私网标签的数据包
  • PE设备到CE设备的数据转发
    • PE2收到剥离公网标签的数据包后,根据私网标签查找转发数据包的下一跳,将数据包正确发送给相应的VN用户
    • PE2收到只有一层标签的数据包,查找标签表,发现标签为1027的数据包对应的下一跳为CE2,于是PE2将数据包剥离私网标签,进行IP封装,查找出接口,将数据包发送给CE2处理

至此数据包到达正确的目标用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值