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

(红茶三杯http://weibo.com/vinsoney版权全部,转载请注明出处)html

 

1、MPLS ×××模型网络

 

【MPLS <wbr>×××】基础知识:模型、PE路由器、VRF、RD及RT等等


1. PE(Provider edge)运营商边界设备ide

  运营商边界设备,与客户边界设备相链接。运行MPLS。同时在PE上,使用VRF对×××客户进行隔离。oop

2. P(Provider)运营商设备学习

  运营商设备不直接与客户设备相链接。运行MPLS。P设备每每并不知道×××客户网络、以及客户的路由。它只负责在Backbone内运载标签数据。ui

3. CE(customer edge )客户边界设备url

  客户网络中,与PE直连的设备,主要的功能是将×××客户的路由通告给PE,以及从PE学习同一个×××下其余站点的路由spa


2、VRF翻译


  MPLS ×××一个很是吸引人的地方,就是可让不一样客户的路由及数据穿越运营商的MPLS ××× Backbone,并且这些路由和数据又是相互隔离和独立的,即便不一样的客户,拥有相同的IPv4地址空间也没关系。router

  那么做为这些客户路由进入MPLS Backbone入口的设备 -- PE,就显得很是重要了。在PE上有个很是重要的概念—VRF(严格的说,VRF的做用如今已经扩展了,咱们这里重点讨论在MPLS ××× PE中的运用)。

  VRF:Virtual Routing and Forwarding,翻译成虚拟路由及转发,它是一种×××路由和转发实例。一台PE路由器,因为可能同时链接了多个×××用户,这些用户(的路由)彼此之间须要相互隔离,那么这时候就用到了VRF,PE路由器上每个×××都有一个VRF。PE路由器除了维护全局IP路由表以外,还为每一个VRF维护一张独立的IP路由表,这张路由表称为VRF路由表。要注意的是全局IP路由表,以及VRF路由表都是相互独立或者说相互隔离的。

  由于每个×××都有一张独立的VRF路由表,因此PE路由器上每个×××也会有一张独立的CEF表来转发这些报文,这就是VRF CEF表

一旦在PE路由器上建立了一个VRF,咱们就能够将特定的接口(物理或逻辑的)放入这个VRF,那么这个接口将再也不属于全局IP路由表或其余任何VRF,只为该VRF服务。


3、RD


  因为×××前缀是经过MP-BGP在MPLS ×××网络中扩散,那么可能,同一时间,MPLS ×××网络承载着多个客户的×××前缀,甚至有多是相同的IPv4地址空间,那么怎么作到客户之间地址空间的惟一性呢?就须要用到RD值了。RD值在VRF中进行配置。

  RD(route distinguisher)64bits,用于在MP-BGP运载VRF前缀时,确保这些前缀的惟一性。可是RD并不会说明该前缀属于哪个VRF(须要搭配RT),RD的功能并非×××标示符,由于在一些复杂的×××环境中,可能一个×××存在多个RD。RD的最重要的两个功能: 

  • 与32bits的Ipv4前缀一块儿构成96bits的×××v4前缀;

  • 若是不一样的×××客户,存在相同的IPv4地址空间,那么能够经过设置不一样的RD值从而保证前缀的惟一性。


  这个64比特的值能够有两种表现形式:AS:nn或者IP-address:nn。其中nn表明数字。最经常使用的格式是AS:nn,其中AS表明AS号。一般AS是IANA分配给服务提供商的AS号,nn是服务提供商分配给VRF的惟一号码。

产生的×××v4前缀经过MP-BGP在PE路由器之间被传递。

(红茶三杯http://weibo.com/vinsoney版权全部,转载请注明出处)


4、RT


  Route Targets,这玩意就是用来区分customer的。是BGP community 的扩展属性,在VRF中进行配置。它跟在×××v4前缀后面被一块儿传递。一条路由能够附加多个RT值。


  • Export RTs

经过在vrf中定义export RT值,将使得输出的×××v4路由携带上该RT值一块儿传递 – 以BGP扩展community的方式。注意这些×××v4路由,是由×××客户的IPv4路由导入VRF后,加上VRF中配置的RD值所造成的。

 

【MPLS <wbr>×××】基础知识:模型、PE路由器、VRF、RD及RT等等

  • Import RTs

【MPLS <wbr>×××】基础知识:模型、PE路由器、VRF、RD及RT等等

  PE会从其余MP-BGP对等体的PE那收到×××v4的前缀,这些前缀都是携带RT值的。默认状况下,PE是不会将这些×××v4路由以IPv4的形式装载到VRF路由表里,除非在本地的VRF中,配置import RTs,那么若是import RTs与收到的×××v4前缀中的RT匹配的话,这些×××v4前缀才会被以IPv4的形式装载到相应的VRF路由表里,至关于在这里RT起到一个前缀过滤或者识别的做用,这个功能在许多场景中很是有用。

×××v4路由可能携带不止一个RT值,只要有一个匹配import RT便可导入到VRF路由表。

 

5、PE设备逻辑详解


【MPLS <wbr>×××】基础知识:模型、PE路由器、VRF、RD及RT等等


  PE设备是MPLS ×××部署很是关键的一个环节。上面这张图就是一个典型的PE路由器的逻辑分解图。蓝色的这个框框表明的就是一台PE路由器。咱们看到这个PE设备建立了两个VRF,VRF-A对应的是客户A,VRF-B对应的是客户B。(红茶三杯http://weibo.com/vinsoney版权全部,转载请注明出处)

  一旦建立了两个VRF,咱们就能够将特定的接口放入特定的VRF,那么这些接口将只为所属的VRF服务。上图中的PE路由器实际上就有了三张路由表,分别是两张VRF路由表,以及一张全局IP路由表。

  一个PE路由器链接不一样的客户Customer,使用相似虚拟路由器的概念,来进行逻辑上的进行区分,看到上图中的virtual router for A和virtual router for B了么。这些客户甚至有可能使用相同的地址空间,那么咱们在一台PE上,使用多个virtual路由表,将客户及客户的路由进行逻辑上的隔离。这里virtual路由表是相对于咱们的全局IP路由表的概念。从global接口上学习到的路由,放入全局IP路由表,从VRF接口上学习到的路由,放入相应的VRF路由表。不一样的virtual路由表彻底隔离。

 

【MPLS <wbr>×××】基础知识:模型、PE路由器、VRF、RD及RT等等

  再来看仔细一点,上面这个PE,咱们建立了VRF ABC,那么同时一并出现的还有VRF ABC的路由表以及VRF ABC的CEF表。咱们将PE上与CE直连的接口放入VRF ABC。接下去来分解一下,看看这里头有什么东西:

  •  

    首先PE上,运行一个Core的IGP协议,这里用的是OSPF 100,这个OSPF进程是为全局IP路由表贡献路由的。OSPF 100与运营商骨干网内的其余设备造成OSPF邻居关系而且交互骨干网Core内的路由,交互这些路由的目的是,能够为后面的MP-BGP的创建服务,由于MP-BGP每每是经过PE之间的Loopback来建,MP-BGP邻居关系创建须要这些IGP路由。同时后续的LDP也依赖这个Core的IGP协议。

  • 接着PE上运行一个MP-BGP,MP-BGP至少有两个address-family也就是地址族,一个是address-family ***v4,用于和对端的PE交互×××v4前缀。另外一个地址族是address-family ipv4 vrf ABC,注意这个地址族是和vrf ABC关联的,用于获取×××客户的路由,这个图中就是customer-A。

  • 接着PE上跑一个PE-CE的路由协议,例如静态、RIP、EIGRP、BGP等等,目的是为了从×××客户那,也就是CE设备那学习到×××客户的路由。注意因为链接CE的接口被放入了VRF ABC,所以经过这个接口学习到的路由,被放入了VRF ABC的路由表。放入了VRF ABC路由表以后呢?接下来就要将路由引入到MP-BGP中,若是PE-CE之间运行的是路由协议是非BGP,那么就须要作路由重发布,将客户路由重发布进address-family ipv4 vrf ABC这个地址族下面,而若是PE-CE之间运行的已是BGP了,那么路由固然就直接进入MP-BGP了。

  • 如今MP-BGP已经有了×××客户的路由,如今要将这些IPv4的路由前缀,变成×××v4的路由前缀,经过已经创建起来的×××v4的邻接关系传递给对端PE。因为这些路由是属于VRF ABC的,而VRF是定义了RD、RT值的,那么这些值在这里就派上用场了。32bits的IPv4路由前缀,搭配上64bits的RD值,就造成了96bits的×××v4的前缀。另外,RT值跟随着这个×××V4前缀,被MP-BGP更新给了对端PE。

相关文章
相关标签/搜索