一、GRE隧道基础概念
1.1 什么是GRE隧道?
GRE(Generic Routing Encapsulation,通用路由封装)是一种隧道封装技术,本质是在一种网络协议中封装另一种网络协议报文,相当于在现有网络连接上建立一条"虚拟专线"。**MGRE(多点通用路由封装)**是在标准GRE基础上发展的点到多点技术,通常与NHRP协议结合使用,是华为DSVPN解决方案的核心组件。它允许一个Tunnel接口与多个对端建立连接,极大地简化了大规模分支网络的配置与维护。
1.2 工作原理
[原始IP包] → [添加GRE头部] → [封装新IP头部] → 通过公网传输 → [解封装] → [原始IP包]
核心差异对比
| 特性 | GRE (点对点) | MGRE (多点) |
|---|---|---|
| 拓扑结构 | 仅支持两个节点间连接 | 支持单中心对多分支的动态网状连接 |
| 配置目的地址 | 必须手工指定 destination |
无需指定,目的地址由NHRP协议动态解析 |
| 接口数量 | N个分支需配置N个Tunnel接口 | 无论多少分支,仅需1个Tunnel接口 |
| 适用场景 | 固定的点对点链路 | 动态IP的分支机构互联 (DSVPN) |
二、基本点对点GRE隧道实验
2.1 实验拓扑
PC1(192.168.1.1) -- Router1 -- Internet -- Router2 -- PC2(192.168.2.1)
2.2 配置步骤
Router1配置:
sys
sysname R1
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
interface GigabitEthernet0/0/1
ip address 12.1.1.1 255.255.255.0
interface Tunnel0/0/0
ip address 10.1.1.1 255.255.255.0
tunnel-protocol gre
source 12.1.1.1
destination 12.1.1.2
gre key 123456
ip route-static 192.168.2.0 255.255.255.0 Tunnel0/0/0
Router2配置:
sys
sysname R2
interface GigabitEthernet0/0/0
ip address 192.168.2.254 255.255.255.0
interface GigabitEthernet0/0/1
ip address 12.1.1.2 255.255.255.0
interface Tunnel0/0/0
ip address 10.1.1.2 255.255.255.0
tunnel-protocol gre
source 12.1.1.2
destination 12.1.1.1
gre key 123456
ip route-static 192.168.1.0 255.255.255.0 Tunnel0/0/0
PC配置:
- PC1: IP 192.168.1.1/24, 网关 192.168.1.254
- PC2: IP 192.168.2.1/24, 网关 192.168.2.254
三、MGRE多点GRE隧道详解
3.1 什么是MGRE?
**MGRE(Multipoint GRE)**是一种基于GRE技术的多点到多点虚拟隧道协议,可以在IP网络上创建一个虚拟的多点连接,使多个站点之间可以直接通信。
3.2 主要特点和优势
- 多点连接:一个隧道接口可以连接多个对端
- 简化配置:不需要为每个对端单独配置隧道
- 动态发现:通过NHRP协议实现动态对端发现
- 适用于Hub-Spoke架构:适合企业分支互联场景
3.3 MGRE实验拓扑
R2
|
|
R1---Internet---R3
Hub Spoke Spoke
3.4 详细配置案例
关键组件
-
Hub (中心/总部):通常配置固定公网IP,作为NHRP服务器接收分支注册信息,并转发初始流量。
-
Spoke (分支):通常配置动态公网IP,主动向Hub注册自身的隧道IP与公网IP映射关系。
-
NHRP (下一跳解析协议):负责动态维护公网地址与隧道地址的映射表。当Spoke需要通信时,通过查询NHRP获取对端的真实公网地址,从而建立动态隧道。
基础配置逻辑
在华为设备上,配置mGRE需指定 p2mp模式且不配置目的地址。
-
Hub端关键配置:
interface Tunnel0/0/0
ip address 10.1.1.1 255.255.255.0
tunnel-protocol gre p2mp # 配置为多点GRE模式
source GigabitEthernet0/0/0 # 指定公网出接口
nhrp entry multicast dynamic # 允许动态接收分支组播注册 -
Spoke端关键配置:
interface Tunnel0/0/0
ip address 10.1.1.2 255.255.255.0
tunnel-protocol gre p2mp # 配置为多点GRE模式
source GigabitEthernet0/0/0
nhrp entry 10.1.1.1 1.1.1.1 register # 向Hub注册映射关系
网络规划:
- R1(Hub): 公网地址 12.1.1.1,私网地址 192.168.1.1
- R2(Spoke1): 公网地址 23.1.1.2,私网地址 192.168.2.1
- R3(Spoke2): 公网地址 34.1.1.3,私网地址 192.168.3.1
- Tunnel网络: 10.1.1.0/24
R1(Hub)配置:
sys
sysname R1
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 12.1.1.1 255.255.255.0
interface Tunnel0/0/0
ip address 10.1.1.1 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet0/0/1
nhrp shortcut
nhrp redirect
nhrp network-id 1
nhrp entry multicast dynamic
rip 1
network 10.0.0.0
network 192.168.1.0
R2(Spoke1)配置:
sys
sysname R2
interface GigabitEthernet0/0/0
ip address 192.168.2.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
interface Tunnel0/0/0
ip address 10.1.1.2 255.255.255.0 # 隧道接口虚拟地址
tunnel-protocol gre p2mp # GRE多点模式(MGRE)
source GigabitEthernet0/0/1
nhrp shortcut # 启用NHRP快捷方式,允许分支间直接通信
nhrp network-id 1 # NHRP网络标识符
nhrp entry 10.1.1.1 12.1.1.1 register # 注册到NHS
nhrp entry multicast dynamic # 允许组播动态注册
rip 1
network 10.0.0.0
network 192.168.2.0
R3(Spoke2)配置:
sys
sysname R3
interface GigabitEthernet0/0/0
ip address 192.168.3.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 34.1.1.3 255.255.255.0
interface Tunnel0/0/0
ip address 10.1.1.3 255.255.255.0 # 隧道接口虚拟地址
tunnel-protocol gre p2mp # GRE多点模式(MGRE)
source GigabitEthernet0/0/1
nhrp shortcut # 启用NHRP快捷方式,允许分支间直接通信
nhrp network-id 1 # NHRP网络标识符
nhrp entry 10.1.1.1 12.1.1.1 register # 注册到NHS
nhrp entry multicast dynamic # 允许组播动态注册
rip 1
network 10.0.0.0
network 192.168.3.0
3.5 关键配置说明
1. Tunnel接口配置:
tunnel-protocol gre p2mp: 配置为多点GRE模式source: 指定隧道源接口nhrp network-id: 配置NHRP网络标识
2. NHRP配置:
nhrp nhs: 配置Hub站点的NBMA地址nhrp shortcut: 启用NHRP快捷方式,允许Spoke之间直接通信nhrp redirect: Hub向Spoke发送重定向消息
3. 路由协议:
- 使用RIP协议实现私网路由互通
- 需要关闭水平分割:
undo split-horizon
四、GRE over IPSec配置
4.1 为什么需要GRE over IPSec?
- GRE提供隧道封装功能
- IPSec提供加密和认证功能
- 两者结合实现安全的VPN隧道
4.2 配置要点
# 配置ACL
acl number 3000
rule 5 permit gre source 12.1.1.1 0 destination 23.1.1.2 0
# 配置IPSec
ipsec proposal prop1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-256
ike proposal 1
encryption-algorithm aes-256
dh group14
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
ike peer peer1
pre-shared-key cipher Huawei@123
ike-proposal 1
remote-address 23.1.1.2
ipsec policy policy1 10 isakmp
security acl 3000
proposal prop1
ike-peer peer1
五、验证和排错
5.1 验证命令
# 查看隧道接口状态
display interface Tunnel0/0/0
# 查看NHRP映射表
display nhrp peer all
# 查看路由表
display ip routing-table
# 测试连通性
ping -a 192.168.1.1 192.168.2.1
5.2 常见问题排查
- 隧道无法建立:检查公网路由、源/目的地址配置
- NHRP注册失败:检查NHRP配置、网络标识
- 路由不通:检查路由协议配置、水平分割设置
- MTU问题:调整隧道接口MTU和TCP MSS
六、实验注意事项
- MTU/MSS优化:必须调整隧道接口MTU和TCP MSS,避免分片问题
- Keepalive机制:配置链路检测机制,确保链路故障及时感知
- NAT穿越:在复杂网络环境中启用NAT-T
- 安全策略:配置精确的安全策略定义,避免过于宽松或严格的策略