目录
路由发布过程——路由交换主要通过RD、RT、MP-BGP实现
基本概念
MPLS隧道基本概念
关于隧道的相关概念
为什么出现MPLS VPN
由于目前硬件性能的提升,单纯的MPLS技术已经失去了价值
Mpls目前更多的是利用其隧道能力,支持MPLS VPN、VPLS、MPLS -TE等业务
什么是MPLS VPN
MPLS VPN是一种基于MPLS的隧道技术,其可以分为二层MPLS VPN和三层MPLS VPN
我们接下来主要讲解三层MPLS VPN
涉及的相关概念
Site(站点)
是指相互之间具备IP连通性的一组IP网络,并且这组IP网络的连通性不需要运营商网络实现
一般一个企业内网就是一个Site,是根据设备的拓扑关系划分的,而不是地理位置
Site通过CE连接到运营商网络,一个Site可以包含多个CE,但是一个CE只能属于一个Site
MP-BGP
什么是MP-BGP
传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(IPv6、组播等的应用)的应用,在传播时收到了一定的限制
MP-BGP(BGP多协议扩展)就是为了支持对多种网络层的支持,对BGP-4进行的扩展
如何支持多种网络层协议
MP-BGP引入了两个新的可选非过渡路径属性
MP_Reach_NLRI: 多协议可达NLRI,发布可达路由以及下一跳信息
MP_Unreach_NLRI:多协议不可达NLRI,用于撤销不可达路由
如何区分不同的协议
MP-BGP采用地址族(Address Family来区分不同的网络层协议)
目前支持:IPv4单播/组播、IPv4/IPv6 VPN实例、Vpnv4、IPv6单播地址族
关于MPLS VPN,就通过MP-BGP来传递PE两端的路由信息(并且地址簇为Vpnv4地址簇)
VPN实例(VPN-instrance 也称VRF)
VPN实例的作用
主要用来进行路由隔离
一台设备上可能运行着多个VPN,不同VPN之间的路由就可以通过VPN实例隔离
VPN实例包含的信息
IP路由表、标签转发表、与VPN实例绑定的接口、RD(路由标识符)等
VPN、Site、VPN实例之间的关系
- 一个Site可以属于多个VPN,VPN是由多个Sitte组成的
- 每一个Site在PE上都会关联一个VPN实例
- VPN与VPN实例不是一一对应关系,而VPN实例与Site之间存在一一对应关系
MPLS 隧道模型
主要由三部分组成:CE、PE、P
P :运营商网络的骨干设备,不予CE直接相连
PE:运营商边缘设备,与CE直接相连,负责企业私网路由的接入
CE:用户边缘设备,有接口直接与运营商网络相连(可以是路由器、交换机、主机)
注意
CE感知不到VPN隧道的存在,也不需要支持MPLS
PE和P设备由服务提供商管理,CE由用户自己管理
私网互通所遇到的问题及解决方法
PE本地私网路由冲突问题
当有多个企业私网接入到PE设备,而多个企业私网之间存在路由冲突,导致PE无法正确处理,PE如何解决本地私网路由冲突问题?
每个Site独享一个PE
通过不同的PE解决PE上私网路由冲突问题
多个Site共享一个PE
在PE上创建虚拟的路由表和CE进行私网路由的学习
每张虚拟的路由表运行独立的路由协议和独立的地址空间;每张虚拟的路由表对应一个Site
虚拟的路由表之间相互隔离,避免路由冲突
注意
虚拟的路由表绑定一组接口,运行独立的路由协议,称为VPN-instance
所以,PE要维护公网路由信息,也要维护不同VPN-instance路由信息
BGP对引入的路由无法区分的问题
将VPN实例中的路由引入到BGP协议时,BGP如何解决路由无法区分的问题?
当将VPN实例中的路由引入到BGP协议时,为这些路由添加RD值,并和IPv4前缀组合起来,形成vpnv4形式的路由
RD值携带在BGP报文的MP_REACH_NLRI(多协议可达NLRI)中
RD——路由区分符(解决IP地址重叠问题)
每个Vpn-instance只能配置一个RD,在同一台PE上不同的Vpn-instance配置不同的RD(RD的长度为8字节)
RD如何规划
方法一:所有的VPN实例配置全网唯一RD
方法二:同一个VPN的不同VPN实例配置相同的RD,不同VPN的不同VPN实例配置不同的RD
RD的作用
区分不同VPN实例中相同的私网路由
PE收到Vpnv4路由,根据RD可以判断vpnv4路由是否来自同一个vpn实例
Vpnv4路由——添加了RD参数的ipv4路由
192.168.0.1/24 IPv4地址族格式
RD 192.168.0.1/24 vpnv4地址族格式
- PE从CE接收到IPv4地址后,转换为全局唯一的Vpnv4地址
- Vpnv4路由通过MP-BGP协议传播,所以PE之间要建立MP-BGP邻居关系,才可以互相交换Vpnv4路由
- MP-BGP为了传递Vpnv4路由引入了两个可选非过渡属性(MP_REACH_NLRL 多协议可达NLRL、MP_UNREACH_NLRL 多协议不可达NLRL)
- MP_REACH_NLRI用于发布可达的路由信息以及下一跳信息,包含一个或多个三元组信息
PE无法区分将Vpnv4路由引入到哪个VPN实例的问题
当PE收到邻居传来的vpnv4路由后,如何确定将此路由引入到哪个VPN实例中?
通过RT解决vpnv4路由交换的问题,事先给Vpn实例配置RT值
RT属于BGP的扩展团体属性,携带在BGP报文的Extended_Communities中
RT分为两种——export rt 和 import rt
Export RT属性:表示我发出的路由属性,vpnv4路由发送时会添加该属性
Import RT属性:表示我对哪些vpnv4路由该兴趣,会将该兴趣的vpnv4路由引入到此Vpn实例
注意
每个VPN都可以配置多个Export RT和Import RT
当收到远端发送的ex rt属性,与自己本端im rt属性对比,只要有一个相同,就可以引入到该VPN实例中
例子
如何解决私网路由互访问题
私网路由传递的问题解决了,私网报文如果直接发送到公网,肯定不通,如何解决?
通过LSP来解决(即隧道技术)
LSP本质上也是一种隧道技术,当私网路由传输时,LSP会为其封装公网标签
当PE从网络侧收到一个私网报文后,该决定用哪张路由表进行转发呢?
PE上的MP-BGP协议会为本地所有的vpnv4路由分配一个本地唯一的私网标签,并和vpnv4路由一起传递出去
当远端PE收到后,根据私网标签就知道使用哪张路由表转发
私网标签与公网标签
私网标签:PE根据私网标签判断报文应用于本地哪个VPN实例路由表转发,MP-BGP分配
公网标签:将私网报文迭代到该私网路由的下一跳LSP的隧道中时,进行公网转发,LDP分配
即:在进行数据传输时,MP-BGP会为报文封装一层私网标签,LDP还会为报文封装一层公网标签
路由交换与数据交换过程
路由发布过程——路由交换主要通过RD、RT、MP-BGP实现
在MPLS VPN中路由交换可以分为以下几个阶段
CE到PE之间的路由交换
通过IGP、BGP、静态等路由协议交换路由信息(PE要将接口与相关路由协议绑定VPN实例)
PE将VPN实例中的路由注入MP-BGP,将ipv4路由转为vpnv4路由
在BGP的VPN实例视图下,引入IPv4私网路由,将其转为VPNV4路由(在IPv4前缀添加RD形成vpnv4路由)
然后在vpnv4路由通告中携带ex rt值,并为其分配一个私网标签
Vpnv4路由在骨干网中传播
在PE之间建立MP-BGP邻居关系,传输Vpnv4路由
PE将传递的Vpnv4路由加入到自身vpnv4路由表中
PE收到邻居的vpnv4路由后,根据vpnv4路由的ex rt值与本地vpn实例的im rt值,将VpnV4路由加入到本端Vpnv4路由表中,并将Vpnv4携带的私网标签存放在LSP表项中,用于数据转发。
PE将vpnv4转为ipv4路由
PE将Vpnv4路由加入到本地Vpnv4路由表中后,剥离其RD值,将路由加入到对应实例的IPv4路由表中
PE将IPv4下发给CE
PE在PE与CE连接的路由协议实例中引入BGP路由
图解
当PE与CE通过OSPF连接时,在OSPF [进程号] [实例]下import-route BGP
数据转发过程——数据转发通过私网标签和公网标签实现
数据从CE到入站PE
直接通过CE的路由表转发给PE
数据从入站PE到出站PE
PE根据CE发来数据包的入接口,查找相应的VPN实例转发表,找到对应的下一跳和私网标签,将数据报文封装私网标签
再通过公网的标签转发表,查找去往公网中下一跳地址的标签,该标签作为公网标签封装进数据包
封装完两层标签后,数据包被转发进MPLS网路,通过外层公网标签(LSP)转发到达出站PE
数据从出站PE到远端CE
当数据包由MPLS骨干网转发到达出站PE时,只剩下一层私网标签(公网标签在倒数第二跳弹出)
出站PE利用该私网标签判断对应的VPN实例,通过相应VPN实例表项进行转发(转发时移除私网标签)
相关表项
VPN实例表
VPNV4表
华为MPLS单域实验配置_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/128698457?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128698457%22%2C%22source%22%3A%22m0_49864110%22%7D 锐捷MPLS隧道单域实验配置_address-family ipv4 unicast_静下心来敲木鱼的博客-CSDN博客
https://blog.csdn.net/m0_49864110/article/details/127994864?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167379205816800211545341%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167379205816800211545341&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-8-127994864-null-null.blog_rank_default&utm_term=mpls&spm=1018.2226.3001.4450