BGP/MPLS IP VPN是一种L3VPN(Layer 3 Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。这里的IP是指VPN承载的是IP(Internet Protocol)报文。
BGP/MPLS IP VPN的基本模型如图1所示。
图1 BGP/MPLS IP VPN模型

MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)
经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。
对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:
如果一个VPN用户希望访问其他VPN中的某些站点,可以使用Extranet组网方案。
对于这种组网,如果某个VPN需要访问共享站点,则该VPN的Export Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。
图2 Extranet组网方案

如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案。其中,中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。Hub站点侧接入VPN骨干网的设备叫Hub-CE;Spoke站点侧接入VPN骨干网的设备叫Spoke-CE。VPN骨干网侧接入Hub站点的设备叫Hub-PE,接入Spoke站点的设备叫Spoke-PE。
Spoke站点需要把路由发布给Hub站点,再通过Hub站点发布给其他Spoke站点。Spoke站点之间不直接发布路由。Hub站点对Spoke站点之间的通讯进行集中控制。
对于这种组网情况,需要设置两个VPN Target,一个表示“Hub”,另一个表示“Spoke”。如图3所示。图3 Hub&Spoke组网方案


•ASBR-PE1的配置文件# sysname ASBR-PE1#ip vpn-instance vpn1 ipv4-family route-distinguisher 100:2 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity# mpls lsr-id 2.2.2.9 mpls label advertise non-null #mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.1 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip binding vpn-instance vpn1 ip address 192.1.1.1 255.255.255.0#interface LoopBack1 ip address 2.2.2.9 255.255.255.255#bgp 100 peer 1.1.1.9 as-number 100 peer 1.1.1.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization import-route direct peer 1.1.1.9 enable # ipv4-family vpnv4 policy vpn-target peer 1.1.1.9 enable # ipv4-family vpn-instance vpn1 peer 192.1.1.2 as-number 200 import-route direct#ospf 1 area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.1.1.0 0.0.0.255#return

•ASBR-PE1的配置文件# sysname ASBR-PE1# mpls lsr-id 2.2.2.9 mpls#mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.1 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip address 192.1.1.1 255.255.255.0 mpls mpls ldp#interface LoopBack1 ip address 2.2.2.9 255.255.255.255#bgp 100 peer 192.1.1.2 as-number 200 peer 1.1.1.9 as-number 100 peer 1.1.1.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 192.1.1.2 enable peer 1.1.1.9 enable # ipv4-family vpnv4 undo policy vpn-target apply-label per-nexthop peer 1.1.1.9 enable peer 192.1.1.2 enable#ospf 1 area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.1.1.0 0.0.0.255#return ###apply-label per-nexthop该命令需要和PE上的apply-label per-instance命令配合使用###

C1方案•PE1的配置文件# sysname PE1#ip vpn-instance vpn1 ipv4-family route-distinguisher 100:1 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity# mpls lsr-id 1.1.1.9 mpls#mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.2 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip binding vpn-instance vpn1 ip address 10.1.1.2 255.255.255.0#interface LoopBack1 ip address 1.1.1.9 255.255.255.255#bgp 100 peer 2.2.2.9 as-number 100 peer 2.2.2.9 connect-interface LoopBack1 peer 4.4.4.9 as-number 200 peer 4.4.4.9 ebgp-max-hop 10 peer 4.4.4.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 2.2.2.9 enable peer 2.2.2.9 label-route-capability peer 4.4.4.9 enable # ipv4-family vpnv4 policy vpn-target peer 2.2.2.9 enable peer 4.4.4.9 enable # ipv4-family vpn-instance vpn1 peer 10.1.1.1 as-number 65001 import-route direct#ospf 1 area 0.0.0.0 network 1.1.1.9 0.0.0.0 network 172.1.1.0 0.0.0.255#return •ASBR-PE1的配置文件# sysname ASBR-PE1# mpls lsr-id 2.2.2.9 mpls#mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.1 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip address 192.1.1.1 255.255.255.0 mpls#interface LoopBack1 ip address 2.2.2.9 255.255.255.255#bgp 100 peer 192.1.1.2 as-number 200 peer 1.1.1.9 as-number 100 peer 1.1.1.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization network 1.1.1.9 255.255.255.255 peer 192.1.1.2 enable peer 192.1.1.2 route-policy policy1 export peer 192.1.1.2 label-route-capability peer 1.1.1.9 enable peer 1.1.1.9 route-policy policy2 export peer 1.1.1.9 label-route-capability # ipv4-family vpnv4 policy vpn-target peer 1.1.1.9 enable#ospf 1 area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.1.1.0 0.0.0.255#route-policy policy1 permit node 1 apply mpls-labelroute-policy policy2 permit node 1 if-match mpls-label apply mpls-label#return C2方案•PE1的配置文件# sysname PE1#ip vpn-instance vpn1 ipv4-family route-distinguisher 100:1 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity# mpls lsr-id 1.1.1.9 mpls#mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.2 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip binding vpn-instance vpn1 ip address 10.1.1.2 255.255.255.0#interface LoopBack1 ip address 1.1.1.9 255.255.255.255#bgp 100 peer 4.4.4.9 as-number 200 peer 4.4.4.9 ebgp-max-hop 10 peer 4.4.4.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 4.4.4.9 enable # ipv4-family vpnv4 policy vpn-target peer 4.4.4.9 enable # ipv4-family vpn-instance vpn1 peer 10.1.1.1 as-number 65001 import-route direct#ospf 1 area 0.0.0.0 network 1.1.1.9 0.0.0.0 network 172.1.1.0 0.0.0.255#return •ASBR-PE1的配置文件# sysname ASBR-PE1# mpls lsr-id 2.2.2.9 mpls lsp-trigger bgp-label-route#mpls ldp#interface GigabitEthernet1/0/0 ip address 172.1.1.1 255.255.255.0 mpls mpls ldp#interface GigabitEthernet2/0/0 ip address 192.1.1.1 255.255.255.0 mpls#interface LoopBack1 ip address 2.2.2.9 255.255.255.255#bgp 100 peer 192.1.1.2 as-number 200 # ipv4-family unicast undo synchronization network 1.1.1.9 255.255.255.255 peer 192.1.1.2 enable peer 192.1.1.2 route-policy policy1 export peer 192.1.1.2 label-route-capability#ospf 1 import-route bgp area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.1.1.0 0.0.0.255#route-policy policy1 permit node 1 apply mpls-label#return

应用场景