Azure 至少提供两种连接两个虚拟网络的方式,而它们并不是同一对象上可以互换的设置。对等互连在没有网关的情况下把 VNet 接入 Microsoft 的骨干网;VNet 到 VNet VPN 则在你自己部署、规划容量并监控的两台网关之间建立 IPsec 关系。决策归结为三个条件;如果加路由之前这三个问题答不上来,你就是在为一个从未选定的模型搭建变通方案。

决定模型的三个条件

第一,需求中是否有任何部分需要一道属于你、并且你可以指认的 IPsec 边界。第二,地址空间是否干净,两个 VNet 是否只需要彼此通信。第三,任何传递路径和网关账单归谁。请按这个顺序回答,因为无论第二点看起来多有吸引力,第一点都可能直接排除对等互连。

两种模型共有的是一条硬性的地址规则:VNet 地址空间不得重叠。对等互连和 VNet 到 VNet VPN 都不是让两个相同网段变得明确的受支持做法,重叠需要的是映射设计或重新设计,而不是换一种连接类型。

条件 1:你需要一道属于自己的 IPsec 边界吗?

对等互连在 Azure 的私有骨干网上承载流量,本身不需要 VPN 网关。这是关于传输的陈述,而不是可以交给审计人员说“我们运行 IPsec”的加密陈述。如果需求点名客户配置的隧道、特定 IKE 策略,或终止在你掌控的设备上的边界,那么骨干网再私密,对等互连也不满足。

VNet 到 VNet VPN 确实提供了那道边界:两台网关、IPsec/IKE 关系、共享密钥,以及随之而来的整套运维面。你会继承隧道状态、网关容量、SKU 限制,以及证明隧道在线的监控。当需求正是针对这道边界时,这才是正确答案,而 对等互连概述 把它描述为与对等互连不同的连接类型。

反方向同样要谨慎。“我们需要 VNet 之间的加密”往往由工作负载自身的 TLS 满足,此时网关就是一项背后没有需求的成本。选机制之前,先写下审计人员会读到的那句话。

条件 2:拓扑是直接的,还是需要某种传递?

对等互连不具备传递性。两个 VNet 分别对等连接到中心,并不因此彼此连通;一条看似单向可用的路由,通常是只有一侧到达 Connected 的对等连接。两侧都必须存在且都显示 Connected,这正是流量无声消失时首先要查的地方。

如果需求是经中心访问本地网络,那么网关传递是另一套设计,角色明确:中心拥有网关,分支的对等连接允许网关传递,分支还必须允许转发流量。这些是对等连接上的属性,不是连接 VNet 的自动结果:

az network vnet peering create -g hub-rg -n hub-to-spoke1   --vnet-name hub-vnet --remote-vnet /subscriptions/SUB/resourceGroups/spoke-rg/providers/Microsoft.Network/virtualNetworks/spoke1-vnet   --allow-vnet-access --allow-gateway-transit --allow-forwarded-traffic

az network vnet peering list -g hub-rg --vnet-name hub-vnet -o table
az network nic show-effective-route-table -g spoke-rg -n app-nic -o table

有效路由表才是“路径是否存在”的诚实答案。它显示平台实际会使用的下一跳类型,因此看起来配好却没连通的对等连接,会表现为缺失或错误的路由,而不是谜团。

条件 3:传递路径和账单归谁?

每多一跳就多一个负责人。用对等互连时,新增 VNet 意味着两侧各新增一对对等连接;要做传递,还需要持续转发流量的中心和持续指向它的路由表。用 VPN 时,新增 VNet 意味着再加一台网关,或在现有网关上再加一条连接,并有各自的容量上限要盯。

成本形状相同,但条目不同:对等互连计费的是连接与数据传输,VPN 则加上网关小时数和自己的传输费用。要比较你实际会运行一年的拓扑总价,包含第二条隧道和监控,而不是今天一条连接的价格。还要把没人开票的工作算进去:总得有人轮换密钥、盯隧道状态,并在网关重启时凌晨三点回应告警。往往正是这一项决定争论结果,因为它是唯一永远不会出现在报价里的条目。

无论选哪种,都测试三条流:预期的那条、应当保持拒绝的拒绝流,以及中心网关或某条对等连接故障时的恢复情形。只解释顺利路径的模型不算验证过,只能算演示过。

用模型自己的说法来验证选择

写一句话,点名模型、边界和负责人,然后检查已部署状态是否与之相符。对等互连意味着两侧对等状态都是 Connected、有效路由为目标前缀显示对等连接下一跳、路径中没有网关。VNet 到 VNet VPN 意味着两条连接都是 Connected、两台网关上的密钥与策略一致,且路由的下一跳是虚拟网络网关。

如果检查与那句话矛盾,先改那句话。这类设计中的大部分混乱,来自没人描述过的混合体:工作负载子网走对等互连,一个遗留服务走 VPN,而路由表悄悄偏向其中一种。

相关文章