在CE-PE间配置穿过VPN的GRE隧道,使CE的用户接入MPLS VPN
应用环境
在正常的网络接入环境中,如果用户需要接入MPLS VPN时,用户端设备CE往往需要与PE之间有直接的物理链路,即必须在同一个网络中。
如果用户端设备CE和PE之间隔着一个VPN网络的话,为了让CE也能接入到VPN中,可以考虑在CE和PE之间创建“逻辑上的直连”,也就是在CE与PE之间创建GRE隧道。
配置思路
在部署在CE-PE间配置穿过VPN的GRE隧道,使CE的用户接入MPLS VPN时,采用如下的配置思路:
1. 在骨干网中配置IGP,通常使用OSPF或IS-IS,使PE之间有可达的路由。
2. 在CE和PE之间配置静态路由。
3. 在CE和PE之间配置GRE隧道。
4. 在PE上配置VPN实例,并与GRE隧道绑定。
5. 配置穿过CE与PE之间的GRE隧道的路由
配置注意事项
因为CE和PE之间有一个VPN(比如:VPN1)的存在,CE和VPN1直连的接口,以及PE和VPN1之间的接口都属于VPN1,这样,在PE上配置到CE的GRE隧道时,需要指定隧道的目的地址(或源地址)是属于VPN1的。
组网需求
如下图所示,路由器PE1和PE2位于一级运营商的MPLS骨干网。VPN2是属于二级运营商的一个VPN,其CE1与PE1直连。CE2和CE3是属于用户的设备。CE3与二级运营商的CE1直连,CE2与PE2直连。现在,要求在此网络环境中部署一个基于MPLS网络的VPN(如VPN1),使其包含直连到CE3的用户和直连到CE2的用户。
CE与PE之间的GRE隧道穿过了另一个VPN
路由器 | 接口 | IP地址 |
CE3 | GE1/0/0 | 21.1.1.2/24 |
GE2/0/0 | 30.1.1.1/24 | |
Tunnel2/0/0 | 2.2.2.1/24 | |
CE1 | GE1/0/0 | 30.1.1.2/24 |
GE2/0/0 | 50.1.1.1/24 | |
PE1 | Loopback1 | 1.1.1.9/32 |
GE1/0/0 | 50.1.1.2/24 | |
GE2/0/0 | 110.1.1.1/24 | |
Tunnel2/0/0 | 2.2.2.2/24 | |
PE2 | Loopback1 | 3.3.3.9/32 |
GE1/0/0 | 110.1.1.2/24 | |
GE2/0/0 | 11.1.1.2/24 | |
CE2 | GE1/0/0 | 11.1.1.1/24 |
适用产品和版本
路由器可以使用任意一款NE产品。版本为VRP5.30及后续版本。
配置步骤
步骤 1 配置各接口IP地址及骨干网的路由协议
按照上图配置各物理接口和Loopback接口的IP地址;并在骨干网上运行路由协议实现骨干网各路由器之间的互通。
具体配置过程略。
步骤 2 配置CE3、CE1与PE1之间的静态路由
在CE3上配置:
[CE3] ip route-static 50.1.1.0 255.255.255.0 30.1.1.2
上述配置完成后,CE3有到PE1的接口GigabitEthernet1/0/0的单向路由,但PE1没有到CE3的接口GigabitEthernet2/0/0的路由,因此在CE3上不能ping通PE1的接口GigabitEthernet1/0/0的IP地址50.1.1.2。
步骤 3 在PE1上配置VPN2实例以及到CE3的路由
在PE1上配置:
[PE1] ip vpn-instance vpn2 [PE1-vpn-instance-vpn2] route-distinguisher 100:2 [PE1-vpn-instance-vpn2] vpn-target 222:2 export-extcommunity [PE1-vpn-instance-vpn2] vpn-target 222:2 import-extcommunity [PE1-vpn-instance-vpn2] quit [PE1] interface gigabitethernet1/0/0 [PE1-GigabitEthernet1/0/0] ip binding vpn-instance vpn2 [PE1-GigabitEthernet1/0/0] ip address 50.1.1.2 255.255.255.0 [PE1-GigabitEthernet1/0/0] quit [PE1] ip route-static vpn-instance vpn2 30.1.1.0 255.255.255.0 50.1.1.1
到此,在CE3上已经可以ping通PE1的接口GigabitEthernet1/0/0的IP地址50.1.1.2。
注意:如果从PE1上ping CE3的接口GigabitEthernet2/0/0,需要在ping命令中指定源接口和-vpn-instance vpn2。例如:
[PE1] ping -a 50.1.1.2 -vpn-instance vpn2 30.1.1.1
步骤 4 配置CE3与PE1之间的GRE隧道
在CE3上配置:
[CE3] interface tunnel2/0/0 [CE3-Tunnel2/0/0] ip address 2.2.2.1 255.255.255.0 [CE3-Tunnel2/0/0] source 30.1.1.1 [CE3-Tunnel2/0/0] destination 50.1.1.2在PE1上配置: [PE1] interface tunnel1/0/0 [PE1-Tunnel1/0/0] ip address 2.2.2.2 255.255.255.0 [PE1-Tunnel1/0/0] source 50.1.1.2 [PE1-Tunnel1/0/0] destination vpn-instance vpn2 30.1.1.1
说明
从PE1到CE3的GRE隧道要穿过VPN2,因此在配置隧道的目的地址时需要指定目的地址是属于VPN2的。
上述配置完成后,CE3与PE1之间的GRE隧道已建立,在CE3上可以ping通PE1的隧道接口Tunnel1/0/0的IP地址2.2.2.2。
步骤 5 在PE1上创建VPN实例VPN1并与GRE隧道绑定
[PE1]ip vpn-instance vpn1 [PE1-vpn-instance-vpn1] route-distinguisher 100:1 [PE1-vpn-instance-vpn1] vpn-target 111:1 export-extcommunity [PE1-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity [PE1-vpn-instance-vpn1] quit [PE1] interfacet tunnel1/0/0 [PE1-Tunnel1/0/0] ip binding vpn-instance vpn1 [PE1-Tunnel1/0/0] ip address 2.2.2.2 255.255.255.0
完成此步骤后,CE3与PE1之间的GRE已建立;在CE3上应能ping通PE1的隧道接口Tunnel1/0/0的IP地址2.2.2.2。在PE1上执行ping -vpn-instance vpn1 21.1.1.2可以成功。
步骤 6 配置穿过CE3与PE1之间的GRE隧道的路由
在CE3上配置到CE2的路由:
[CE3] ip route-static 11.1.1.0 255.255.255.0 tunnel2/0/0
在PE1上配置到CE3的路由:
[PE1] ip route-static vpn-instance vpn1 21.1.1.0 255.255.255.0 tunnel1/0/0
以上配置完成后,从CE3上可以ping通CE2上连接PC2的接口的IP地址。