Cisco跨域三层VPNOptionC配置指导思科认证
文章作者 100test 发表时间 2010:03:31 09:37:42
来源 100Test.Com百考试题网
1 OptionC方式跨域VPN的理解
之前,我写了一篇OptionB的文档,并提供了相应的配置,对于该文档中相应的内容,我在这里就不再罗嗦了,本文开始对OptionC方式的跨域VPN做分析。
在OptionB方式中,VPN的路由信息是通过自治系统之间的ASBR来保存和扩散的,当VPN路由比较多的时候,会对ASBR产生巨大的压力;如果经过多个自治系统,每个ASBR上都会维护大量相同的VPN路由,由于这些ASBR一般都承担着公网IP转发的任务,这样对设备的要求就更高了。从另一个方面来看,OptionB方式采用的是一种中继的方式,通过ASBR把VPN路由信息向其他自治系统扩散,这也把这些中间设备强加上必须要支持VPN功能的要求,虽然对于设备而言,这是必须的,但是这样的实现方式个人觉得并不完全符合三层VPN的思想,按照正常的理解,除了接入CE的PE之外,其他设备是不应该看到VPN信息的,这也是 OptionC方式所解决的问题。
OptionC方式的思想就是在跨域的情况下,PE之间仍然可以像域内那样,在PE和PE之间建立直接的MEBGP邻居,交换VPNV4路由信息,这样就不需要中间设备再保存、维护和扩散VPN路由信息。这里需要从两个方面去考虑:信令和转发。在信令层面上,实现跨域MEBGP邻居的建立,并交换VPN 路由信息并不是一件困难的事情,只要公网路由可达,建立起邻居,私网的VPN路由信息就可以很轻松的发给对端邻居了。但是,在转发层面上,还有一个最重要的问题需要解决,那就是如何在跨域的情况下建立一条PE到PE的VPN LSP,否则,即便有了VPN路由信息,到了公网部分,根本无法识别数据的私网标签,转发层面上还是不通的。
这里,需要提到标签IPv4路由,在RFC3107即[Carrying Label Information in BGP-4]中有定义。这里在ASBR之间传递的就不是普通的IP路由信息了,而是携带了标签的公网路由信息,这样,就会在公网上形成一个由BGP触发的公网LSP,在公网上也是靠标签交换就数据传送到目的地,而公网上无法识别的私网标签就可以被封装在内层作为内层标签被转发了。有兴趣的朋友可以看一下 RFC3107中所定义的应用场景和具体的0update的消息格式,该RFC内容不长,这里不作过多的阐述,下面列举一下普通的0update和支持标签 IPv4路由信息的0update的格式即可。
普通0update消息
标签ipv4格式的0update消息
2 OptionC方式的数据转发
仍然沿用跟OptionB方式中大致类似的网络结构,如上图。
以从R6上的vrf30 ping R1上的vrf30为例,即ping vrf vrf30 10.0.30.1 source 60.0.30.1,从R6àR1方向,IP数据会首先被封装上VPNv4目的路由对应的标签,接着会被封装上标签IPv4路由信息对应的标签,最后才会被封装上LDP标签,其中LDP标签完成LDP域的标签交换,随后通过标签IPv4路由的标签完成EBGP域的标签交换,然后再进入对方自治系统的LDP 域,最后通过私网标签完成VPN域的标签交换,达到目的地。也就是说在整个数据传输过程中,最多的时候数据会被封装三层标签,即LDP | EBGP标签 | 私网标签。在上面的拓扑中,能够看到三层标签的位置为R6到R5的出方向,理论上LDP域中都应该是三层标签头,但是由于存在空标签的缘故,有的位置只能显示的看到两层标签。在R5和R6之间抓包如下,可以清楚的看到三层标签:
在R6上显示各种标签信息,可以明显的看出图中的标签16为LDP标签,标签29为EBGP公网标签,标签18为私网路由标签,显示信息如下:
私网路由标签
R6#show bgp vpnv4 unicast all labels
Network