【问题标题】:Question concerning forward traffic on Azure Virtual Networks有关 Azure 虚拟网络上的转发流量的问题
【发布时间】:2020-05-25 18:03:26
【问题描述】:

我在 Azure 云平台中遇到了一个路由问题,需要通过另一个 vnet 和两个 VPN 隧道将流量从一个 vnet 路由到另一个 vnet。

以下是设置说明: 我确实有两个 Azure 虚拟网络(VNET1 和 VNET2),每个都有自己的基于路由的 Azure VPN 网关和一个通过 IPsec VPN 隧道连接到第一个 Azure 虚拟网络 VNTE1 的第 3 方虚拟网络 (VNET3)。以下是所有 3 个虚拟网络的地址空间。

  • VNET1 10.20.0.0/16(Azure vnet)
  • VNET2 10.30.0.0/16(Azure vnet)
  • VNET3 10.0.0.0/12(第 3 方 vnet)

这是我能做的:

  • VNET1 通过 IPsec VPN 隧道与 VNET3 连接。因此,我可以从 VNET1 10.20.10.5 中的 VM ping VNET3 10.0.0.1 中的 VM,他们可以 ping 我回来。
  • VNET1 通过 IPsec VPN 隧道与 VNET2 连接。因此,我可以从 VNET1 10.20.10.5 中的 VM ping VNET2 10.30.10.5 中的 VM

这是我不能做的:

  • 我无法从 VNET2 10.30.10.5 中的 VM ping VNET3 10.0.0.1 中的 VM。

到目前为止,我试图解决这个问题,但没有成功:

  • 我的假设是网络 VNET2 不知道如何将流量路由到网络 VNET3。因此,我创建了一个 Azure 路由表,并将该路由表分配给子网 10.30.10.0/24,并创建了所有到网络 10.0.0.0/12 的流量都应该路由到 VNTE2 的 VPN GateWay 的规则。我的期望是,一旦流量到达 GW,它将到达知道如何将其路由到 VNET3 的 VNET1。这不起作用。
  • 虽然我认为不需要,因为 VNET1 已经知道如何将流量路由到 VNET3,但我还为 10.0.0.0/12 创建了一个类似于上面的路由表。这也无济于事。

我是否错过了某处的路线,如果有,是哪条规则和在哪里?或者我什至需要一个虚拟机作为路由器? (希望不会)

【问题讨论】:

  • 如果可能的话,请您分享您的虚拟机网络接口的有效路由选项卡中的屏幕截图吗?
  • VNET1 和 VNET3 之间的 IPSec VPN 隧道是什么意思?与VNET2连接的VPN网关是不是同一个VNET1的网关?
  • 您还可以使用 Azure 网络观察程序 IP 流验证功能来测试您的配置 docs.microsoft.com/en-us/azure/network-watcher/…
  • 在您的第 3 方虚拟网络 (VNET3) 中,是否有任何从 VNet3 到 VNet2 的路由?
  • @IvanIgnatiev:我正在回答你的问题 1) 不,很遗憾,我不允许分享有效路线选项卡。但是,如果我转到 vm 并执行 >route PRINT,我在选项卡中看到的路线很奇怪,但我并没有看到所有路线。 2)是的,用于连接VNET3的VNET1的同一VPN GW也用于连接VNET2。

标签: azure azure-virtual-network azure-vpn vnet virtual-network


【解决方案1】:

我认为您的问题是 Azure 虚拟网关的限制:

使用这种机制通过基于策略的VPN设备连接的本地网络只能连接到Azure虚拟网络; 他们无法通过同一个 Azure VPN 网关传输到其他本地网络或虚拟网络。

https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps

因此,即使您使用同一个 VPN 网关来连接 VNET 3 和 VNET 2,根据设计,VNET 3 和 VNET 2 也无法通信。

要解决此问题,我建议使用对等互连。您的配置类似于经典的 Hub-Spoke 拓扑。您的 VNET1 是 Hub,VNET2 是 Spoke,VNET3 是一种“本地”。

无需更改 VNET1 和 VNET3 之间的配置。您需要在 VNET1 和 VNET2 之间以及向后建立对等互连并应用以下配置:

  • 集线器中的对等连接配置为允许网关中转
  • 将每个分支中的对等连接配置为使用远程网关
  • 所有对等连接连接配置为允许转发流量

https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/hybrid-networking/hub-spoke

在这种情况下,VNET3 将能够与 HUB (VNET1) 和所有辐条(VNET2 和任何其他连接到 VNET1)进行通信。当隧道启动时,VNET2 可以与 HUB (VNET1) 和本地 (VNET3) 通信。

警告: 如果没有 HUB 中的转发网关,辐条之间将无法相互通信,即,如果您添加 VNET4 并与 VNET1 对等,VNET4 将无法 ping VNET2 中的虚拟机。但是他们可以在没有任何额外设备的情况下与 HUB 和本地通信。

【讨论】:

  • 感谢伊万的回答。我已经尝试过对等互连,但它不起作用,因为 VNET1 和 VNET2 都有 VPN GW,并且只有当其中一个 VNET 具有 VPN GW 时,您才能允许通过对等互连进行 GW 传输。我忘了提到的是,在其他两个 VNET 进入游戏之前,有一个 VNET4(也是第 3 方)通过单独的 VPN 隧道连接到 VNET2,现在我必须以某种方式让所有人一起工作.我认为我唯一的选择是重新设计网络拓扑或实现一个虚拟机作为 VNET1 中的路由器。
  • @aragorn 是的,我认为您仅使用 VPN 网关来连接网络,但在您的情况下,我认为,您无法避免实施像路由器这样的网络设备来正确转发和过滤流量。
  • 最终我们将采用 Ivan 提出的对等互连方法,因为我们不希望 VM 充当路由器。因此,我们将更改网络拓扑以避免两个 VPN GW。谢谢伊万。
猜你喜欢
  • 2018-09-22
  • 2021-02-24
  • 2021-12-29
  • 1970-01-01
  • 2020-02-04
  • 2019-10-29
  • 2017-12-09
  • 1970-01-01
  • 2014-11-25
相关资源
最近更新 更多