我已经使用 Windows Server 2012 R2 上的 RRAS 服务设置了站点到站点 VPN。我们将这台计算机称为 RRAS 计算机。RRAS 计算机有两个网络适配器。一个是私有网络适配器 (192.168.200.x),另一个可从 Internet 访问,但有防火墙。我们的网络管理员打开了所有必要的端口,它作为 Azure VPN 网关连接工作。
我的内部地址空间设置正确,当我从虚拟机执行 tracert 时,我可以看到它被路由。
网关连接后,我可以看到站点之间的流量。从本地 RRAS 机器,我可以毫无问题地访问初始化 VPN 连接(以及安装 RRAS 的位置)的虚拟机。我可以直接 ping 和使用 RDP,没有任何问题。
我可以从虚拟机(通过 VPN 连接到虚拟网络)访问 RRAS 计算机的另一个网络适配器(恰好是 192.168.200.33),但我无法访问 192.168.200.x 网络上的任何其他计算机。看起来数据包没有被路由。
总结一下。我遇到的问题是,我无法访问其他本地计算机,但只能访问连接到 RRAS 机器的一个网络适配器。
我该怎么做才能解决这个问题?有人有设置这种网络的经验吗?
答案1
原因是数据包被正确地路由到内部机器,但这些机器不知道将其答案发送回 Azure 客户端的位置。
是的,没错。但这并不意味着你必须在每台机器上配置路由。我刚刚遇到了完全相同的问题,我是这样解决的:
环境:
1 个 Azure 订阅,具有 1 个 VNet 和 1 个动态 VPN 网关。
路由器后面有 1 个 RRAS 服务器,将 IPSEC 端口路由到 RRAS 服务器(我知道,设置不正确,Microsoft 不支持,但如果您执行正确的端口转发,它仍然有效)。
所有本地机器上的所有默认网关都设置为路由器,而不是 RRAS 服务器。
情况: 和你完全一样。VPN 已设置并连接。从 RRAS 服务器连接到 Azure 计算机有效,从 Azure 计算机连接到 RRAS IP 也有效。从另一台本地计算机连接到 Azure 计算机以及从 Azure 计算机连接到另一台本地计算机无效。
解决: 正如您自己所说,本地计算机不知道如何连接到 Azure 子网。但我没有在所有本地计算机上配置此静态路由,而是在路由器上仅创建了 1 个静态路由,将 Azure 子网指向我的 RRAS 服务器。神奇的是,从所有本地计算机到 Azure 以及反之亦然的所有连接都开始顺利运行。
当然,最顺利的解决方案是使用您的默认网关路由器连接到 Azure 网络,因为这可以解决“我的正常默认网关不知道 Azure”的问题。
答案2
我找到了问题所在。我在 VPN 服务器上正确设置了静态路由,但我没有意识到的是,我还必须在 VPN Azure 客户端尝试访问的所有本地计算机上设置静态路由。
原因是数据包被正确地路由到内部机器,但这些机器不知道将其答案发送回 Azure 客户端的位置。
这是我必须在所有本地机器上设置的示例路由:
route -p ADD 10.10.12.0 MASK 255.255.252.0 [vpnserverIP] METRIC 100
在哪里
10.10.12.0/255.255.252.0 是我的 Azure 虚拟网络,
[vpnserverIP] 是 VPN 服务器的 IP 地址,在本例中是所有本地机器的网关。
答案3
您实际上应该做的是将其添加为网关上的静态路由,而不是在每个服务器上进行配置。