四、MPLS的配置
1.IP可达---使用路由协议全网可达
2.配置MPLS - LDP
[r2]mpls lsdr-id 2.2.2.2 必须先定义mpls的router-id,要为本地设备的真实IP地址,且邻居可达,因为该地址将用于建立tcp会话,建议使用换回地址
[r2]mpls 再开启mpls协议
[r2-mpls]mpls ldp 再激活ldp协议
[r2-mpls]q
之后需要在所有标签经过的接口上开启协议
[r2]interface g0/0/1
[r2-GigabitEthernet0/0/1]mpls 先开启mpls
[r2-GigabitEthernet0/0/1]mpls ldp 再激活ldp协议
当启动配置完成后,邻居间使用UDP报文组播收发hello包,之后基于hello包中的router-id地址进行tcp会话的建立;
[r2]display tcp status
TCPCB Tid/ Soid Local Add: port Foreign Add: port VPNID State
b4cf3d64 167/6 3.3.3.3:646 4.4.4.4:50858 0 Established
b4cf3adc 167/3 3.3.3.3:50806 2.2.2.2:646 0 Established
当tcp会话建立后,邻居间基于tcp会话再建立邻居关系,生成邻居表;
[r2]display mpls ldp peer
再然后基于本地的FIB表,默认华为仅针对32位的主机路由生成标签号;存储于LIB表中,之后邻居间共享LIB表;
[r2]display fib 查看FIB表
[r2]display mpls ldp lsp 查看LIB表,装载本地和邻居为各条路由分配的标签号
最后路由器将LIB和 FIB集合,生成最佳路径的标签转发规则-LFIB
[r2]display mpls lsp 查看LFIB表
注:华为默认仅针对32位主机路由分配标签号
[r2]mpls
[r2-mpls]lsp-trigger all 开启功能,将针对FIB表中所有路由进行标签号的分配
[r2]tracert -v -a 2.2.2.2 56.1.1.1.1
五、使用MPLS解决BGP的路由黑洞
MPLS协议并不会为通过BGP协议学习的路由条目分配标签号;
而是在访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号:
例:R2从BGP邻居5.5.5.5学习到6.6.6.0 网段的路由: R2在访问6.6.6.0 时, 将在数据包中压入到达5.5.5.5ip地址的标签号,来穿越中间没有运行BGP 协议的设备; 实现打破路由黑洞;
注:华为设备默认不为BGP协议执行下一跳标签机制,cisco默认执行;
华为设备需要开启 route recursive- lookup tunnel 路由基于隧道进行递归查找
六、MPLS VPN
1、CE将私有路由传递到PE端
2、PE端在收到不同CE发送过来的相同网段路由时,使用RD值进行区分---格式X:X 32位
3、PE端将附上RD的私有路由不能直接装载于本地公有路由表中,需要放置到对应的VRF(虚拟路由转发)空间内;之后再路由赋RT值,用于传递到对端PE设备,对端区分信息;
VPNV4路由=普通IPV4路由+RD+RT
4、VPNV4路由需要MP-BGP来进行传递;对端基于RT值,将路由装载到对应的VRF空间内,再共享给对应的CE;
5、控制层面工作完成后,数据层面需要基于MPLS来工作,由于数据层面不能携带RD/RT值;故mpls将在数据包中压入两层标签,外层标签用于穿越中间设备,打破BGP路由黑洞:内层标签用于对应VRF 空间;
配置:
1、ISP部分
1)IGP路由
2)MPLS域
3)配置MPLS VPN
[r2]ip vpn-instance a 创建名为a的vrf空间
[r2-vpn-instance-a]ipv4-family 进入IPV4的配置模式下
[r2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 RD值
[r2-vpn-instance-a-af-ipv4]vpn-target 1:1 RT值 必须对端一致
[r2]interface g0/0/0 进入链接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a 关联到VRF空间
[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 配置私有IP地址
注:在关联到VRF空间前不能配置接口IP,否则该地址的直连路由将进入公有路由表;
[r2]display ip routing-table vpn-instance a 查看空间内的私有路由表
[r2]ping -vpn-instance a 192.168.2.1 正常测试将在公有路由表中查询记录;该命令为基于VRF空间a进行路由查询;
4)PE与PE间建立MP-BGP邻居关系
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r2-bgp]peer 4.4.4.4 next-hop-local
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r2-bgp]display bgp vpnv4 all peer 查看MP-BGP邻居关系
最后还需要将路由进行双向重发布,详细命令见MPLS VPN 实验