如题,我有一客户物理机房的数据中心部分业务迁移至云上运行,迁移之前想先搭建 IPsec 通道,然后进行业务数据迁移。
数据中心出口设备是华为的USG系列,按照阿里云的推荐方式,先创建专有网络配置私网网段并绑定EIP然后与线下物理主机建立VPN通道,再传送数据。
但在实际操作中,因云上的专有网络的公网EIP是基于NAT映射到ECS的私有网卡上的,这样对于使用了NAT技术的主机来说,针对IPsec的VPN就不能使用AH协议,而只能使用ESP协议并修改注册表开启NAT-T技术通过UDP的4500端口进行IPsec隧道的连接。
如此一来,云上的网络配置就不能选择专有网络了,尝试使用win2003及win2008 win2012 都不能在NAT后面进行有效的IPsec连接。主要表现在第二阶段IPsec协商上面,持续报“加密的数据流不匹配”错误,IKE秘钥协商阶段没有问题。但同样的IPsec配置在经典网络中(ECS网卡直接使用公网IP)建立IPsec隧道没有任何问题。后来查阅微软官方文档,微软在很早就明确说明在NAT后面进行IPsec隧道的建立会发送不可预料的错误。(support.microsoft.com/zh-cn/kb/926179)
基于以上原因,考虑使用经典网络来建立IPsec隧道。我的思路如下:
在同一账号同一区域下创建多个ECS 但仅一台ECS配置公网IP以建立IPsec隧道。其他ECS主机通过私网连接到出口ECS(同一账号同一区域下的ECS私网互通)并通过出口ECS的IPsec隧道与线下的物理主机进行通信。其他非出口ECS主机仅添加一条到出口ECS的IPsec隧道路由即可
拓扑如下:
理论上来说,这样配置没有问题。但我并不清楚阿里云的基础网络架构。而且在注意事项中也说明私网地址不能随意更改,并且在创建的ECS中,每个ECS的私网网关都不一样。虽然各个虚拟主机间都能相互ping通,但如果添加了类似 192.168.1.0(IPsec对端子网) mask 255.255.255.0 10.0.0.254 这样的隧道路由,或者将其他ECS主机的私网网关改成出口ECS私网地址,私网内部主机相互是否还能ping通及VPN数据是否能走IPsec隧道?
还有NAT配置,如果出口ECS配置开启了NAT功能。内部其他ECS能否通过修改私网IP网关为出口ECS私网地址从而实现NAT映射及访问公网?
抑或是还有其他的解决办法,欢迎大家交流讨论~!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。