我已经使用 ubuntu 14.04 和 openswan 在 azure 192.168.0.5 上设置了 VPN。我在同一个子网 192.168.0.6(azure 上只有加密域)中的 openswan 后面还有另一个盒子 ubuntuapp。右侧有加密域 172.31.20.10 和 172.31.20.12。
虽然我可以从 192.168.0.6 Azure 端连接到 8080 上的所有 172.31.. 加密域。但我无法将 172.31. 网络连接到 192.168.0.6:80,即使 172.31.20.10 和 172.31.20.12 都打开了 TCP 80 端口。
192.168.0.6 --> 172.31.20.10:8080 [yes]
192.168.0.6 --> 172.31.20.12:8080 [yes]
连接到 Azure
172.31.20.10 --> 192.168.0.6:80 [no]
172.31.20.12 --> 192.168.0.6:80 [no]
我知道默认情况下,由于默认规则,保存 vnet 上的框可以相互访问。ubuntuapp 和 openswan 之间是否应该有特定的规则,反之亦然?如果是,请告诉我。
编辑
通过一些 tcpdump 搜索,我发现 openswan 框似乎不知道将数据包发送到哪里
14:52:27.623074 IP 192.168.0.5.65000 > 192.168.0.6.65001: Flags [R], seq 0, win 0, length 0
14:52:27.623142 IP 192.168.0.5.65000 > 192.168.0.6.65001: Flags [R], seq 0, win 0, length 0
14:52:32.629621 ARP, Request who-has 192.168.0.6 tell 192.168.0.5, length 28
14:53:36.683792 IP 192.168.0.5.65000 > 192.168.0.6.65001: Flags [R], seq 0, win 0, length 0
14:53:36.683865 IP 192.168.0.5.65000 > 192.168.0.6.65001: Flags [R], seq 0, win 0, length 0
但是从 192.168.0.5 ping 或 telnet 到 192.168.0.6 可以正常工作。
提前致谢
答案1
据我所知,除了 IP 转发和 UDR 之外,您一切都正确。以下文章将帮助您进行配置和一般理解。
使用 PowerShell 创建用户定义路由 (UDR):
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-udr-arm-ps
一旦启用 IP 转发,您必须明确告诉 Azure 下一跳是什么,否则,它将尝试使用 Azure 标准网络网关到达所需的位置。
我相信您的虚拟 VPN 设备必须位于另一个子网中才能使其正常工作。
答案2
唯一缺少的是 vyos vpn 配置上的 nat 遍历
set vpn ipsec nat-traversal enable
这已添加到配置中,现在一切正常。