华为云虚拟专用网络VPN实战:VPN网关创建、站点连接与路由互通配置
一、背景:为什么还需要站点到站点VPN
把云上的虚拟私有云(VPC)和本地机房、办公网或其他云上VPC打通时,常见选择是专线或虚拟专用网络(Virtual Private Network,简称VPN)。专线时延更稳定,但开通周期和成本更高;VPN基于公网加密隧道,开通快、改配置也快,适合测试、备份通道,或对时延不那么敏感的生产互通。
华为云VPN提供站点到站点(Site-to-Site)连接:云上创建VPN网关,对端准备一个兼容的IPsec设备或服务,双方对齐IKE、IPsec参数后建立隧道,再通过路由把指定网段互相发布。本文按“准备工作 → 创建VPN网关 → 创建远端网关与连接 → 配置路由并验证 → 参数对齐与排障”的顺序实操一遍。菜单名称以控制台当前版本为准。
二、核心概念
VPN网关:云上隧道的本端入口,需要绑定弹性公网地址,并关联本端VPC。一个网关下可以建多条连接,但带宽、可用区和规格要在创建时选好。
远端网关:对端设备在公网上的身份,通常填写对端的公网地址和标识。对端可以是本地防火墙、路由器,或其他云的VPN网关。
VPN连接:本端网关与远端网关之间的一条IPsec隧道。连接里要配置IKE策略、IPsec策略、预共享密钥(PSK)以及感兴趣的流量(本端网段和对端网段)。
路由发布:隧道通了不等于主机能互访。还需要在本端VPC路由表(以及对端设备)中,把对端网段下一跳指向这条VPN连接。
IKE与IPsec:IKE负责协商和认证,IPsec负责加密传输。两端的加密算法、认证算法、DH组、生存周期必须一致,否则连接会一直停在协商失败。
三、准备工作
开始前先在两边对齐这些信息,建议写成一张表,避免来回改参数:
- 本端VPC及需要互通的网段,例如
<本端业务网段>,确认与对端网段不重叠; - 对端需要互通的网段,例如
<对端业务网段>; - 对端设备的公网地址,记为
<对端网关地址>; - 预共享密钥,足够长且只通过安全渠道发给对端,不要写进代码仓库或公开文档;
- IKE版本(建议IKEv2)、加密算法、认证算法、DH组、生存周期;
- 本端是否已有可用的弹性公网地址,以及VPN网关所需的带宽规格。
网段重叠是最常见的失败原因之一。如果两边都用了默认的私网规划,先在其中一侧做网段迁移或用NAT,再建立VPN,不要指望靠“先连上再改网段”蒙混过去。
本端安全组、网络ACL也要提前放开:允许来自对端网段的业务端口,以及VPN协商和封装所需的流量。具体放行项以产品文档当前要求为准,常见是UDP 500、UDP 4500以及ESP封装。不要把安全组改成对全部地址完全放开。
四、创建VPN网关
进入虚拟专用网络控制台:
- 选择与本端VPC相同的区域;
- 创建VPN网关,关联目标VPC和本端子网(按控制台提示选择接入子网);
- 绑定弹性公网地址,作为本端隧道入口,后续把该地址提供给对端;
- 选择带宽和网关规格,测试环境可选较低规格,生产按峰值流量和是否需要双可用区高可用来选;
- 按需添加名称与标签,名称建议带环境和用途,例如 vpn-gw-prod-office;
- 创建完成后记录本端网关的公网地址,记为
<本端网关地址>,以及网关ID。
不要把网关地址和预共享密钥一起贴到公开渠道。给对端的配置说明里,密钥应单独传递。
五、创建远端网关与VPN连接
在同一控制台创建远端网关:
- 名称与本端对应,例如 remote-office-fw;
- 标识类型一般选IP地址,标识值填
<对端网关地址>; - 保存后,基于本端VPN网关和该远端网关创建连接。
创建连接时重点核对以下参数:
认证:使用预共享密钥,两端必须完全一致,包括有无首尾空格。
IKE策略:版本、加密算法(例如AES-256)、认证算法(例如SHA2-256)、DH组(例如Group 14或更高)、SA生存周期。不要一端开IKEv1、另一端开IKEv2。
IPsec策略:加密与认证算法、PFS(完美向前保密)所用的DH组、生存周期,同样必须两端一致。若对端关闭了PFS,本端也要关闭,否则流量阶段会反复重建失败。
感兴趣流量:本端网段填 <本端业务网段>,对端网段填 <对端业务网段>。若有多个网段,按控制台支持的方式添加多条选择器,或拆成多条连接,避免漏网段导致“隧道是绿的,个别网段不通”。
DPD(对等体检测):建议开启,以便对端宕机或公网中断后能更快发现并重协商,而不是一直维持假通状态。
保存后,连接状态通常会从“创建中”变为“协商中”,成功后再变为“已连接”或类似的正常状态。如果长时间停在协商中,先不要改路由,优先对参数表。
六、配置路由并验证互通
隧道状态正常后,配置本端路由:
- 打开本端VPC的路由表;
- 添加目的地址为
<对端业务网段>的路由,下一跳类型选择VPN连接,下一跳对象选中刚刚建好的连接; - 若业务运行在扩展网卡或其他子网,确认这些子网关联的是这张已改过的路由表;
- 对端设备同样要添加目的地址为
<本端业务网段>、下一跳指向隧道的路由。
验证建议分三步,不要一上来就测应用:
- 在控制台查看连接状态、入方向和出方向流量是否开始增长;
- 从本端弹性云服务器对对端地址做连通性探测(例如对
<对端测试地址>做ping或端口探测,以对端是否放行为准); - 再测业务端口,例如数据库、API或文件共享。若icmp通而业务不通,优先查安全组、网络ACL和对端防火墙,而不是重建隧道。
需要记录测试命令时,用占位符,不要把真实公网地址或内网地址写进对外文档。例如:
ping <对端测试地址>
ip route show
七、参数对齐、监控与排障
排障时按“先状态、再参数、后路由、最后安全组”的顺序,能少走很多弯路。
一直协商失败:把两端IKE版本、加密、认证、DH组、生存周期、PSK打印出来逐项对比。对端如果是硬件防火墙,注意厂商对“生存周期单位是秒还是分钟”、“是否强制PFS”的默认值。PSK重新粘贴一遍,排除隐藏空格和换行。
已连接但不通:检查VPC路由、对端路由、网段是否写反、是否漏了某个子网。用本端云服务器的路由表确认去往对端网段的下一跳是否指向VPN,而不是指向默认公网出口。
间歇性中断:查看公网质量、带宽是否打满、DPD超时是否过短、SA到期后是否成功重协商。必要时把生存周期调整到两端都支持的值,避免一边提前过期。
只能单边访问:多半是回程路由缺失,或安全组只放行了入方向。两边都要把来源网段和回程网段一起放开。
建议把VPN连接状态和流量接入云监控,配置隧道中断告警,通知到值班通道。变更IKE或IPsec参数属于中断型操作,生产变更要选维护窗口,并准备回退到上一组已知可用的参数。
八、小结
站点到站点VPN的关键不是把网关“创建出来”,而是三件事同时正确:两端密码学参数完全一致、网段不重叠、路由和安全组把回程也打通。先用一张参数表把本端网关地址、对端网关地址、网段和算法对齐,再创建网关与连接,最后验证状态和业务探测,这样比反复删建隧道更省时间。
生产环境还要考虑:密钥轮换、双隧道或主备通道、带宽预留,以及把VPN当作专线备份而不是唯一通道时的切换演练。参数和地址只放在内部变更单里,不要出现在公开博客或代码仓库中。
- 点赞
- 收藏
- 关注作者
评论(0)