MPLS VPN 跨域实验(Option B)

实验拓扑


图 1-1

注:此拓扑中,PE1、ASBR1、ASBR2、PE2、CE1、CE2、CE3、CE4 分别对应 1,2,3,4,5,6,7,8 号设备


实验需求

  1. 如图,VPN1 和 VPN2 分别通过运营商 MPLS VPN 连接各自分支机构
  2. 按照图示配置 IP 地址,VPN1 和 VPN2 连接同一个 PE 设备的私网 IP 网段存在地址复用,使用多 VRF 技术来防止 IP 冲突
  3. AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loopback 口连通
  4. AS 100 和 AS 200 内部的公共网络各自运行 LDP 来建立 MPLS 路径,各路由器使用 Loopback0 口作为 LSR-id
  5. 各自 VPN 内部使用独立 OSPF 实例在 CE 和 PE 之间传递私网路由
  6. 只允许在各自企业内部传递私网路由
  7. AS 100 和 AS 200 之间建立 MP EBGP 邻居传递私网路由
  8. 各自 VPN 内部可以跨站点互相访问

实验解法

  1. 配置 IP 地址部分略

  2. AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loopback 口连通。命令略

  3. 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
    
  4. 在 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
    
  5. 各自 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 实例传递私网路由,配置方法与上述步骤一致

  6. 在 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 邻居,配置方法与上述步骤一致

  7. 在 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
    
  8. 在 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 一致

  9. 效果测试:在各设备上查询路由表,可以正确学习到路由,在 CE 上使用 Loopback0 口为源地址 Ping 同 VPN 对端私网业务地址,可以 Ping 通