DMVPN 是怎么工作的
DMVPN 用一条 mGRE 隧道接口承载多个分支:接口本身只有本端地址,对端地址靠 NHRP 动态解析,因此分支不需要在 Hub 上逐条配置隧道也能上线。Hub 位于中心,负责下发路由或在隧道上跑 EIGRP/OSPF/BGP;阶段二起支持分支之间直接建隧道,避免分支互访流量绕行 Hub。它的定位是「分支数量多、公网地址不固定、希望少改配置」的场景,隧道本身不加密,安全性要靠叠加 IPsec 提供。
基本信息
| 隧道类型 | mGRE(multipoint GRE),一个接口对多个对端 |
|---|---|
| 地址解析 | NHRP,分支注册到 Hub 并相互查询 |
| 路由方式 | Hub 为中心跑 EIGRP/OSPF/BGP,或 Hub 只下发缺省 |
| 阶段划分 | 阶段一 Hub-Spoke、阶段二分支直连、阶段三缩短建链时间 |
| 安全 | 常配 IPsec profile 保护隧道流量 |
典型使用场景
- 企业总部与大量分支互联:分支使用动态公网地址也能上线
- 分支之间需要互访:阶段二让分支直连,减少 Hub 转发压力
- 备份链路:分支经 4G/5G 临时接入也能注册到 Hub
- 网点扩展:新增分支只需在分支侧配置,Hub 侧无需逐条增删
- 替代全互联专线:用公网加隧道降低成本
Hub 侧骨架
Hub 侧骨架
interface Tunnel0
ip address 172.16.0.1 255.255.255.0 # 隧道网段,分支从此段分配地址
tunnel source GigabitEthernet0/0 # 出口物理口
tunnel mode gre multipoint # mGRE 关键:一对多
tunnel key 100 # 两端必须一致
ip nhrp network-id 1 # NHRP 网络标识
ip nhrp map multicast dynamic # 接收分支的组播注册
!
show dmvpn # 查看各分支的注册与状态show dmvpn 关键列
| 列 | 含义 | 异常表现 |
|---|---|---|
| Peer NBMA Addr | 分支的公网地址 | 为空说明分支未注册 |
| State | NHRP 映射状态 | I 为无效,需查隧道与密钥 |
| Uptime | 映射保持时长 | 频繁归零说明链路抖动或 NHRP 反复重建 |
| Type | 动态或静态映射 | 应为动态注册得到的条目 |
阶段一 Hub 与分支之间只走隧道,分支互访必须绕 Hub;阶段二允许分支通过 NHRP 直接建隧道。阶段选择会影响 Hub 的带宽占用,规划时要按分支互访量决定。
DMVPN 的 mGRE 隧道不提供加密,仅提供封装;生产环境应叠加 IPsec profile,否则分支间流量在公网上是明文的。