为什么 Azure SQL 托管实例需要 UDR 0.0.0.0/0 下一跃点类型 Internet

Why Azure SQL Managed Instance requires UDR 0.0.0.0/0 next hop type Internet

Azure SQL 托管实例的网络要求之一是具有 UDR 0.0.0.0/下一跃点互联网,支持从属于 Azure VNet 的私有子网和 public 互联网进行访问.

为什么需要这样做,有什么风险?

此规则旨在简单地覆盖可能导致不对称路由并干扰管理流量的常见 BGP advertisements

在 BGP 通告更具体的前缀的情况下,这不足以确保管理流量,您需要定义 UDR 来覆盖通告的前缀。

请注意,0.0.0.0/0 下一跃点类型互联网规则不会将所有流量路由到互联网。下一个跃点始终是另一个设备——在本例中是位于 Azure 内部的互联网网关。它被称为 Internet 网关,因为它处理到 public Azure IP 地址的路由。由于这些 IP 地址大多属于与托管实例并置的 Azure 服务,因此始终找到最短路径的网络流量留在 Azure 内部。

托管实例需要 public Internet 访问以进行证书吊销验证,这是通过 public Internet 完成的。 public 生成证书吊销信息,因此不会以这种方式发送或接收任何秘密。证书验证信息也有签名,防止被篡改

除 0.0.0.0 外,您还可以设置有限的其他 UDR 下一跃点互联网:

  • 具有私有 IP 范围* 的 UDR 作为没有下一跃点的目标 限制
  • 如果下一个跃点类型是 Internet,则将 public IP 范围作为目标的 UDR

*例外是必须具有下一跃点类型的托管实例子网目标 虚拟网络 – 否则托管实例之间的连接可能会中断。

This constraint will be relaxed or removed in the future so always check the Azure SQL Managed Instance documentation for the update.