BGP+MPLS VPN+VRF简单分析

  1. 为什么要将三者联系在一起?
    MPLS:标签交换技术(快,但是在现如今的设备上已经不明显了);
    VPN:虚拟私有网络(类似于专线的效果);
    技术层面上VPN可分为:
    二层VPN:PPPOE、PPTP、FR 、ATM、MPLS;
    三层VPN:GRE、IPSEC VPN、IPV6 over IPV4;
    四层VPN:SSL VPN、VXLAN(四层实现二层的迁移,一般用于数据中心);
    从应用场景上分为:
    SITE TO SITE(是靠设备架设出来的);
    REMOTE VPN(EASY VPN,一端是设备,而另一端可以是一个简易的客户端);
    VPN本质:隧道技术------其实也就是靠封装来实现的。
    BGP:存在着一个控制层面上路由可以到达,但是数据层面上不一定可达的问题,也就是BGP的黑洞问题(这种黑洞其实是可以通过Full-Mesh的全互联邻居解决的,我们要明白BGP可是一个半自动的协议,要采用全互联的建邻方式是特别麻烦的);
    VRF:本质上我们可以理解为是一种虚拟路由表的技术。
    在这里插入图片描述
    我们以此图为例来分析一下BGP+MPLS VPN+VRF是如何走到一起结合使用的。如图所示我们首先先来探讨三个问题:
    1)运营商区域R3、R4、R5上的BGP该如何部署?
    2)R3、R4、R5是运营商,那麽运营商如何通过自己的公网来传递你私网VRF空间a、b、c、d中的路由呢?
    3)MPLS VPN在此处起了什么样的作用?
    我的理解:
    1>BGP是一个特别消耗路由器资源的协议,所以要尽量的控制BGP协议的部署或是邻居关系的数量以节省路由器的资源(所以本人强烈建议不用Full-Mesh的方式来形成全互联的BGP邻居),仅在R3、R5两个公网连接私网的边界上去部署BGP,那麽我们就得面对BGP存在的路由层面可达数据层面不可达的黑洞问题(即R5的路由可以直接交给自己的BGP邻居R3路由器,但是当R3拿着这条路由去R5的时候,数据首先得来到R4上,可R4并不认识这条目的地的路由,且路由器也不会向交换机那样替你洪泛他,所以R4会丢弃R3发来的数据,那麽R3会一直向R4发送数据,R4却一直在丢弃数据,这不就形成了黑洞问题)。
    BGP黑洞问题的解决方案:切记MPLS是不会为BGP的路由分配标签的,但是BGP可以借用MPLS为IGP协议分配的标签号,通过FEC(转发等价类)来进行标签信道利用。
    2>MPLS VPN:作为标签交换的MPLS在现在设备上速度已经不是特别明显(例如:CISCO的CEF交换转发更快),在这里MPLS的应用主要是因为MPLS中的FEC转发等价类(标签路径的复用)。
    FEC转发等价类:相同目的地可以使用同一个标签路径,就像R1要去R7,他的下一跳是R5,R2要去R6,他的下一跳还是R5,基于在公网中他们都是相当于从R3->R5的,所以在BGP眼中他们的下一跳地址是相同的,那可以使用同一个标签路径。(我们不一样,就是不一样)对于MPLS来将,路由前缀与掩码不同分配的标签就不同(前缀相同掩码不同的也会分配不同的标签),那麽就意味着标签路径中的路由不能发生任何变化,否则标签路径会发生断裂。
    3>VRF:VRF我们可以理解为就是一种虚拟的路由空间,他可以将我们的私网路由隔离开来,相当于给路由打上了不同的标记让他们存储在不同的表中。但是他的路由是比较怪异的,那麽又该如何的传递他呢?
    4>就在BGP、MPLS VPN、VRF三兄弟存在着种种问题待解决的时候,三兄弟遇到了一起,真是相见恨晚啊,他们各自发现对方的长处可以弥补自己的短处,能够使他们各自获得自己需要的东西,所以他们就结合到一起来使用了。那麽他们之间是如何互补的:
    1)老大BGP存在的黑洞问题被老二MPLS VPN以标签转发的形式解决;
    2)老二MPLS VPN因为FEC(转发等价类)而得到了重新的重用;
    3)老三VRF路由长的极其怪异而无法被正常传递的问题,由大哥BGP来解决(MBGP多协议的BGP—利用vpnv4来传递VRF中的路由),从此患难三兄弟抱成一团开启屌丝逆袭模式。
  2. VRF简要分析:
    1>怎样才能区分一台路由器上不同的VRF路由呢?
    通过RD值来区分一台路由器上不同的VRF中的路由。
    2>怎样才能区分一台路由器收到来自于不同VRF的路由呢?
    通过RT值来区别,RT值有个出向值和入向值,我感觉可以将入向rt看成一个看门的,将出向的rt看成一块令牌,只有当你拥有的令牌这个看门的认,那麽你就可以进入这个看门的所属于的VRF空间之中。
    3>VRF的路由具体如何通过公网传递:
    通过MBGP的VPNV4以及BGP的扩展Community属性来传递怪异的VRF路由:前缀+rd+自己的出向rt+标签。
    切记:对方路由所携带的RD值在进入我本地VRF中的时候,RD值是会换成本VRF的RD值的。
    在这里插入图片描述举个简单的例子我们来分析分析:
    VRF a中的私网1.1.1.1要到达VRF c中的私网6.6.6.6,其实也就是使用双标签的概念来让两个私网的路由能通信的,第一层的标签(外层标签)就是由MPLS所分配的第二层的标签(内层标签)就是由MBGP的VPNV4所分配的,1.1.1.1要到达6.6.6.6,首先来到自己的边界R3上,R3看到外层标签,直接进行标签转发,等到达6.6.6.6的边界R5上时,脱去外层的标签便可看到内层的标签,然后根据内层标签将其转入对应的VRF空间之中。
    个人理解:VRF的怪异路由是由MBGP的VPNV4来承载其传递的,而传递这种怪异路由所需要的通道是MPLS给提供的,通过MPLS的FEC来穿越公网,通过VPNV4的运输到达对应的目的地(相应的VRF空间之中)。
    注意MPLS LDP分配的标签号:
    LABEL:(Imp-null 、Pop label)属于显示空标签 3( 是一种特殊标签),如果看到将被交换的标签为3,则在出本地接口的时候弹出该标签,这种机制叫PHP(下一跳弹出机制)。

猜你喜欢

转载自blog.csdn.net/ZhangPengFeiToWinner/article/details/83824167