配置GRE VPN
应用环境
运营商部署的MPLS骨干网可以向客户提供多种服务。MPLS VPN是运营商向客户提供的一种常见的服务。在MPLS VPN中,为了让用户端设备CE接入VPN中往往需要CE与PE之间有直接的物理链路,即在同一个网络中。在这样的组网中,需要在PE上将VPN与PE到CE的物理接口进行绑定。
在CE和PE非直连的情况下,为了让CE也能接入到VPN中,可以考虑在CE和PE之间创建“逻辑上的直连”,也就是在CE与PE之间创建GRE隧道。在这样的组网中,就需要在PE上将VPN与PE-CE之间的GRE隧道进行绑定。其实就是把GRE隧道当作一个物理接口来看待。
采用GRE隧道接入MPLS VPN时,在PE上的配置可按以下三种情形来划分:
GRE隧道的源接口绑定VPN实例,GRE隧道的目的地址也属于该VPN实例。
GRE隧道绑定VPN实例,GRE隧道的源地址和目的地址不属于VPN实例。
GRE隧道绑定一个VPN实例(例如VPN1),但GRE隧道的源接口已经绑定了另一个VPN实例(例如VPN2),此时GRE隧道需要穿过VPN2。
由于在第1种情形中,GRE隧道的源和目的地址都属于私有网络,在实际的应用中在私有网络里再创建一个隧道到PE,没有什么价值。因此第1种情形不会在实际网络中存在。后面的配置思路和举例主要针对第2和第3种情况。
配置思路
在部署GRE隧道接入MPLS VPN时,采用如下的配置思路:
在骨干网中配置IGP,通常使用OSPF或IS-IS,使PE之间有可达的路由。
在骨干网中配置MPLS基本能力,并启动MPLS LDP,使PE之间建立LSP。
在非直连的PE与CE之间配置路由协议,使非直连的PE和CE之间有可达的路由。
在非直连的PE与CE之间建立GRE隧道,使PE与CE之间建立“逻辑上的直连”。
在PE上配置VPN实例,并把与CE直接相连的接口或GRE隧道和VPN实例绑定。
在PE与CE之间配置穿过CE与PE之间的GRE隧道的路由,以使PE能够引入CE的VPN路由。
在PE上配置MP-IBGP,以使PE能够将本地的VPN路由发布给远端PE。
配置注意事项
非直连的CE和PE上需要配置到隧道对端的静态路由。另外,需要在每台CE上配置到对端CE的私网路由;在PE上配置到本地CE的私网路由。
在GRE隧道绑定一个VPN实例(例如VPN1),GRE隧道的源接口绑定了另一个VPN实例(例如VPN2),即GRE隧道需要穿过VPN2的情况下:远端CE不是通过公共网络与PE互连,而是通过VPN2与PE互连,在PE上与CE直连的接口已经绑定到VPN2上,因此CE上与中间路由器直连的接口以及PE上与中间路由器直连的接口都属于VPN2。这样在PE上配置到CE的GRE隧道时需要指定隧道的目的地址(或源地址)是属于VPN2的。如所示:
采用GRE隧道接入MPLS VPN
组网需求
本例采用一个通用组网。路由器PE1和PE2位于MPLS骨干网,CE1和PE1之间为公共网络,其间通过路由器R1互连,CE2与PE2直连。现在,要求在此网络环境中部署一个基于MPLS网络的VPN,使其包含直连到CE1的用户和直连到CE2的用户。
路由器 | 接口 | IP地址 |
CE1 | Loopback1 | 6.6.6.6/32 |
GE1/0/0 | 21.1.1.2/24 | |
GE2/0/0 | 30.1.1.1/24 | |
Tunnel5/0/1 | 2.2.2.1/24 | |
R1 | GE1/0/0 | 30.1.1.2/24 |
GE2/0/0 | 50.1.1.1/24 | |
PE1 | Loopback0 | 1.1.1.9/32 |
Loopback1 | 5.5.5.5/32 | |
GE1/0/0 | 50.1.1.2/24 | |
GE2/0/0 | 110.1.1.1/24 | |
Tunnel5/0/1 | 2.2.2.2/24 | |
PE2 | Loopback0 | 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 |
GE2/0/0 | 31.1.1.2/24 |
适用产品和版本
CE采用NE40E设备,版本为(VRP5.30-32)及后续版本或采用NE20/NE20E设备,版本为(VRP5.30-23)及后续版本
PE采用NE80E设备,版本为(VRP5.30-32)及后续版本
R采用NE40E/NE80E,版本为(VRP5.30-31)及后续版本或采用NE40/NE80设备,版本为(VRP5.10-32)及后续版本
配置步骤
步骤 1 配置各接口IP地址
按照上图配置各物理接口及Loopback接口的IP地址。
具体配置过程略。
步骤 2 在MPLS骨干网上配置IGP协议,实现骨干网PE的互通。
# 配置PE1。 # 启动OSPF路由协议,并发布各接口的路由。 [PE1] ospf [PE1-ospf-1] area 0 [PE1-ospf-1-area-0.0.0.0] network 110.1.1.0 0.0.0.255 [PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0 [PE1-ospf-1-area-0.0.0.0] quit [PE1-ospf-1] quit # 配置PE2。 # 启动OSPF路由协议,并发布各接口的路由。 [PE2] ospf [PE2-ospf-1] area 0 [PE2-ospf-1-area-0.0.0.0] network 110.1.1.0 0.0.0.255 [PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0 [PE2-ospf-1-area-0.0.0.0] quit [PE2-ospf-1] quit
配置完成后,PE1和PE2之间应能建立OSPF邻居关系,执行display ospf peer命令可以看到邻居状态为Full。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback0路由。
以PE1的显示为例:
<PE1> display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoopBack0
3.3.3.9/32 OSPF 10 3 110.1.1.2 GigabitEthernet2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
110.1.1.0/24 Direct 0 0 172.1.1.1 GigabitEthernet2/0/0
110.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
步骤 3 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP。
# 配置PE1。
# 在系统上启动MPLS和LDP,指定LSR-ID为与PE2相连的接口的地址,并触发建立LSP。
[PE1] mpls lsr-id 1.1.1.9 [PE1] mpls [PE1-mpls] lsp-trigger all [PE1-mpls] quit [PE1] mpls ldp [PE1-mpls-ldp] quit # 在骨干网的接口上启动MPLS和LDP。 [PE1] interface GigabitEthernet 2/0/0 [PE1-GigabitEthernet 2/0/0] mpls [PE1-GigabitEthernet 2/0/0] mpls ldp [PE1-GigabitEthernet 2/0/0] quit # 配置PE2。 # 在系统上启动MPLS和LDP,指定LSR-ID为与PE2相连的接口的地址,并触发建立LSP。 [PE2] mpls lsr-id 3.3.3.9 [PE2] mpls [PE2-mpls] lsp-trigger all [PE2-mpls] quit [PE2] mpls ldp [PE2-mpls-ldp] quit # 在骨干网的接口上启动MPLS和LDP。 [PE2] interface GigabitEthernet 1/0/0 [PE2-GigabitEthernet1/0/0] mpls [PE2-GigabitEthernet1/0/0] mpls ldp [PE2-GigabitEthernet1/0/0] quit
上述配置完成后,PE1与PE2之间应能建立LDP会话,执行display mpls ldp session命令可以看到显示结果中Status项为“Operational”。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
以PE1的显示为例:
<PE1> display mpls ldp session
LDP Session(s) in Public Network
--------------------------------------------------------------------------
Peer-ID Status LAM SsnRole SsnAge KA-Sent/Rcv
--------------------------------------------------------------------------
3.3.3.9:0 Operational DU Passive 000:00:01 5/5
--------------------------------------------------------------------------
LAM : Label Advertisement Mode SsnAge Unit : DDD:HH:MM
<PE1> display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 GE2/0/0/InLoop0
2 3.3.3.9/32 NULL/3 110.1.1.2 -------/GE2/0/0
*3 11.1.1.0/24 Liberal
4 50.1.1.0/24 3/NULL 50.1.1.2 GE2/0/0/GE1/0/0
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
步骤 4 配置CE1、R1与PE1之间的IGP路由,并使CE1与PE1的LoopBack1接口地址可以互通。
# 在CE1上配置: [CE1] ospf 10 [CE1-ospf-10] area 0 [CE1-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255 [CE1-ospf-10-area-0.0.0.0] network 6.6.6.6 0.0.0.0 [CE1-ospf-10-area-0.0.0.0] quit [CE1-ospf-10] quit # 在R1上配置: [R1] ospf 10 [R1-ospf-10] area 0 [R1-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255 [R1-ospf-10-area-0.0.0.0] network 50.1.1.0 0.0.0.255 [R1-ospf-10-area-0.0.0.0] quit [R1-ospf-10] quit # 在PE1上配置: [PE1] ospf 10 [PE1-ospf-10] area 0 [PE1-ospf-10-area-0.0.0.0] network 50.1.1.0 0.0.0.255 [PE1-ospf-10-area-0.0.0.0] network 5.5.5.5 0.0.0.0 [PE1-ospf-10-area-0.0.0.0] quit [PE1-ospf-10] quit
到此,在CE1与PE1上已经可以互相ping通对方的逻辑接口Loopback1的IP地址。
例如:
<PE1> ping 6.6.6.6
PING 6.6.6.6: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.6: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 6.6.6.6: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 6.6.6.6: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 6.6.6.6: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 6.6.6.6: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 6.6.6.6 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms
步骤 5 配置CE1与PE1之间的GRE隧道
# 在CE1上配置: [CE1] interface loopback1 [CE1-loopback1] target-board 5 [CE1-loopback1] binding tunnel gre [CE1-loopback1] quit [CE1] interface tunnel5/0/1 [CE1-Tunnel5/0/1] ip address 2.2.2.1 255.255.255.0 [CE1-Tunnel5/0/1] source loopback 1 [CE1-Tunnel5/0/1] destination 5.5.5.5 # 在PE1上配置: [PE1] interface loopback1 [PE1-loopback1] target-board 5 [PE1-loopback1] binding tunnel gre [PE1-loopback1] quit [PE1] interface tunnel5/0/1 [PE1-Tunnel5/0/1] ip address 2.2.2.2 255.255.255.0 [PE1-Tunnel5/0/1] source loopback 1 [PE1-Tunnel5/0/1] destination 6.6.6.6
上述配置完成后,CE1与PE1之间的GRE隧道已建立,在CE1上可以ping通PE1的隧道接口Tunnel5/0/1的IP地址2.2.2.2。在隧道两端执行命令display interface tunnel,可以看到隧道接口的状态为UP。
以PE1为例:
<PE1> display interface tunnel 5/0/1
Tunnel5/0/1 current state : UP
Line protocol current state : UP
Description : HUAWEI, Quidway Series, Tunnel5/0/1 Interface, Route Port
The Maximum Transmit Unit is 1500 bytes
Internet Address is 2.2.2.2/24
Encapsulation is TUNNEL, loopback not set
Tunnel source 5.5.5.5 (LoopBack1), destination 6.6.6.6
Tunnel protocol/transport GRE/IP , key disabled
Checksumming of packets disabled
QoS max-bandwidth : 64 Kbps
Output queue : (Urgent queue : Size/Length/Discards) 0/50/0
Output queue : (Protocol queue : Size/Length/Discards) 0/1000/0
Output queue : (FIFO queuing : Size/Length/Discards) 0/75/0
5 minutes input rate 0 bytes/sec, 0 packets/sec
5 minutes output rate 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes
0 input error
0 packets output, 0 bytes
0 output error
步骤 6 在PE1创建VPN实例vpn1并与GRE隧道绑定
# 配置vpn1,指定RD和VPN-Target。在本PE上配置的VPN-Target应与在PE对等体上配置的VPN-Target对应,以便同一VPN的各Site可互访。
[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] interface tunnel5/0/1 [PE1-Tunnel5/0/1] ip binding vpn-instance vpn1 [PE1-Tunnel5/0/1] ip address 2.2.2.2 255.255.255.0
步骤 7 在PE2创建VPN实例vpn1并与CE连接的接口绑定
# 配置vpn1,指定RD和VPN-Target。在本PE上配置的VPN-Target应与在PE对等体上配置的VPN-Target对应,以便同一VPN的各Site可互访。
[PE2] ip vpn-instance vpn1 [PE2-vpn-instance-vpn1] route-distinguisher 200:1 [PE2-vpn-instance-vpn1] vpn-target 111:1 export-extcommunity [PE2-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity [PE2-vpn-instance-vpn1] quit [PE2] interface GigabitEthernet 2/0/0 [PE2-GigabitEthernet2/0/0] ip binding vpn-instance vpn1 [PE2-GigabitEthernet2/0/0] ip address 11.1.1.2 255.255.255.0
步骤 8 配置CE1与CE2之间的穿过GRE隧道的IGP路由。
# 在CE1上配置: [CE1] isis 10 [CE1-isis-10] network-entity 10.0000.0000.0001.00 [CE1-isis-10] quit [CE1] interface gigabitethernet1/0/0 [CE1-GigabitEthernet1/0/0] isis enable 10 [CE1-GigabitEthernet1/0/0] quit [CE1] interface tunnel5/0/1 [CE1-Tunnel5/0/1] isis enable 10 [CE1-Tunnel5/0/1] quit # 在PE1上配置: [PE1] isis 10 vpn-instance vpn1 [PE1-isis-10] network-entity 10.0000.0000.0002.00 [PE1-isis-10] quit [PE1] interface tunnel5/0/1 [PE1-Tunnel5/0/1] isis enable 10 [PE1-Tunnel5/0/1] quit # 在CE2上配置: [CE2] isis 10 [CE2-isis-10] network-entity 10.0000.0000.0004.00 [CE2-isis-10] quit [CE2] interface gigabitethernet1/0/0 [CE2-GigabitEthernet1/0/0] isis enable 10 [CE2-GigabitEthernet1/0/0] quit [CE2] interface gigabitethernet2/0/0 [CE2-GigabitEthernet2/0/0] isis enable 10 [CE2-GigabitEthernet2/0/0] quit # 在PE2上配置: [PE2] isis 10 vpn-instance vpn1 [PE2-isis-10] network-entity 10.0000.0000.0003.00 [PE2-isis-10] quit [PE2]interface gigabitethernet2/0/0 [PE2-GigabitEthernet2/0/0] isis enable 10 [PE2-GigabitEthernet2/0/0] quit
步骤 9 在PE之间建立MP-IBGP对等体关系。
# 配置PE1。
# 指定对端PE为IBGP对等体,使用loopback接口建立IBGP连接。 [PE1] bgp 100 [PE1-bgp] peer 3.3.3.9 as-number 100 [PE1-bgp] peer 3.3.3.9 connect-interface loopback 0 # 进入VPN的VPNV4地址簇视图,并启动对等体交换VPN-IPv4路由信息。 [PE1-bgp] ipv4-family vpnv4 [PE1-bgp-af-vpnv4] peer 3.3.3.9 enable [PE1-bgp-af-vpnv4] quit # 进入BGP的vpn1实例,引入直连路由和IS-IS路由。 [PE1-bgp] ipv4-family vpn-instance vpn1 [PE1-bgp-vpn1] import-route direct [PE1-bgp-vpn1] import-route isis 10 [PE1-bgp-vpn1] quit # 配置PE2。 # 指定对端PE为IBGP对等体,使用loopback接口建立IBGP连接。 [PE2] bgp 100 [PE2-bgp] peer 1.1.1.9 as-number 100 [PE2-bgp] peer 1.1.1.9 connect-interface loopback 0 # 进入VPN的VPNV4地址簇视图,并启动对等体交换VPN-IPv4路由信息。 [PE2-bgp] ipv4-family vpnv4 [PE2-bgp-af-vpnv4] peer 1.1.1.9 enable [PE2-bgp-af-vpnv4] quit # 进入BGP的vpn1实例,引入直连路由和IS-IS路由。 [PE2-bgp] ipv4-family vpn-instance vpn1 [PE2-bgp-vpn1] import-route direct [PE2-bgp-vpn1] import-route isis 10 [PE2-bgp-vpn1] quit
配置完成后,在PE路由器上执行display bgp peer或display bgp vpnv4 all peer命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
以PE1为例:
<PE1> display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.9 4 100 2 6 0 00:00:12 Established 0
步骤 10 在PE的IS-IS路由中引入BGP路由
# 配置PE1。
[PE1] isis 10 [PE1-isis-10] import-route bgp # 配置PE2。 [PE2] isis 10 [PE2-isis-10] import-route bgp
验证结果
如果配置成功,则:
从CE1上可以ping通CE2上连接PC2的接口的IP地址。
以CE1的显示为例:
<CE1> ping 31.1.1.2
PING 31.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 31.1.1.2: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 31.1.1.2: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 31.1.1.2: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 31.1.1.2: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 31.1.1.2: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 31.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms
配置实例2
组网需求
本例采用一个通用组网。路由器PE1和PE2位于一级运营商的MPLS骨干网。VPN2是属于二级运营商的一个VPN,其CE1与PE1直连。CE2和CE3是属于用户的设备。CE3与二级运营商的CE1直连,CE2与PE2直连。现在,要求在此网络环境中部署一个基于MPLS网络的VPN(如VPN1),使其包含直连到CE3的用户和直连到CE2的用户。
路由器 | 接口 | IP地址 |
CE3 | Loopback1 | 6.6.6.6/32 |
GE1/0/0 | 21.1.1.2/24 | |
GE2/0/0 | 30.1.1.1/24 | |
Tunnel5/0/1 | 2.2.2.1/24 | |
CE1 | GE1/0/0 | 30.1.1.2/24 |
GE2/0/0 | 50.1.1.1/24 | |
PE1 | Loopback0 | 1.1.1.9/32 |
Loopback1 | 5.5.5.5/32 | |
GE1/0/0 | 50.1.1.2/24 | |
GE2/0/0 | 110.1.1.1/24 | |
Tunnel5/0/1 | 2.2.2.2/24 | |
PE2 | Loopback0 | 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 |
GE2/0/0 | 31.1.1.2/24 |
适用产品和版本
CE采用NE40E设备,版本为(VRP5.30-32)及后续版本或采用NE20/NE20E设备,版本为(VRP5.30-23)及后续版本
PE采用NE40E/NE80E设备,版本为(VRP5.30-32)及后续版本
配置步骤
步骤 1 配置各接口IP地址
按照上图配置各物理接口及Loopback接口的IP地址。
具体配置过程略。
步骤 2 在MPLS骨干网上配置IGP协议,实现骨干网PE的互通。
# 配置PE1。
# 启动OSPF路由协议,并发布各接口的路由。
[PE1] ospf [PE1-ospf-1] area 0 [PE1-ospf-1-area-0.0.0.0] network 110.1.1.0 0.0.0.255 [PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0 [PE1-ospf-1-area-0.0.0.0] quit [PE1-ospf-1] quit # 配置PE2。 # 启动OSPF路由协议,并发布各接口的路由。 [PE2] ospf [PE2-ospf-1] area 0 [PE2-ospf-1-area-0.0.0.0] network 110.1.1.0 0.0.0.255 [PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0 [PE2-ospf-1-area-0.0.0.0] quit [PE2-ospf-1] quit
配置完成后,PE1和PE2之间应能建立OSPF邻居关系,执行display ospf peer命令可以看到邻居状态为Full。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback0路由。
以PE1的显示为例:
<PE1> display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoopBack0
3.3.3.9/32 OSPF 10 3 110.1.1.2 GigabitEthernet2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
110.1.1.0/24 Direct 0 0 172.1.1.1 GigabitEthernet2/0/0
110.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
步骤 3 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP。
# 配置PE1。
# 在系统上启动MPLS和LDP,指定LSR-ID为与PE2相连的接口的地址,并触发建立LSP。 [PE1] mpls lsr-id 1.1.1.9 [PE1] mpls [PE1-mpls] lsp-trigger all [PE1-mpls] quit [PE1] mpls ldp [PE1-mpls-ldp] quit # 在骨干网的接口上启动MPLS和LDP。 [PE1] interface GigabitEthernet 2/0/0 [PE1-GigabitEthernet 2/0/0] mpls [PE1-GigabitEthernet 2/0/0] mpls ldp [PE1-GigabitEthernet 2/0/0] quit # 配置PE2。 # 在系统上启动MPLS和LDP,指定LSR-ID为与PE2相连的接口的地址,并触发建立LSP。 [PE2] mpls lsr-id 3.3.3.9 [PE2] mpls [PE2-mpls] lsp-trigger all [PE2-mpls] quit [PE2] mpls ldp [PE2-mpls-ldp] quit # 在骨干网的接口上启动MPLS和LDP。 [PE2] interface GigabitEthernet 1/0/0 [PE2-GigabitEthernet1/0/0] mpls [PE2-GigabitEthernet1/0/0] mpls ldp [PE2-GigabitEthernet1/0/0] quit
上述配置完成后,PE1与PE2之间应能建立LDP会话,执行display mpls ldp session命令可以看到显示结果中Status项为“Operational”。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
以PE1的显示为例:
<PE1> display mpls ldp session
LDP Session(s) in Public Network
--------------------------------------------------------------------------
Peer-ID Status LAM SsnRole SsnAge KA-Sent/Rcv
--------------------------------------------------------------------------
3.3.3.9:0 Operational DU Passive 000:00:01 5/5
--------------------------------------------------------------------------
LAM : Label Advertisement Mode SsnAge Unit : DDD:HH:MM
<PE1> display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 GE2/0/0/InLoop0
2 3.3.3.9/32 NULL/3 110.1.1.2 -------/GE2/0/0
*3 11.1.1.0/24 Liberal
4 50.1.1.0/24 3/NULL 50.1.1.2 GE2/0/0/GE1/0/0
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
步骤 4 配置CE3、CE1与PE1之间的IGP路由,并使CE3与PE1的LoopBack1接口地址可以互通。
# 在CE3上配置: [CE3] ospf 10 [CE3-ospf-10] area 0 [CE3-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255 [CE3-ospf-10-area-0.0.0.0] network 6.6.6.6 0.0.0.0 [CE3-ospf-10-area-0.0.0.0] quit [CE3-ospf-10] quit # 在CE1上配置: [CE1] ospf 10 [CE1-ospf-10] area 0 [CE1-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255 [CE1-ospf-10-area-0.0.0.0] network 50.1.1.0 0.0.0.255 [CE1-ospf-10-area-0.0.0.0] quit [CE1-ospf-10] quit # 在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] interface loopback 1 [PE1-LoopBack1] ip binding vpn-instance vpn2 [PE1-LoopBack1] ip address 5.5.5.5 32 [PE1] ospf 10 vpn-instance vpn2 [PE1-ospf-10] area 0 [PE1-ospf-10-area-0.0.0.0] network 50.1.1.0 0.0.0.255 [PE1-ospf-10-area-0.0.0.0] network 5.5.5.5 0.0.0.0 [PE1-ospf-10-area-0.0.0.0] quit [PE1-ospf-10] quit
到此,在CE3上已经可以ping通PE1的逻辑接口Loopback1的IP地址5.5.5.5。
注意:如果从PE1上ping CE3的逻辑接口Loopback1,需要在ping命令中指定源接口和-vpn-instance vpn2。例如:
<PE1> ping -a 5.5.5.5 -vpn-instance vpn2 6.6.6.6
PING 6.6.6.6: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.6: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 6.6.6.6: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 6.6.6.6: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 6.6.6.6: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 6.6.6.6: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 6.6.6.6 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms
步骤 5 配置CE3与PE1之间的GRE隧道
# 在CE3上配置: [CE3] interface loopback1 [CE3-loopback1] target-board 5 [CE3-loopback1] binding tunnel gre [CE3-loopback1] quit [CE3] interface tunnel5/0/1 [CE3-Tunnel5/0/1] ip address 2.2.2.1 255.255.255.0 [CE3-Tunnel5/0/1] source loopback 1 [CE3-Tunnel5/0/1] destination 5.5.5.5 # 在PE1上配置: [PE1] interface loopback1 [PE1-loopback1] target-board 5 [PE1-loopback1] binding tunnel gre [PE1-loopback1] quit [PE1] interface tunnel5/0/1 [PE1-Tunnel5/0/1] ip address 2.2.2.2 255.255.255.0 [PE1-Tunnel5/0/1] source loopback 1 [PE1-Tunnel5/0/1] destination vpn-instance vpn2 6.6.6.6
说明
从PE1到CE3的GRE隧道要穿过VPN2,因此在配置隧道的目的地址时需要指定目的地址是属于VPN2的。
上述配置完成后,CE3与PE1之间的GRE隧道已建立,在CE3上可以ping通PE1的隧道接口Tunnel5/0/1的IP地址2.2.2.2。在隧道两端执行命令display interface tunnel,可以看到隧道接口的状态为UP。
以PE1为例:
<PE1> display interface tunnel 5/0/1
Tunnel5/0/1 current state : UP
Line protocol current state : UP
Description : HUAWEI, Quidway Series, Tunnel5/0/1 Interface, Route Port
The Maximum Transmit Unit is 1500 bytes
Internet Address is 2.2.2.2/24
Encapsulation is TUNNEL, loopback not set
Tunnel source 5.5.5.5 (LoopBack1), destination 6.6.6.6
Tunnel protocol/transport GRE/IP , key disabled
Checksumming of packets disabled
QoS max-bandwidth : 64 Kbps
Output queue : (Urgent queue : Size/Length/Discards) 0/50/0
Output queue : (Protocol queue : Size/Length/Discards) 0/1000/0
Output queue : (FIFO queuing : Size/Length/Discards) 0/75/0
5 minutes input rate 0 bytes/sec, 0 packets/sec
5 minutes output rate 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes 0 input error 0 packets output, 0 bytes 0 output error
步骤 6 在PE1创建VPN实例vpn1并与GRE隧道绑定
# 配置vpn1,指定RD和VPN-Target。在本PE上配置的VPN-Target应与在PE对等体上配置的VPN-Target对应,以便同一VPN的各Site可互访。
[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] interface tunnel5/0/1 [PE1-Tunnel5/0/1] ip binding vpn-instance vpn1 [PE1-Tunnel5/0/1] ip address 2.2.2.2 255.255.255.0
步骤 7 在PE2创建VPN实例vpn1并与CE连接的接口绑定
# 配置vpn1,指定RD和VPN-Target。在本PE上配置的VPN-Target应与在PE对等体上配置的VPN-Target对应,以便同一VPN的各Site可互访。
[PE2]ip vpn-instance vpn1 [PE2-vpn-instance-vpn1] route-distinguisher 200:1 [PE2-vpn-instance-vpn1] vpn-target 111:1 export-extcommunity [PE2-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity [PE2-vpn-instance-vpn1] quit [PE2] interface GigabitEthernet 2/0/0 [PE2-GigabitEthernet2/0/0] ip binding vpn-instance vpn1 [PE2-GigabitEthernet2/0/0] ip address 11.1.1.2 255.255.255.0
步骤 8 配置CE3与CE2之间的穿过GRE隧道的IGP路由。
# 在CE3上配置: [CE3] isis 10 [CE3-isis-10] network-entity 10.0000.0000.0001.00 [CE3-isis-10] quit [CE3] interface gigabitethernet1/0/0 [CE3-GigabitEthernet1/0/0] isis enable 10 [CE3-GigabitEthernet1/0/0] quit [CE3] interface tunnel5/0/1 [CE3-Tunnel5/0/1] isis enable 10 [CE3-Tunnel5/0/1] quit # 在PE1上配置: [PE1] isis 10 vpn-instance vpn1 [PE1-isis-10] network-entity 10.0000.0000.0002.00 [PE1-isis-10] quit [PE1] interface tunnel5/0/1 [PE1-Tunnel5/0/1] isis enable 10 [PE1-Tunnel5/0/1] quit # 在CE2上配置: [CE2] isis 10 [CE2-isis-10] network-entity 10.0000.0000.0004.00 [CE2-isis-10] quit [CE2] interface gigabitethernet1/0/0 [CE2-GigabitEthernet1/0/0] isis enable 10 [CE2-GigabitEthernet1/0/0] quit [CE2] interface gigabitethernet2/0/0 [CE2-GigabitEthernet2/0/0] isis enable 10 [CE2-GigabitEthernet2/0/0] quit # 在PE2上配置: [PE2] isis 10 vpn-instance vpn1 [PE2-isis-10] network-entity 10.0000.0000.0003.00 [PE2-isis-10] quit [PE2]interface gigabitethernet2/0/0 [PE2-GigabitEthernet2/0/0] isis enable 10 [PE2-GigabitEthernet2/0/0] quit
步骤 9 在PE之间建立MP-IBGP对等体关系。
# 配置PE1。
# 指定对端PE为IBGP对等体,使用loopback接口建立IBGP连接。 [PE1] bgp 100 [PE1-bgp] peer 3.3.3.9 as-number 100 [PE1-bgp] peer 3.3.3.9 connect-interface loopback 0 # 进入VPN的VPNV4地址簇视图,并启动对等体交换VPN-IPv4路由信息。 [PE1-bgp] ipv4-family vpnv4 [PE1-bgp-af-vpnv4] peer 3.3.3.9 enable [PE1-bgp-af-vpnv4] quit # 进入BGP的vpn1实例,引入直连路由和IS-IS路由。 [PE1-bgp] ipv4-family vpn-instance vpn1 [PE1-bgp-vpn1] import-route direct [PE1-bgp-vpn1] import-route isis 10 [PE1-bgp-vpn1] quit # 配置PE2。 # 指定对端PE为IBGP对等体,使用loopback接口建立IBGP连接。 [PE2] bgp 100 [PE2-bgp] peer 1.1.1.9 as-number 100 [PE2-bgp] peer 1.1.1.9 connect-interface loopback 0 # 进入VPN的VPNV4地址簇视图,并启动对等体交换VPN-IPv4路由信息。 [PE2-bgp] ipv4-family vpnv4 [PE2-bgp-af-vpnv4] peer 1.1.1.9 enable [PE2-bgp-af-vpnv4] quit # 进入BGP的vpn1实例,引入直连路由和IS-IS路由。 [PE2-bgp] ipv4-family vpn-instance vpn1 [PE2-bgp-vpn1] import-route direct [PE2-bgp-vpn1] import-route isis 10 [PE2-bgp-vpn1] quit
配置完成后,在PE路由器上执行display bgp peer或display bgp vpnv4 all peer命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
以PE1为例:
<PE1> display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.9 4 100 2 6 0 00:00:12 Established 0
步骤 10 在PE的IS-IS路由中引入BGP路由
# 配置PE1。
[PE1] isis 10 [PE1-isis-10] import-route bgp # 配置PE1。 [PE2] isis 10 [PE2-isis-10] import-route bgp
验证结果
如果配置成功,则:
从CE3上可以ping通CE2上连接PC2的接口的IP地址。
以CE3的显示为例:
<CE3> ping 31.1.1.2
PING 31.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 31.1.1.2: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 31.1.1.2: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 31.1.1.2: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 31.1.1.2: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 31.1.1.2: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 31.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms