MPLS VPN技术原理( 三 )


MPLS VPN技术原理

文章插图
 
以上为两个VPN实例,PE1(PE=Provider Edge device)上分别接了CE1 (CE=Customer Edge device)和CE3,但是CE1和CE3上带到IP地址相同的网 段10.1.2.0/8,很明显如果不对PE1路由器做修改,PE1只能认为往10.1.2.0/8的数据要么从S0出,要么从S1出,这样的话,不是CE1就是CE3就更本收不到从PE1发来的前往10.1.2.0/8网段的数据!
如果不对BGP4协议做修改,那么PE2和PE3发送给的PE1的有关10.1.1.0/8网络的路由更新就有可比性,PE1最终会选择一条路由,认为或是PE2或者PE3是发送数据到10.1.1.0/8的必经路由器 。这样如果CE1带的10.1.2.0/8网段上的主机给10.1.1.0/8网段上的主机发送数据时,可能会发到CE4所带的10.1.1.0/8的网段上,这样造成了数据泄露 。
所以,为了使LSR能提供基于MPLS的VPN服务,还必须对此类设备做修改 。
3 基于MPLS的VPN实现
3.1 VPN的历史
MPLS VPN技术原理

文章插图
 
VPN服务是很早就提出的概念,不过以前电信提供商提供VPN是在传输网上提供的覆盖型的VPN服务 。电信运营商给用户出租线路,用户上层使用何种的路由协议、路由怎么走等等,这些电信运营商不管 。这种租用线路来搭建VPN的好处是安全,但是价格昂贵,线路资源浪费严重 。
后来随着IP网络的全面铺开,电信服务提供商在竞争的压力下,不得不提供更加廉价的VPN服务,也就是三层VPN服务 。通过提供给用户一个IP平台,用户通过IP Over IP的封装格式在公网上打隧道,同时也提供了加密等等的手段提供安全保障 。这类VPN用户在目前的网络上数量还是相当巨大的!但是这类VPN服务因大量的加密工作、传统路由器根据IP包头的目的地址转发效率不高等等的原因不是非常令人满意 。
MPLS技术的出现和BGP协议的改进,让大家看到了另一种实现VPN的曙光 。
【MPLS VPN技术原理】3.2 MPLS/VPN体系结构
3.2.1 PE路由器的改造和VRF的导入
为了让PE路由器上能区分是哪个本地接口上送来的VPN用户路由,在PE路由器上创建了大量的虚拟路由器,每个虚拟路由器都有各自的路由表和转发表,这些路由表和转发表统称为VRF(VPN Routing and Forwarding instances) 。一个VRF定义了连到PE路由器上的VPN成员 。VRF中包含了IP路由表,IP转发表(也称为CEF表),使用该CEF表的接口集和路由协议参数和路由导入导出规则等等 。
在VRF中定义的和VPN业务有关的两个重要参数是RD(Route Distinguisher)和RT(Route Target) 。RD和RT长度都是64比特 。
有了虚拟路由器就能隔离不同VPN用户之间的路由,也能解决不同VPN之间IP地址空间重叠的问题 。
3.2.2 MP-BGP协议对VPN用户路由的发布
MPLS VPN技术原理

文章插图
 
正常的BGP4协议能只传递IPv4的路由,由于不同VPN用户具有地址空间重叠的问题,必须修改BGP协议 。BGP最大的优点是扩展性好,可以在原来的基础上再定义新的属性,通过对BGP修改,把BGP4扩展成MP-BGP 。在MP-IBGP邻居间传递VPN用户路由时打上RD标记,这样VPN用户传来的IPv4路由转变为VPNv4路由,这样保证VPN用户的路由到了对端的PE上,能够使对端PE区分开地址空间重叠但不同的VPN用户路由 。例子如下:
在PE1、PE2、PE3上分别配置VRF参数,其中VPN1用户的RD=6500:1,RT=100:1,VPN2用户的RD=6500:2、RT=100:2 。所有VRF可以同时 导入和导出所定义的RT 。
以PE2为例,PE2从接口S0上获得由CE4传来的有关10.1.1.0/8的路由,PE2把该路由放置到和S0有关的VRF所管辖的IP路由表中,并且分配该路由的本地标签,注意该标签是本地唯一的 。通过路由重新发布把VRF所管辖的IP路由表中的路由重新发布到BGP表中,此时通过参考VRF表的RD、RT参数,把正常的IPv4路由变成VPNv4路由,如10.1.1.0/8变成6500:1:10.1.1.0/8,同时把导出(Export)RT值和该路由的本地标签值等等的属性全部加到该路由条目中去 。通过MP-IBGP会话,PE2把这条VPNv4路由发送的PE1处,PE1收到了两条有关10.1.1.0/8的路由,其中一条是由PE3发来的,由于RD的不同,导致该两条路由没有可比性 。MP-BGP接受到该两条路由后的后继工作是:去掉VPN4路由所带的RD值,使之恢复IPv4路由原貌,并且根据各VRF配置的允许导入(Import)的RT值,把IPv4倒到各个VRF管辖的路由表和CEF表中,也就是说带有RT=100:1的10.1.1.0/8的路由倒到VRF1所管的路由表和CEF表中,带有RT=100:2的10.1.1.0/8的路由倒到VRF2所管辖的路由表和CEF表中 。再通过CE和PE之间的路由协议,PE把不同的VRF管辖的路由表内容通告的各自的相联的CE中去 。


推荐阅读