一个互联网服务提供商的简单MPLS VPN设计
了解CEF和MPLS的关系
CEF考虑时故障排除MPLS VPN跨各种平台
CEF和MPLS VPN负载共享的考虑
了解CEF在多协议标签交换(MPLS)环境中的操作对设计稳定性和故障排除很重要。本章分析了CEF在跨思科平台的MPLS虚拟专用网(VPN)应用中的应用。服务提供商和企业越来越多地使用MPLS来提供使用IP基础设施的面向连接的服务。他们部署MPLS vpn的原因还包括可伸缩性、安全性和灵活性。由于MPLS VPN使用量增加,您需要了解CEF的角色,特别是在故障排除时。
CEF是MPLS基础开关路径。如果没有CEF,不会发生MPLS转发。MPLS转发在很大程度上依赖于IP路由表和CEF架构。因此,MPLS VPN依靠CEF因为MPLS VPN依赖于MPLS的成功运作。
本章对MPLA的基本理解假设为。虽然mplsvpn设置、标签分发协议(LDP)和操作可能会出现问题,但很多时候这些问题都与CEF中存储的标签不匹配或其他CEF不一致有关。有时管理员认为问题出在CEF,但问题出在路由设计上。本章讨论了不同Cisco平台上的一些问题。
一个互联网服务提供商的简单MPLS VPN设计
ISP网络通常由边缘路由器(通常称为提供商边缘,或PE,路由器)连接到客户边缘(CE)路由器和其他服务供应商的设备。在图7-1中,ISP的PE路由器接收通过外部BGP(EBGP对)或一些其他的路由协议客户路由(VPNv4路由),并通过内部BGP(IBGP对)到所有其他PE路由器发送它们。大多数网络使用路由反射器,以避免IBGP连接的全网状,因此,所有IBGP对音箱有一个会话路由反射。这是一个ISP网络的MPLS VPN实现的基本结构。表7-1定义了设备在MPLS VPN网络的类型和它们的MPLS VPN的认识。
典型的ISP MPLS VPN的实现
表7-1 MPLS VPN设备类型和感知
设备类型 | 描述 | MPLS VPN意识 |
---|---|---|
供应商(P)路由器 | 与PE和其他P路由器接口的供应商网络的一部分 | 没有 |
提供商边缘(PE)路由器 | 与CE路由器和P和PE路由器接口的提供者网络的一部分 | 是的 |
客户边缘(CE)路由器 | 客户网络的一部分,与PE接口 | 没有 |
mplsvpn使用共享基础设施,但为客户的流量提供安全性。如果站点路由器CE1和CE3属于同一客户和VPN,则它们的流量将从其他客户的流量中分割出来,并用标签进行标记。PE路由器为每个客户VPN维护一个单独的路由表,称为虚拟路由和转发(VRF)表。
虽然VRF表提供了客户之间的隔离,但这些路由表中的数据在PE路由器之间交换,以实现连接到不同PE路由器的站点之间的数据传输。提供程序网络中的核心路由器(P路由器)在提供程序的主干网上提供传输时不知道客户路由。
通过使用在全局IP路由表中交换路由的标签来执行跨主干的传输。因此,在最常见的形式中,两个标签被添加到客户流量中。核心路由器不关心客户的IP包进行转发,而是看到一个标签包指向出口PE路由器。出口PE路由器在第二个标签(先前分配的VPN标签)上执行标签交换,并且将IP分组转发到CE路由器或者在VRF中执行另一个IP查找。CE1和CE3之间的端到端路径是MPLS标签交换路径(LSP)隧道。图7-2显示了两个站点之间的典型LSP。
两个位点之间的典型LSP
了解CEF和MPLS VPN关系
MPLS VPN依赖于CEF功能。MPLS为查找创建自己的数据库,称为标签转发信息库(LFIB)但它使用CEF的小谎作为信息来源。如果CEF不能解决一个路由,标签也不能切换到一个目的地。MPLS VPN包在客户站点之间的标签过程路径是标签强制、标签交换、标签分配。
当PE路由器转发基于IP报头发生标签拼版并在进入MPLS网络增加一个MPLS标签该分组。在标签征收的方向,路由器交换机基于一个CEF表查询,找到下一跳包,并增加存储在FIB为目标适当的标签信息。
当路由器执行标签在芯上的MPLS报文交换,路由器确实的MPLS表查找。路由器从CEF表中的信息和标签信息库(LIB)派生该MPLS表(LFIB)。发生到达目的地的路径的变化可能导致的FIB和金狮森林工业的变化。通过不同的路由器已知的多条路径可导致对每个路径中的一个标签。路由器导出标签从负载分担CEF信息共享负载信息。对于负载均衡,数据包内的路由器的外观,以确定它是否是一个IP版本4(IPv4)的数据包。如果它是一个IPv4分组,CEF使用的IP地址散列。例如,在P-P的情况下,P路由器的外观下面的MPLS标签以及IP报头中使用IP地址来分配负载分担正确的散列桶,但不做出转发决定。在P路由器利用最上面的标签上的转发决策。
当PE路由器接收到MPLS包,根据MPLS标签做出转发决策,移除标签,并发送IP包时,标签处置就发生了。PE路由器使用LFIB来确定该方向上的分组的路径。
表7-2总结了故障排除时需要查看的结构。如前所述,一个特殊的iBGP会话有助于在PE路由器之间宣传VPNv4前缀及其标签。在advertising PE中,BGP为本地学到的VPN前缀分配标签,并将它们安装在LFIB中,即MPLS转发表。从PE设备的角度来看,本地学习前缀是PE从连接的客户边缘设备学习的前缀。在接收PE时,如果BGP接受基于路由-目标输入的带有标签的远程学习VPN前缀,则BGP将VPN前缀安装在VRF FIB中,即CEF表。从PE的角度来看,远程学习前缀是通过eBGP从另一个PE学习到的前缀。IP查找只在入口PE发生一次。简而言之,如果路由器收到一个MPLS包,查找就会在LFIB中发生。如果路由器收到一个IP包,就会在FIB中进行查找。
表7-2开关结构所使用的功能
结构 | 命令 | 在哪里使用 | 设备功能 |
---|---|---|---|
金狮森林工业 | 显示mpls转发<目的地> | P路由器 | 标签到标签交换 |
金狮森林工业 | 显示mpls转发vrf<名称> <目标>详情 | 广告PE /出口PE路由器对当地了解到前缀 | 标签至IP交换(处置) |
多联机无伤大雅的谎言 | 显示ip cef vrf<名称> <目标>详情 | 接收远程学习前缀的PE/入口PE | IP-to-label切换(实施) |
撒小谎 | 显示IP CEF<目的地> | 总工程师 | 普通路由/ CEF交换 |
最好用一个例子来说明CEF在标签过程路径的每个阶段是多么重要。下面的案例展示了如何验证一个MPLS VPN网络的正确运行,以及如何分析一个LSP中的LFIB和VRF CEF表。
案例1:标签处理
在图7-3中,PE1和PE2之间存在MPLS VPN隧道(LSP)。CE1正在通过eBGP向PE1发布其LAN前缀10.1.0.0/16。PE1反过来通过iBGP向其他PE路由器通告这个本地前缀。PE1必须对从MPLS云向10.1.0.0/16的流量进行标签处理。因此,为了验证PE1是否有关于如何正确到达10.1.1.1的信息,您需要查看PE1上的LFIB。首先,检查BGP为这个VPN前缀10.1.0.0/16分配的标签。
MPLS VPN隧道
在例7-1,PE1的BGP进程设置VPN标签20。
上出口PE例7-1验证BGP标签分配为10.1.0.0/16
PE1 #显示IP BGP VPN的VRF红色标签|包括10.1.0.010.1.0.0/16 10.3.1.2 20 / NOLABEL PE1#显示IP BGP VPN的VRF红10.1.1.1BGP路由表条目1:1:10.1.0.0/16,版本25550路径:(1个可用,best#1,表红色)通告给非对等组对等方:192.168.4.4 65001 10.3.1.2 from 10.3.1.2(10.3.1.6)Origin IGP,metric 0,localpref 100,有效,外部,最佳扩展社区:RT:1:1,mpls标签输入/输出20/nolabel
现在,检查金狮森林工业,以确保PE1看到的地方,预计标签接收为20例7-2,公告称,金狮森林工业看到了正确的地方标贴/标签为20。
例7-2验证出口PE上的LFIB为10.1.0.0/16
PE1 #显示mpls转发vrf红色10.1.1.1本地输出前缀字节标签输出下一跳标签标签或VC或隧道Id切换接口20无标记10.1.0.0/16[V] 0 Se2/0 point2point
注意:PE路由器通常安装从VRF路由表中的CE,VRF CEF表,LFIB本地习得的路线。但是,通过的流量时,以一个CE因为目的地为CE的流量通常是传入MPLS报文的PE通常只检查标签转发表。PE路由器还可以接收目的地为CE如果两个CE路由器处于相同的VRF的IP分组,连接到相同的PE路由器,和信息流发送到对方。所以,如果进入的数据包传送给PE是从VPN站点的IP数据包,看在VRF CEF表。如果传入分组是MPLS报文,看看在金狮森林工业。
案例2:标签拼版
为了使CE2达到CE1, PE2必须对从CE2收到的IP包执行标签强制执行。在VPN隧道的另一端,PE2也应该看到正确的VPN标签20才能达到10.1.1.1。查看BGP表和VRF FIB来确认这一点,如例7-3所示。
实施例7-3验证BGP和VRF FIB上入口PE为10.1.0.0/16
PE2 #显示IP BGP VPN的VRF红10.1.1.11 BGP路由表条目:1:10.1.0.0/16,版本8路径:(1可用,最好#1,表红)播发到非对等体组对等体:10.4.1.2 65001 192.168.2.2(公制21)从192.168.2.2(192.168.2.2)产地IGP,公制0,ノ唬100,有效的,内部的,最好扩展团体:RT:1:1,MPLS标签/缩小NOLABEL / 20 PE2#显示ip cef vrf红色10.1.1.110.1.0.0/16,版本7,epoch 0,缓存邻接172.16.3.1 0包,0字节标签信息集本地标签:VPN路由头快速标签重写Et1/0,172.16.3.1,标签施加:{16 20}通过192.168.2.2,0依赖,递归下一跃点172.16.3.1,以太网1/0通过192.168.2.2/32有效缓存邻接标签用Et1/0重写,172.16.3.1,附加的标签:{16 20}
在例7-3中,PE2达到10.1.1.1的out标签为20。这是正确的。在FIB输出中有两个标签。第二个标签/底部标签是BGP标签。第一个标签/顶部标签是IGP标签。核心P装置使用IGP标签到达出口PE。因此,IGP标签也必须正确,才能跨MPLS云从PE2到达PE1。在此输出中,IGP标签为16。下一个例子验证这个IGP标签是否正确。PE2使用PE1的环回地址到达10.1.1.1,因为它是BGP的下一跳,如例7-4所示。
例7-4验证VPN路径从入口PE到达10.1.1.1
PE2 #显示ip路由vrf红色10.1.1.110.1.0.0/16的路由条目通过“bgp 65100”已知,距离200,metric 0 Tag 65001,键入192.168.2.2的内部上次更新3d13h之前的路由描述符块:*192.168.2.2(默认IP路由表),从192.1路由度量为0,流量共享计数为1作为跃点1 PE2#显示IP路由192.168.2.2路由描述符块:* 172.16.3.1,从192.168.2.2,01:38:42 ago,通过Ethernet1/0路由度量是21,流量共享计数是1
案例3:标签交换
在P路由器上,到达192.168.2.2(PE1的环回)的本地标记是16,如例7-5所示。因此,对于目的地为192.168.2.2的流量,P路由器期望传入标签为16。
实施例7-5在P路由器验证标签转发表
P #显示mpls转发192.168.2.2本地传出前缀字节标记传出下一跳标记或VC或隧道Id交换接口16 Pop标记192.168.2.2/32 4350468 Et0/0 172.16.2.1
因此,在例7-3中,PE2看到的IGP标签是正确的。当P路由器接收到标签为16的10.1.1.1的流量时,它弹出顶部标签,包通过只有底部标签20的PE1,即VPN标签。