MPLS VPN 跨域实验(Option B)
实验拓扑

注:此拓扑中,PE1、ASBR1、ASBR2、PE2、CE1、CE2、CE3、CE4 分别对应 1,2,3,4,5,6,7,8 号设备
实验需求
- 如图,VPN1 和 VPN2 分别通过运营商 MPLS VPN 连接各自分支机构
- 按照图示配置 IP 地址,VPN1 和 VPN2 连接同一个 PE 设备的私网 IP 网段存在地址复用,使用多 VRF 技术来防止 IP 冲突
- AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loopback 口连通
- AS 100 和 AS 200 内部的公共网络各自运行 LDP 来建立 MPLS 路径,各路由器使用 Loopback0 口作为 LSR-id
- 各自 VPN 内部使用独立 OSPF 实例在 CE 和 PE 之间传递私网路由
- 只允许在各自企业内部传递私网路由
- AS 100 和 AS 200 之间建立 MP EBGP 邻居传递私网路由
- 各自 VPN 内部可以跨站点互相访问
实验解法
配置 IP 地址部分略
AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loopback 口连通。命令略
AS 100 和 AS 200 内部的公共网络各自运行 LDP 来建立 MPLS 路径,各路由器使用 Loopback0 口作为 LSR-id
步骤 1:在 PE1 上创建 LDP 进程,并在接口上使能 LDP
[PE1]mpls lsr-id 1.1.1.1 [PE1]mpls ldp [PE1]interface g0/0 [PE1-GigabitEthernet0/0]mpls enable [PE1-GigabitEthernet0/0]mpls ldp enable
步骤 2:在 ASBR1 上创建 LDP 进程,并在连接 PE1 的接口上使能 LDP,在连接 ASBR2 的接口上只使能 MPLS 即可
[ASBR1]mpls lsr-id 2.2.2.2 [ASBR1]mpls ldp [ASBR1]interface g0/0 [ASBR1-GigabitEthernet0/0]mpls enable [ASBR1-GigabitEthernet0/0]mpls ldp enable [ASBR1]interface g0/1 [ASBR1-GigabitEthernet0/1]mpls enable
步骤 3:在 ASBR2 上创建 LDP 进程,并在连接 PE2 的接口上使能 LDP,在连接 ASBR1 的接口上只使能 MPLS 即可
[ASBR2]mpls lsr-id 3.3.3.3 [ASBR2]mpls ldp [ASBR2]interface g0/0 [ASBR2-GigabitEthernet0/0]mpls enable [ASBR2]interface g0/1 [ASBR2-GigabitEthernet0/1]mpls enable [ASBR2-GigabitEthernet0/1]mpls ldp enable
步骤 4:在 PE2 上创建 LDP 进程,并在接口上使能 LDP
[PE2]mpls lsr-id 4.4.4.4 [PE2]mpls ldp [PE2]interface g0/0 [PE2-GigabitEthernet0/0]mpls enable [PE2-GigabitEthernet0/0]mpls ldp enable
在 PE 上创建 VPN 实例,并配置 RD 和 RT
步骤 1:在 PE1 上创建 VPN1 和 VPN2,配置 RD 和 RT,并把连接各 CE 的接口绑定至各自 VPN 实例
[PE1]ip vpn-instance vpn1 [PE1-vpn-instance-vpn1]route-distinguisher 100:1 [PE1-vpn-instance-vpn1]vpn-target 100:1 both [PE1]ip vpn-instance vpn2 [PE1-vpn-instance-vpn2]route-distinguisher 100:2 [PE1-vpn-instance-vpn2]vpn-target 100:2 both
[PE1]interface g0/1 [PE1-GigabitEthernet0/1]ip binding vpn-instance vpn1 [PE1-GigabitEthernet0/1]ip address 10.1.1.1 24 [PE1]interface g0/2 [PE1-GigabitEthernet0/2]ip binding vpn-instance vpn2 [PE1-GigabitEthernet0/2]ip address 10.2.2.1 24
步骤 2:在 PE2 上创建 VPN1 和 VPN2,配置 RD 和 RT,并把连接各 CE 的接口绑定至各自 VPN 实例
[PE2]ip vpn-instance vpn1 [PE2-vpn-instance-vpn1]route-distinguisher 100:1 [PE2-vpn-instance-vpn1]vpn-target 100:1 both [PE2]ip vpn-instance vpn2 [PE2-vpn-instance-vpn2]route-distinguisher 100:2 [PE2-vpn-instance-vpn2]vpn-target 100:2 both
[PE2]interface g0/1 [PE2-GigabitEthernet0/1]ip binding vpn-instance vpn1 [PE2-GigabitEthernet0/1]ip address 10.3.3.4 24 [PE2]interface g0/2 [PE2-GigabitEthernet0/2]ip binding vpn-instance vpn2 [PE2-GigabitEthernet0/2]ip address 10.4.4.4 24
各自 VPN 内部使用独立 OSPF 实例在 CE 和 PE 之间传递私网路由
步骤 1:在 PE 1 上分别创建 OSPF 实例绑定 VPN1 和 VPN2
[PE1]ospf 11 vpn-instance vpn1 [PE1-ospf-11]area 0 [PE1-ospf-11-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[PE1]ospf 12 vpn-instance vpn2 [PE1-ospf-12]area 0 [PE1-ospf-12-area-0.0.0.0]network 10.2.2.0 0.0.0.255
步骤 2:在 CE1 上配置 OSPF,与 PE1 的 vpn1 实例建立邻接关系,传递私网路由
[CE1]ospf [CE1-ospf-1]area 0 [CE1-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255 [CE1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
步骤 3:在 CE2 上配置 OSPF,与 PE1 的 vpn2 实例建立邻接关系,传递私网路由
[CE2]ospf [CE2-ospf-1]area 0 [CE2-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255 [CE2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
步骤 4:在 PE2,CE3 和 CE4 上配置 OSPF 实例传递私网路由,配置方法与上述步骤一致
在 AS 100 和 AS 200 内部分别配置 MP-BGP,各 AS 内 PE 和 ASBR 建立 IBGP 邻居
步骤 1:在 PE1 上创建 BGP 进程,与 ASBR1 使用 Loopback0 口建立 IBGP 邻居,并在 vpnv4 地址族视图下使能邻居
[PE1]bgp 100 [PE1-bgp-default]peer 2.2.2.2 as-number 100 [PE1-bgp-default]peer 2.2.2.2 connect-interface LoopBack 0 [PE1-bgp-default]address-family vpnv4 [PE1-bgp-default-vpnv4]peer 2.2.2.2 enable
步骤 2:在 ASBR1 上创建 BGP 进程,与 PE1 使用 Loopback0 口建立 IBGP 邻居,并在 vpnv4 地址族视图下使能邻居
[ASBR1]bgp 100 [ASBR1-bgp-default]peer 1.1.1.1 as-number 100 [ASBR1-bgp-default]peer 1.1.1.1 connect-interface LoopBack 0 [ASBR1-bgp-default]address-family vpnv4 [ASBR1-bgp-default-vpnv4]peer 1.1.1.1 enable
步骤 3:在 PE2 和 ASBR2 上配置 MP-BGP,使用 Loopback 口建立 IBGP 邻居,配置方法与上述步骤一致
在 ASBR1 和 ASBR2 之间建立 MP-EBGP 邻居,同时配置 ASBR 不对接收的 VPNv4 路由进行 RT 过滤
[ASBR1]bgp 100 [ASBR1-bgp-default]peer 100.2.2.3 as-number 200 [ASBR1-bgp-default]address-family vpnv4 [ASBR1-bgp-default-vpnv4]peer 100.2.2.3 enable [ASBR1-bgp-default-vpnv4]undo policy vpn-target
[ASBR2]bgp 200 [ASBR2-bgp-default]peer 100.2.2.2 as-number 100 [ASBR2-bgp-default]address-family vpnv4 [ASBR2-bgp-default-vpnv4]peer 100.2.2.2 enable [ASBR2-bgp-default-vpnv4]undo policy vpn-target
在 PE 上配置 BGP 和各 OSPF 实例的路由互相引入,来把私网路由传递到对端站点
步骤 1:在 PE1 上配置 BGP 和各 OSPF 实例的路由互相引入
[PE1]bgp 100 [PE1-bgp-default]ip vpn-instance vpn1 [PE1-bgp-default-vpn1]address-family ipv4 [PE1-bgp-default-ipv4-vpn1]import-route ospf 11 [PE1-bgp-default-ipv4-vpn1]quit [PE1-bgp-default-vpn1]quit [PE1-bgp-default]ip vpn-instance vpn2 [PE1-bgp-default-vpn2]address-family ipv4 [PE1-bgp-default-ipv4-vpn2]import-route ospf 12 [PE1]ospf 11 [PE1-ospf-11]import-route bgp [PE1]ospf 12 [PE1-ospf-12]import-route bgp
步骤 2:在 PE2 上配置 BGP 和各 OSPF 实例的路由互相引入,命令与 PE1 一致
效果测试:在各设备上查询路由表,可以正确学习到路由,在 CE 上使用 Loopback0 口为源地址 Ping 同 VPN 对端私网业务地址,可以 Ping 通