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

注:此拓扑中,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 之间通过划分和绑定不同子接口实现不同 VPN 路由的区分,使用普通 BGP 传递私网路由
- 各自 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 进程,并在接口上使能 LDP
[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
步骤 3:在 ASBR2 上创建 LDP 进程,并在接口上使能 LDP
[ASBR2]mpls lsr-id 3.3.3.3 [ASBR2]mpls ldp [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 和 ASBR 上创建 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:在 ASBR1 上创建 VPN1 和 VPN2,配置 RD 和 RT
[ASBR1]ip vpn-instance vpn1 [ASBR1-vpn-instance-vpn1]route-distinguisher 100:1 [ASBR1-vpn-instance-vpn1]vpn-target 100:1 both [ASBR1]ip vpn-instance vpn2 [ASBR1-vpn-instance-vpn2]route-distinguisher 100:2 [ASBR1-vpn-instance-vpn2]vpn-target 100:2 both
步骤 3:在 ASBR2 上创建 VPN1 和 VPN2,配置 RD 和 RT
[ASBR2]ip vpn-instance vpn1 [ASBR2-vpn-instance-vpn1]route-distinguisher 100:1 [ASBR2-vpn-instance-vpn1]vpn-target 100:1 both [ASBR2]ip vpn-instance vpn2 [ASBR2-vpn-instance-vpn2]route-distinguisher 100:2 [ASBR2-vpn-instance-vpn2]vpn-target 100:2 both
步骤 4:在 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 邻居,配置方法与上述步骤一致
AS 100 和 AS 200 之间通过划分和绑定不同子接口实现不同 VPN 路由的区分,使用普通 BGP 传递私网路由
步骤 1:在 ASBR1 和 ASBR2 上创建子接口分别绑定 vpn1 和 vpn2,并配置 IP 地址
[ASBR1]interface g0/1.1 [ASBR1-GigabitEthernet0/1.1]ip binding vpn-instance vpn1 [ASBR1-GigabitEthernet0/1.1]vlan-type dot1q vid 10 [ASBR1-GigabitEthernet0/1.1]ip address 100.4.4.1 24 [ASBR1]interface g0/1.2 [ASBR1-GigabitEthernet0/1.2]ip binding vpn-instance vpn2 [ASBR1-GigabitEthernet0/1.2]vlan-type dot1q vid 20 [ASBR1-GigabitEthernet0/1.2]ip address 100.5.5.1 24
[ASBR2]interface g0/0.1 [ASBR2-GigabitEthernet0/0.1]ip binding vpn-instance vpn1 [ASBR2-GigabitEthernet0/0.1]vlan-type dot1q vid 10 [ASBR2-GigabitEthernet0/0.1]ip address 100.4.4.2 24 [ASBR2]interface g0/0.2 [ASBR2-GigabitEthernet0/0.2]ip binding vpn-instance vpn2 [ASBR2-GigabitEthernet0/0.2]vlan-type dot1q vid 20 [ASBR2-GigabitEthernet0/0.2]ip address 100.5.5.2 24
步骤 2:在 ASBR1 和 ASBR2 的 vpn1 和 vpn2 上分别建立 IPv4 EBGP 邻居
[ASBR1]bgp 100 [ASBR1-bgp-default]ip vpn-instance vpn1 [ASBR1-bgp-default-vpn1]peer 100.4.4.2 as 200 [ASBR1-bgp-default-vpn1]address-family ipv4 [ASBR1-bgp-default-ipv4-vpn1]peer 100.4.4.2 enable [ASBR1-bgp-default-ipv4-vpn1]quit [ASBR1-bgp-default-vpn1]quit [ASBR1-bgp-default]ip vpn-instance vpn2 [ASBR1-bgp-default-vpn2]peer 100.5.5.2 as 200 [ASBR1-bgp-default-vpn2]address-family ipv4 [ASBR1-bgp-default-ipv4-vpn2]peer 100.5.5.2 enable
[ASBR2]bgp 200 [ASBR2-bgp-default]ip vpn-instance vpn1 [ASBR2-bgp-default-vpn1]peer 100.4.4.1 as 100 [ASBR2-bgp-default-vpn1]address-family ipv4 [ASBR2-bgp-default-ipv4-vpn1]peer 100.4.4.1 enable [ASBR2-bgp-default-ipv4-vpn1]quit [ASBR2-bgp-default-vpn1]quit [ASBR2-bgp-default]ip vpn-instance vpn2 [ASBR2-bgp-default-vpn2]peer 100.5.5.1 as 100 [ASBR2-bgp-default-vpn2]address-family ipv4 [ASBR2-bgp-default-ipv4-vpn2]peer 100.5.5.1 enable
在 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 通