一、拓朴图:
说明:客户A在 AS100 区域内,通过 AS 234 和 567,和另一区域客户A‘的 AS800 通信、传递私网路由,
要求:R1 的业务地址 172.16.1.1/24 可以 ping 通 R8 的业务地址 172.16.8.8
二、配置过程:
1、AS234 内的R2、3、4 起 IGP ospf,起mpls ldp,打通域内路由;R2 和 R4 建 IBGP 邻居关系;
2、AS567 内的R5、6、7 起 IGP is-is,起mpls ldp,打通域内路由; R5 和 R7 建 IBGP邻居关系;
3、R1 和 R2 起IPV4的 EBGP 邻居关系,R1宣告业务地址,R2的 G0/0/1 口绑定 VRF A,模拟 MPE 场景;同样,R7和R8同样做;
4、R4 和 R5 分别起 VRF,绑定域间直连的接口;
三、验证:
四、控制层面分析:
1、R8 把172.16.8.8/24 通过 EBGP 传递给R7
2、R7 的 VRF A 收到 路由,带上了RD、RT,上升到 vpnv4 路由,并分配了私网标签 1027(apply),同时在 LFIB 中生成1027,指向 VRF A;然后压公网标签,通过公网lsp隧道,将标签包发给R5
3、R5 收到 R7 的 vpnv4路由, 分配了私网标签1027(Received),由于RT匹配,下沉进入到VRF A ,变成BGP 路由,并分配了回程私网标签1025(Apply)到10.1.7.7;由于 R5 和R4是EBGP邻居关系,R5通过 VRF A将IPV4格式的路由传递给了R4;
4、R4 的VRF A 收到了ipv4的路由,再上升到vpnv4路由表,分私网标签,再走公网标签隧道传给R2; 同时mpls 也给回程路由分配了到R5的公网标签,;
5、R2 收到 vpnv4 的 路由,由于RT相同,下沉进入VRF A,将路由通过 EBGP 传递 R1
五、 数据层面分析:
1、R1 查 fib 表dis fib [172.16.8.8 24 verbose],查到下一跳走 R2:10.1.12.2,走IP包传给R2;
2、R2 的 EBGP 接口收到 AS100 传递过来的路由,放入 VRF A 的路由表中,上升到 VPNV4 路由表中,带上RD、RT头,变成vpnv4地址2:2:172.16.8.0/24,被mpls 按FEC 分配 压了一层 vpnv4 的VRF 私网标签 1027;然后查 fib 表(dis fib vpn-instance A)到 172.16.8.8/24 下一跳走 10.1.23.3 ;走lsp隧道,再被mpls 压一层公网标签,标签隧道走 R3的10.1.23.3(dis tunnel-info tunnel-id 3),分配压入标签1024
3、R3收到标签包,查lfib表:dis mpls ldp lsp 10.1.4.4 32 ,由于下一跳是10.1.4.4,执行pop 弹出,弹出外层公网标签 1024,剩余内层 1027 的底层标签,查10.1.4.4的fib表(dis fib ),下一跳通过lsp隧道0x3走10.1.34.4
4、R4 收到标签包,从vpnv4进入到VRF A, 查到入标签为3,直接pop弹出底层的私网标签,露出vpnv4路由,由于RT值相同,进入 vpnv4 表后,被 VRF A 收入,查 fib 表走R5的10.1.45.5:dis fib vpn-instance A 172.16.8.8 24,走IP包发给R5;
5、R5 的VRF A 收到IP包,同R2一样,进入vpnv4路由表,被压入私网标签1028;然后查vpnv4路由表dis bgp vpnv4 all routing-table,到172.16.8.0/24,走10.1.7.7;查fib表dis fib 10.1.7.7,再被压入一层公网标签,走lsp标签隧道0x3到达R6;
6、 R6收到标签包,同R4一样处理,剥掉公网标签,转给R7;
7、R7收到标签包,直接POP弹出,露出vpnv4路由,由于RT相同,进入VRF A路由表,查fib表dis fib vpn-instance A 172.16.8.0/24 ,通过绑定的接口G0/0/1,转给R8
六、主要调试查看命令:
dis ip rout ing-table vpn-instance A #查看VRF A的路由
dis bgp vpnv4 all routing-table #查看vpnv4所有的路由,包括vpnv4总表和VRF分表的
dis bgp vpnv4 vpn-instance A routing #查看VRF A的路由
dis bgp vpnv4 routing-table peer 10.1.45.5 advertised-routes #查看向BGP邻居发出的路由
dis bgp vpnv4 routing-table peer 10.1.45.5 received-routes #查看从BGP邻居收到的路由
dis bgp vpnv4 vpn-instance A routing-table peer 10.1.45.5 advertised-routes #查看向BGP邻居(VRF A)发出的路由
dis bgp vpnv4 vpn-instance A routing-table peer 10.1.45.5 received-routes #查看从BGP邻居(VRF A)收到的路由
dis bgp vpnv4 all routing-table 172.16.8.0 24 #查看vpnv4某个IP的路由
dis bgp vpnv4 all peer #显示所有vpnv4的邻居,包括VRF的
dis bgp vpnv4 vpn-instance A peer #显示VRF A 的BGP邻居关系
dis fib #查看所有的数据转发表
dis fib vpn-instance A #查看VRF A 的转发表
dis tunnel-info tunnel-id 3 #查看某条隧道的详细信息
dis mpls lsp in-label|out-label 1024 <verbose> #查看入|出标签的详细信息
tracert -v -a 172.16.1.1 172.16.8.8 #带源跟踪数据路径
tracert lsp -v -a 10.1.2.2 172.16.4.4 #跟踪一下域内的mpls lsp 路线
* 1、mpls 默认不会为bgp路由分标签,但会给 bgp vpnv4路由分标签,标签做为bgp路由的属性,通过BGP update报文传送,自己分的为Apply,收到这条路由的标签为Receive。可以在报文中的mp-reach_nlri(mpltiple protocol_reach_network layer reachable information)里看到,包括RD、标签、Label Stack、IP、Prefix;2、vpnv4的RT可以在bgp vpnv4 update报文中的扩展属性ext-community中看到: