HCIP---MPLS---VPN


前言

MPLS协议使用标签交换来转发报文,最初是为了提高IP报文转发效率而设计的,但是后来随着硬件性能的提升,路由表已经不再是路由表/防火墙的转发瓶颈,现在MPLS主要应用于VPN等场景。


一.MPLS VPN

MPLS VPN 一般由运营商搭建,用户购买VPN服务,如下图,中间框内是运营商网络,里面的路由器运行MPLS。公司分分支路由不需要运行MPLS协议,感觉不到VPN的存在,就好像和其它分支路由器直连一样 

CE:用户网络的边界设备  汇总私网路由信息

 PE:运营商边界设备  接收CE汇总的私网路由信息并使用BGP协议传递给对端PE设备

P:运营商设备  使用IGP协议完成路由信息的高速转发  

MPLS VPN 工作原理

MPLS VPN路由传递分为3段:

  1. 从CE发布路由到PE
  2. PE1将路由传递给PE2
  3. PE2将路由交给CE2

CE与E之间路由传递可以通过OSPF BGP等学习。 

 二.路由传递

VRF:

  一个PE可能收到来自多个CE的路由,而且来自不同的CE路由可能使用相同的私网IP,为了不产生混淆,在PE设备上使用虚拟路由转发技术(VRF)将来自不同CE的路由单独存放,如下图。

 图中VRF 路由表通常和接口绑定,从指定接口来的路由信息都放在绑定的VRF 路由表中。

MP-BGP:

BGP的一种扩展,它允许BGP用于传输多种协议的路由信息,包括IPv4和IPv6,而且可以在同一BGP会话中传输不同的协议路由信息, MP-BGP还提供了VPN扩展,使得它能够处理VPN路由信息,这个特性被广泛应用于VPN网络中。

PE1使用MP-BGP将路由信息传递给PE2,运行MP-BGP的设备自动将未知网段的路由信息递归进入LSP隧道,且自动开启社团属性传递性。

 在MP-BGP路由传递过程中会遇到两个问题

  1. 左边CE1和CE2的网段都是一样的,都是10.1.1.0/24,传递过程中如何进行区分?(RD值
  2. 10.1.1.0/24到达PE2后,应该交给CE3还是CE4?(RT值
  3. 10.1.1.0/24到达PE2后,应该存放在VRF A中还是VRF B中?(私网标签

为了解决上述问题,引入以下2个值+1和标签。

 RD值:路由标识

由64位二级制构成,华为设备的格式:AS号:NN(任意值),由于私网IP地址并非唯一性,不同的客户端可以使用相同的私网IP,因此PE设备会针对不同客户端的路由信息分配不同的RD值用以区分不同客户端的路由信息,再将RD值和路由信息一起传递给PE2。图中含有RD值的路由信息称为 VPNv4路由

图 1 中 路由信息冲突无法区分           图 2 中 路由信息包含RD值用于区分

RT值:路由目标

RT格式与RD类似,而且也在BGP里面传递,如下图所示,在PE2设备上提前配置好,RT=100:1的路由交给CE3对应的VRF 路由表,RT=200:1的路由交给CE4对应的VRF路由表,每个PE设备上都要配置入RT和出RT而且要与对端相互匹配。

 私网标签

在MPLS VPN 骨干网络中,MPLS中运行的MPLS会给路由分配一个公网标签用于数据转发,而MP-BGP协议同样会给路由分配一个私网标签(该标签和远端PE设备的VRF存在对应关系),通过BGP社团属性在PE设备之间传递,用于判断该路由存放到哪个VRF 中。

三.配置命令

  •  #R1配置---PE1
#创建VRF空间 1
[r2]ip vpn-instance 1
#设定RD值
[r2-vpn-instance-1]route-distinguisher 1:100
#设定RT值
#设置出站LSR RT值
[r2-vpn-instance-1-af-ipv4]vpn-target 1:200  export-extcommunity
#设置入站LSR RT值
[r2-vpn-instance-1-af-ipv4]vpn-target 1:100 import-extcommunity
#将接口划入VRF空间
[r2-GigabitEthernet0/0/0]ip binding vpn-instance 1

#创建VRF空间 2
[r2]ip vpn-instance 2
#设定RD值
[r2-vpn-instance-2]route-distinguisher 4:100
#设定RT值
[r2-vpn-instance-1-af-ipv4]vpn-target 4:100 export-extcommunity
[r2-vpn-instance-1-af-ipv4]vpn-target 4:200 import-extcommunity
[r2-GigabitEthernet0/0/2]ip binding vpn-instance 2

#在BGP进程中启用MP-BGP
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 5.5.5.5 enable 
#在VRF空间中启动对应路由协议
[r2]rip 1 vpn-instance 1
[r2]version 2
[r2-rip-1]network 12.0.0.0
[r2]rip 2 vpn-instance 2
[r2-rip-2]version 2
[r2-rip-2]network 13.0.0.0  
  
#在BGP进程中进入对应的VRF空间导入对应AS区域路由
[r2-bgp]ipv4-family vpn-instance 1
[r2-bgp-1]import-route rip 1
[r2-bgp]ipv4-family vpn-instance 2
[r2-bgp-2]import-route rip 2
  •  #R5配置---PE2
#创建与PE1设备VRF 1 空间对应的VRF 2 空间
[r5]ip vpn-instance 2
[r5-vpn-instance-2]route-distinguisher 3:100
#PE2的入站RT值需和PE1的出站RT值相同,PE2出站RT值要和PE1对应VRF空间的入站RT值相同
[r5-vpn-instance-2-af-ipv4]vpn-target 1:200import-extcommunity 
[r5-vpn-instance-2-af-ipv4]vpn-target 1:100 export-extcommunity 
[r5-GigabitEthernet0/0/1]ip binding vpn-instance 2

#创建与PE2设备VRF 2空间对应的VRF 1空间
[r5]ip vpn-instance 1
[r5-vpn-instance-1]route-distinguisher 5:100
[r5-vpn-instance-1-af-ipv4]vpn-target 4:200 export-extcommunity
[r5-vpn-instance-1-af-ipv4]vpn-target 4:100 import-extcommunity
[r5-GigabitEthernet0/0/2]ip binding vpn-instance 1

#在VRF空间中启动OSPF
[r5]ospf 2 vpn-instance 2 router-id 5.5.5.5
[r5]ospf 3 vpn-instance 1 router-id 5.5.5.5
#在BGP进程中启用MP-BGP
[r5-bgp]ipv4-family vpnv4
[r5-bgp-af-vpnv4]peer 2.2.2.2 enable

#在BGP进程中进入对应的VRF空间导入对应AS区域路由
[r5-bgp]ipv4-family vpn-instance 2
[r5-bgp-2]import-route ospf 2
[r5-bgp]ipv4-family vpn-instance 1
[r5-bgp-1]import-route ospf 3

 拓展配置:

注:将接口划入VRF空间后该接口将从全局路由表中独立出来,路由表中不含该接口直连网段信息
    且路由器转发报文时默认查看全局路由表,因此给VRF空间中的网段发送报文时,需使用特殊
    命令使设备查看VRF空间路由表转发报文,
注:该PE设备只有转发从VRF空间中的接口接收过来的数据时会自动访问VRF路由表

#查看VRF空间路由表
[r2]dis ip routing-table vpn-instance 1
#指定设备发送该网段报文时查看VRF路由表
<r2>ping -vpn-instance 1 12.0.0.1

#将入站RT和出站RT都设置为1:100
[r2-vpn-instance-1-af-ipv4]vpn-target 1:100

#给VRF空间添加静态路由
[r2-bgp]ipv4-family vpnv4
[r2-bgp]ipv4-family vpn-instance 1
[r2]ip route-static vpn-instance 1 1.1.1.0 12.0.0.1


#在VRF空间中启动RIP
[r2]rip 1 vpn-instance 1
#在VRF空间中启动OSPF
[r5]ospf 2 vpn-instance 2 router-id 5.5.5.5

#查看VRF空间中BGP表
[r2]dis bgp vpnv4 vpn-instance 1 routing-table 

 效果图:

  • R1路由表 

  •  R8路由表

  •  R2VRF路由表:

  •  R5VRF路由表

 

  •  R6路由表

 

  • R9路由表 

 


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北 染 星 辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值