目录
第六章 MPLS VPN
6.1 概念
- BGP新增两个路径属性:
- MP_REACH_NLRI:地址簇信息(地址簇IPv4和子地址簇 VPN ipv4)、下一跳信息、NLRI区域(携带前缀、RD值)。
- MP_UNREACH_NLRI:携带地址簇信息(地址簇和子地址簇)、NLRI区域(撤销路由的前缀)
- RT值,VPN实例中配置ERT和IRT,ERT随BGP路由发布携带在扩展团体属性中。
6.2 MPLS VPN架构需要解决的问题
- PE设备存在不同用户重复的私网路由:
- 解决方法:VRF隔离不同租户的路由表,PE1设备上,需要传递给对端的私网路由即使重复,也会被隔离开不进行比较删除不优路由。即所有的租户路由都会被保留。
- 不同的租户的路由条目放入到不同的VPN实例路由表中。
- 公网中设备或者是对端PE如何区分本端的不同私网路由:
- 通过设置RD值,64bit位(值有两种类型)
- PE设备将私网路由发送给对端的PE设备,根据VPN实例中的RD值,将对应的私网路由转化为VPNV4路由(RD值+IP私网路由=96bit的VPNV4路由)。
- RD值全局唯一,则VPNV4路由全局唯一。同一个租户可以使用同一个VPN RD值
- 对端PE收到本端PE发送的私网路由(VPNV4路由),如何放入到对应的VPN实例路由表中。
- 通过MP-BGP发布VPNV4路由携带本端ERT值,对端根据路由的携带的RT值与本地的配置的IRT值进行比较,相同则放入到对应的VPN实例路由表中。
- 在IP VPN实例中配置,比较RT值接受路由的过程叫做路由交叉。
- ERT值,发布VPNV4路由的时候,通过Update报文的扩展团体携带。
- IRT值,不携带在Update报文中,仅在本地对收到的路由的RT值进行比较使用。
- [AR1]dis bgp vpnv4 all peer //该命令检查MP-BGP的邻居状态
- 数据转发问题
- 必须要建立私网路由下一跳(PE设备的环回口)的隧道,通过LDP协议建立。
- 数据报文到达对端的PE设备,应该转入正确的VPN实例中。
- 通过私网标签(MP-BGP根据自己的VPN实例中的私网路由自动分配的标签)
- 总结:MPLS VPN单域场景,数据转发需要两层标签:
- 一层外层标签LDP分配,负责将数据转发到对端PE设备
- 一层内层私网标签(MP-BGP分配),当PE收到报文之后,根据自己的MP-BGP分配的私网标签转发进入正确VPN实例中。该私网标签通过MP-BGP携带发送给本端的PE设备,本端PE设备封装MPLS使用。
- 两条隧道:
- 私网到私网之间的隧道(跨跳建立的)。
- 公网PE环回口之间的隧道(逐跳建立的)。
6.3 路由传递过程
分为3段:单向从CE1向CE2传递路由。
- CE1到PE1设备:传递IPV4路由,PE1的VPN实例接口收到该路由,放入到IP VPN 实例路由表中(VPN实例的核心路由表)
- PE1到PE2设备:PE1设备的IGP收到后引入到BGP(BGP的实例路由表中),形成VPNV4路由传递给PE2
- PE1上,从IGP实例路由协议中引入到BGP实例中,MP-BGP自动形成VPNV4路由,携带:RD值、ERT值(IP VPN实例中配置的)、私网标签(根据VPN路由生成的私网标签X)。
- PE2收到该路由,进行路由交叉(比较路由携带的ERT值本端的IRT),决定VPNV4路由是否加入到本端的BGP VPN实例路由表中。
- 如果匹配,则剥离RD值,RT值,形成IPV4路由保存在BGP实例路由表中。同时根据对端传递私网标签形成标签转发表项(模拟器无法查询)。
- 如果不匹配,路由不加表。
- PE2设备到CE2设备:PE2将剥离RD、RT值形成的IPv4路由转发到私网站点。
- 必须要从BGPVPN实例路由表中,将BGP路由引入到IGP中
6.4 数据转发过程
数据转发过程:按照路由传递反方向解释
- CE2形成IP报文,转发给PE2设备
- PE2设备根据实例路由表,查找路由的下一跳为对端的PE1设备的环回口,首先封装路由的私网标签(上文提到的X,由对端PE1传递过来的),发现路由的下一跳是PE1的环回口,再次封装去往PE1的环回口的LDP标签(公网标签)。通过LDP标签将报文转发到PE1设备上。
- PE1设备收到报文(该报文的LDP标签已弹出,剩余私网X标签),通过X标签将报文转发进入到对应的VPN实例中,此时是按照IP转发方式转发到CE1设备。
6.5 配置思路
- 公网IGP互通
- MPLS LDP会话的建立,构建环回口之间的LSP
- PE设备之间配置MP-BGP对等体关系,通过环回口建立IBGP对等体关系。
- PE设备上配置VPN接入
- VPN实例的配置:RD值,RT值(ERT和IRT)
- 绑定PE设备的对应的连接CE的接口(绑定VPN实例)
- 在PE设备上配置IGP协议(与VPN实例绑定),与CE建立IGP邻居关系相互学习路由
- PE设备上的IGP和BGP的实例中相互双向引入路由条目。
6.6排错
- 如果CE2没有学到CE1发送过来的IPv4路由,可能存在以下问题:
- PE2没有学习到对应的VPNV4路由,或者学习到对应的VPNV4路由,但是RT值不匹配,没有加入到IP实例路由表中。
- PE2学习到对应的VPNv4路由,也形成了可用的BGP 实例路由,但是IGP没有引入,因此CE2无法学习到该路由条目
- 公网中MPLS LSP构建失败,路由的下一跳无法迭代进入的LSP中,导致PE2设备上该路由进入到BGP实例路由表中,但不是最优且有效的路由。以至于将BGP路由引入到IGP的时候失败。CE2无法学习到该路由条目。
- 如果涉及RR设备
- policy vpn-target //该命令是本设备按照RT值来筛选路由,RR设备因为需要接收所有的VPNV4路由,切不配置VPN实例,因此需要关闭该功能。Undo policy vpn-target
- PE1没有学习到CE1的路由,没有形成VPNV4路由
- 没有使能IGP协议
- 接口没有绑定VPN实例,路由无法进入到实例路由表中
- IGP实例没有引入到BGP实例中