问题
当使用 Azure VWan 并通过 VWan 的防火墙定向出站流量时,是否有办法确保所有出站流量都通过同一个公共 IP 地址发出。注意:我愿意接受解决方法。
语境
我们正在将 Azure 托管基础架构从对等 VNet 集合(其中任何 VM 的出站流量都通过任意分配的 IP 上的 MS 主干网进行传输)迁移到使用带防火墙的 VWan(其中所有出站流量都通过防火墙进行路由)。
当我们想要添加新的入站服务(例如将 FTPS 连接从公共 IP 路由到其后端 VM)时,我们会使用与防火墙关联的公共 IP 之一,添加 DNat 规则以将此传入的公共 IP 和端口映射到后端的私有 IP 和端口。但是,这意味着每次我们有使用相同公共端口的新入站需求时,我们都必须在防火墙上创建一个新的公共 IP。
添加每个公共 IP 都会产生影响:
必须更新各种白名单和 SPF 记录以包含新 IP。
我们可以通过获取公有 IP 前缀保留一个范围或地址,那么我们可以将此 CIDR 用于白名单,即使我们尚未使用此范围内的所有 IP。在我们达到此范围的极限之前,这种方法效果很好,因此依赖于良好的预测/过度配置。更新:由于我们使用的是安全虚拟集线器,因此前缀也不是一种选择;相反,我们只需要过度配置分配的公共 IP,然后将分配的每个特定 IP 列入白名单。某些协议(例如被动模式下的 FTPS)一旦有超过 1 个公共 IP,就无法正常工作。例如,我们网络中的 FTP 客户端与外部 FTPS 服务器建立(命令)连接,它被赋予一个用于数据通道的端口,在这个新端口上建立新的(数据)连接,Azure 将此新连接分配给不同的 IP(因为它是新连接,所以它认为没有必要保持一致),外部服务器看到一个声称与经过身份验证的命令通道相关的数据通道,但来自不同的 IP,因此拒绝这个新连接,认为它可疑。目前有一个要求/建议允许将出站连接固定到特定 IP,但没有迹象表明这在路线图上。
我不喜欢这样的场景;因为它们会产生陷阱;例如,有人在做一些不相关的任务(例如,为我们的一个系统发布一个新的 FTPS 服务)可能会无意中导致我们的电子邮件被标记为垃圾邮件,并且由于引入了新的 IP 而导致各种其他集成失败。
如果我们可以通过单个公共 IP 引导所有出站流量,则可以解决这些问题。
虽然我理解如果 Azure 防火墙分配了多个公共 IP,目前无法通过其中一个路由流量;但是有没有解决方法;例如将从此防火墙出站流量的下一跳设置为配置了单个公共 IP 的第二个防火墙?
答案1
是的,通过路由表和虚拟网络网关可以实现这一点。