【MPLS-VPN】基础知识:模型、PE路由器、VRF、RD及RT等等

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

【MPLSVPN】基础知识:模型、PE路由器、VRF、RD及RT等等(2013-07-1210:07:34)(红茶三杯版权所有,转载请注明出处)一、MPLSVPN模型1.PE(Provideredge)运营商边界设备运营商边界设备,与客户边界设备相连接。运行MPLS。同时在PE上,使用VRF对VPN客户进行隔离。2.P(Provider)运营商设备运营商设备不直接与客户设备相连接。运行MPLS。P设备往往并不知道VPN客户网络、以及客户的路由。它只负责在Backbone内运载标签数据。3.CE(customeredge)客户边界设备客户网络中,与PE直连的设备,主要的功能是将VPN客户的路由通告给PE,以及从PE学习同一个VPN下其他站点的路由二、VRFMPLSVPN一个非常吸引人的地方,就是可以让不同客户的路由及数据穿越运营商的MPLSVPNBackbone,而且这些路由和数据又是相互隔离和独立的,即使不同的客户,拥有相同的IPv4地址空间也不要紧。那么作为这些客户路由进入MPLSBackbone入口的设备--PE,就显得非常重要了。在PE上有个非常重要的概念—VRF(严格的说,VRF的作用现在已经扩展了,我们这里重点讨论在MPLSVPNPE中的运用)。VRF:VirtualRoutingandForwarding,翻译成虚拟路由及转发,它是一种VPN路由和转发实例。一台PE路由器,由于可能同时连接了多个VPN用户,这些用户(的路由)彼此之间需要相互隔离,那么这时候就用到了VRF,PE路由器上每一个VPN都有一个VRF。PE路由器除了维护全局IP路由表之外,还为每个VRF维护一张独立的IP路由表,这张路由表称为VRF路由表。要注意的是全局IP路由表,以及VRF路由表都是相互独立或者说相互隔离的。因为每一个VPN都有一张独立的VRF路由表,所以PE路由器上每一个VPN也会有一张独立的CEF表来转发这些报文,这就是VRFCEF表。一旦在PE路由器上创建了一个VRF,我们就可以将特定的接口(物理或逻辑的)放入这个VRF,那么这个接口将不再属于全局IP路由表或其他任何VRF,只为该VRF服务。三、RD由于VPN前缀是通过MP-BGP在MPLSVPN网络中扩散,那么可能,同一时间,MPLSVPN网络承载着多个客户的VPN前缀,甚至有可能是相同的IPv4地址空间,那么怎么做到客户之间地址空间的唯一性呢?就需要用到RD值了。RD值在VRF中进行配置。RD(routedistinguisher)64bits,用于在MP-BGP运载VRF前缀时,确保这些前缀的唯一性。但是RD并不会说明该前缀属于哪一个VRF(需要搭配RT),RD的功能并不是VPN标示符,因为在一些复杂的VPN环境中,可能一个VPN存在多个RD。RD的最重要的两个功能:与32bits的Ipv4前缀一起构成96bits的VPNv4前缀;如果不同的VPN客户,存在相同的IPv4地址空间,那么可以通过设置不同的RD值从而保证前缀的唯一性。这个64比特的值可以有两种表现形式:AS:nn或者IP-address:nn。其中nn代表数字。最常用的格式是AS:nn,其中AS代表AS号。通常AS是IANA分配给服务提供商的AS号,nn是服务提供商分配给VRF的唯一号码。产生的VPNv4前缀通过MP-BGP在PE路由器之间被传递。(红茶三杯版权所有,转载请注明出处)四、RTRouteTargets,这玩意就是用来区分customer的。是BGPcommunity的扩展属性,在VRF中进行配置。它跟在VPNv4前缀后面被一起传递。一条路由可以附加多个RT值。ExportRTs通过在vrf中定义exportRT值,将使得输出的VPNv4路由携带上该RT值一起传递–以BGP扩展community的方式。注意这些VPNv4路由,是由VPN客户的IPv4路由导入VRF后,加上VRF中配置的RD值所形成的。ImportRTsPE会从其他MP-BGP对等体的PE那收到VPNv4的前缀,这些前缀都是携带RT值的。默认情况下,PE是不会将这些VPNv4路由以IPv4的形式装载到VRF路由表里,除非在本地的VRF中,配置importRTs,那么如果importRTs与收到的VPNv4前缀中的RT匹配的话,这些VPNv4前缀才会被以IPv4的形式装载到相应的VRF路由表里,相当于在这里RT起到一个前缀过滤或者识别的作用,这个功能在许多场景中非常有用。VPNv4路由可能携带不止一个RT值,只要有一个匹配importRT即可导入到VRF路由表。五、PE设备逻辑详解PE设备是MPLSVPN部署非常关键的一个环节。上面这张图就是一个典型的PE路由器的逻辑分解图。蓝色的这个框框代表的就是一台PE路由器。我们看到这个PE设备创建了两个VRF,VRF-A对应的是客户A,VRF-B对应的是客户B。(红茶三杯版权所有,转载请注明出处)一旦创建了两个VRF,我们就可以将特定的接口放入特定的VRF,那么这些接口将只为所属的VRF服务。上图中的PE路由器实际上就有了三张路由表,分别是两张VRF路由表,以及一张全局IP路由表。一个PE路由器连接不同的客户Customer,使用类似虚拟路由器的概念,来进行逻辑上的进行区分,看到上图中的virtualrouterforA和virtualrouterforB了么。这些客户甚至有可能使用相同的地址空间,那么我们在一台PE上,使用多个virtual路由表,将客户及客户的路由进行逻辑上的隔离。这里virtual路由表是相对于我们的全局IP路由表的概念。从global接口上学习到的路由,放入全局IP路由表,从VRF接口上学习到的路由,放入相应的VRF路由表。不同的virtual路由表完全隔离。再来看仔细一点,上面这个PE,我们创建了VRFABC,那么同时一并出现的还有VRFABC的路由表以及VRFABC的CEF表。我们将PE上与CE直连的接口放入VRFABC。接下去来分解一下,看看这里头有什么东西:首先PE上,运行一个Core的IGP协议,这里用的是OSPF100,这个OSPF进程是为全局IP路由表贡献路由的。OSPF100与运营商骨干网内的其他设备形成OSPF邻居关系并且交互骨干网Core内的路由,交互这些路由的目的是,可以为后面的MP-BGP的建立服务,因为MP-BGP往往是通过PE之间的Loopback来建,MP-BGP邻居关系建立需要这些IGP路由。同时后续的LDP也依赖这个Core的IGP协议。接着PE上运行一个MP-BGP,MP-BGP至少有两个address-family也就是地址族,一个是address-familyvpnv4,用于和对端的PE交互VPNv4前缀。另一个地址族是address-familyipv4vrfABC,注意这个地址族是和vrfABC关联的,用于获取VPN客户的路由,这个图中就是customer-A。接着PE上跑一个PE-CE的路由协议,例如静态、RIP、EIGRP、BGP等等,目的是为了从VPN客户那,也就是CE设备那学习到VPN客户的路由。注意由于连接CE的接口被放入了VRFABC,因此通过这个接口学习到的路由,被放入了VRFABC的路由表。放入了VRFABC路由表之后呢?接下来就要将路由引入到MP-BGP中,如果PE-CE之间运行的是路由协议是非BGP,那么就需要做路由重发布,将客户路由重发布进address-familyipv4vrfABC这个地址族下面,而如果PE-CE之间运行的已经是BGP了,那么路由当然就直接进入MP-BGP了。现在MP-BGP已经有了VPN客户的路由,现在要将这些IPv4的路由前缀,变成VPNv4的路由前缀,通过已经建立起来的VPNv4的邻接关系传递给对端PE。由于这些路由是属于VRFABC的,而VRF是定义了RD、RT值的,那么这些值在这里就派上用场了。32bits的IPv4路由前缀,搭配上64bits的RD值,就形成了96bits的VPNv4的前缀。另外,RT值跟随着这个VPNV4前缀,被MP-BGP更新给了对端PE。(红茶三杯版权所有,转载请注明出处)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功