基于MPLS的VPN实现

来源:Vlan9.com收集整理 作者: 2005-12-04 出处:pcdog.com

mpls  ospf  安全  加密  静态路由  

  VPN的历史
  VPN服务是很早就提出的概念,不过以前电信提供商提供VPN是在传输网上提供的覆盖型的VPN服务。电信运营商给用户出租线路,用户上层使用何种的路由协议、路由怎么走等等,这些电信运营商不管。
这种租用线路来搭建VPN的好处是安全,但是价格昂贵,线路资源浪费严重。
  
  后来随着IP网络的全面铺开,电信服务提供商在竞争的压力下,不得不提供更加廉价的VPN服务,也就是三层VPN服务。通过提供给用户一个IP平台,用户通过IP Over IP的封装格式在公网上打隧道,同时也提供了加密等等的手段提供安全保障。这类VPN用户在目前的网络上数量还是相当巨大的!但是这类VPN服务因大量的加密工作、传统路由器根据IP包头的目的地址转发效率不高等等的原因不是非常令人满意。
  
  MPLS技术的出现和BGP协议的改进,让大家看到了另一种实现VPN的曙光。
  
  MPLS/VPN体系结构
  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地址空间重叠的问题。
  
  2.MP-BGP协议对VPN用户路由的发布
  
  正常的BGP4协议能只传递IPv4的路由,由于不同VPN用户具有地址空间重叠的问题,必须修改BGP协议。BGP最大的优点是扩展性好,可以在原来的基础上再定义新的属性,通过对BGP修改,把BGP4扩展成MP-BGP。在MP-IBGP邻居间传递VPN用户路由时打上RD标记,这样VPN用户传来的IPv4路由转变为VPNv4路由,这样保证VPN用户的路由到了对端的PE上,能够使对端PE区分开地址空间重叠但不同的VPN用户路由。
  
  目前PE和CE之间可支持的路由协议只有四种BGP、OSPF、RIP2或者静态路由
  
  3.MPLS/VPN中标签分组的转发
  
  同过MP-BGP协议各个VPN用户路由器学习到正确的路由,现在看看如何转发用户数据的。
  
  1.CE1接收到发往10.1.1.1的IP数据包,查询路由表,把该IP数据包发送到PE1。
  2.PE1从S1口上收到IP数据包后,根据S1所在的VRF,查询对应的CEF表,数据包打上标签8,注意该标签就是通过MP-BGP协议传来的。PE1继续查询全局CEF表,获知要把数据发往10.1.1.1,必须先发送到PE2,而要发送到PE2,则必须打上由P1告知的标签2。所以该IP包被打上了两个标签。
  3.P1接收到标签包后,分析顶层的标签,把顶层标签换成4,继续发送的P2。
  4.P2和P1一样做同样的操作,由于次末中继弹出机制,P2去掉标签4,直接把只带有一个标签的标签包发送的PE2。
  5.PE2收到标签包后,分析标签头,由于该标签8是它本地产生的,而且是本地唯一的,所以PE2很容易查出带有标签8的标签包应该去掉标签,恢复IP包原貌,从S1端口发出。
  6.CE2获得IP数据包后,进行路由查找,把数据发送到10.1.1.0/8网段上。
  
  MPLS/VPN配置实例
  要提供VPN服务的前提是:服务提供商的网络必须启用标签交换功能,即把以前的数据网络升级为MPLS网络。然后具体配置PE,PE上的配置按六步走:
  
  1.定义并且配置VRF
  2.定义并且配置RD
  3.定义RT,并且配置导入导出策略
  4.配置MP-BGP协议
  5.配置PE到CE的路由协议
  6.配置连接CE的接口,将该接口和前面定义的VRF联系起来。
更多内容请看PCdog.com--MPLS VPN  MPLS路由协议  MPLS协议专题
上一篇:MPLS VPN与传统专网比较
下一篇:VoIP发展的新方向-IP PBX