我需要在我公司的 droplet 和使用其他提供商的合作伙伴公司拥有的网络之间设置 IPsec VPN。工具:
- Debian(我的 droplet)的 IP 地址为 eg
169.22.231.13
,本地地址为 eg10.22.0.50
- IPsec-Tools 和 Racoon(Racoon 本身不是必需的 - LibreSwan 或 StrongSwan 也可以接受,尽管我觉得这可能不是问题)
- 模式 = 隧道
- ESP
我创建了一个测试环境,以便尝试该任务的工具和可行性,它由 2 个 Droplet 组成,我根据上述要点设法连接它们,并设法实现了我想要的结果(同时用我自己的 Droplet 进行测试)。
谈到真实案例——这是远程服务器(由合作伙伴公司拥有)的描述:
- 入口点有防火墙(我的 droplet 已列入白名单)- 例如公共 IP
153.132.142.123
- 我的 droplet 上运行的服务需要连接到这个公共 IP 后面的服务,例如内部 IP
10.100.232.11
- 远程网络已在其网络接口上映射了我的内部地址
我已经设法在我的 droplet 和远程网络之间建立了 VPN 隧道,具体如下:
racoonctl show-sa ipsec
显示隧道的进出方向,esp mode=tunnel
以及state=mature
racoonctl -l show-sa isakmp
显示正确的目的地,并且Phase 2 = 1
日志还报告连接已成功建立
但是,当我尝试 ping 该10.100.232.11
地址时,它挂起了,当合作伙伴服务 ping 我的内网 IP(我在安全关联数据库中映射的 IP)时,他们告诉我这个 IP 无法访问。我没有看到 ESP 数据包传出。
我有以下怀疑:
- 我和/或合作伙伴的网络正在使用 NAT,而我们都将我们的 VPN 配置为 NAT Traversal = OFF;
- DigitalOcean 不允许其他提供商使用 IPsec VPN,因为有些内部网络规则是为了保护我们的 droplet。有人能给我指出正确的方向吗?如果有人能与我分享有关这个主题的知识,我将不胜感激。
非常感谢您的帮助!