配置需要网关的虚拟网络集成
需要网关的虚拟网络集成支持连接到其他区域中的虚拟网络或连接到经典虚拟网络。 需要网关的虚拟网络集成仅适用于 Windows 计划。 建议使用区域虚拟网络集成来与虚拟网络集成。
需要网关的虚拟网络集成:
- 允许应用一次仅连接到一个虚拟网络。
- 允许在应用服务计划中最多集成 5 个虚拟网络。
- 允许在应用服务计划中由多个应用使用同一个虚拟网络,而不影响应用服务计划可使用的总数。 如果在同一个应用服务计划中有六个应用使用相同的虚拟网络,计为使用一个虚拟网络。
- 网关上的 SLA 可能会影响总体 SLA。
- 使应用能使用配置虚拟网络所用的 DNS。
- 需要一个基于虚拟网络路由的网关,该网关需配置 SSTP 点到站点 VPN 后才能连接到应用。
无法使用需要网关的虚拟网络集成:
- 通过 ExpressRoute 进行虚拟网络连接。
- Linux 应用中。
- Windows 容器中。
- 访问服务终结点保护的资源。
- 解析引用了受网络保护的密钥保管库的应用设置。
- 既支持 ExpressRoute,也支持点到站点 VPN 或站点到站点 VPN 的共存网关。
区域虚拟网络集成可缓解上述限制。
在 Azure 虚拟网络中设置网关
若要创建网关,请执行以下操作:
创建 VPN 网关和子网。 选择基于路由的 VPN 类型。
设置点到站点地址。 如果网关不在基本 SKU 中,则必须在点到站点配置中禁用 IKEV2 并选择 SSTP。 点到站点地址空间必须在 RFC 1918 地址块 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 中。
如果是创建网关是用于需要网关的虚拟网络集成,则无需上传证书。 创建网关可能需要 30 分钟。 要将应用与虚拟网络集成,必须先创建网关。
需要网关的虚拟网络集成的工作原理
需要网关的虚拟网络集成基于点到站点 VPN 技术。 点到站点 VPN 将网络访问限制于可托管应用的虚拟机。 应用受到限制,只能通过混合连接或虚拟网络集成仅将流量外发到 Internet。 在门户中将应用配置为使用需要网关的虚拟网络集成时,系统代你管理一个复杂的协商,用于在网关和应用程序端创建并分配证书。 于是,用于托管应用的辅助角色可以直接连接到所选虚拟网络中的虚拟网络网关。
访问本地资源
应用可以通过与具备站点到站点连接的虚拟网络集成来访问本地资源。 如果使用需要网关的虚拟网络集成,请使用点到站点地址块更新本地 VPN 网关路由。 先设置站点到站点 VPN,接着应通过用于配置该 VPN 的脚本来正确地设置路由。 如果在创建站点到站点地址后才添加点到站点 VPN,则需手动更新路由。 具体操作信息取决于每个网关,在此不作说明。
本地的 BGP 路由不会自动传播到应用服务。 需要使用为 P2S VPN 客户端播发自定义路由文档中的步骤在点到站点配置中手动传播这些路由。
注意
需要网关的虚拟网络集成功能不将应用与包含 ExpressRoute 网关的虚拟网络集成。 即使以共存模式配置 ExpressRoute 网关,虚拟网络集成也不会生效。 如果需要通过 ExpressRoute 连接访问资源,请使用区域虚拟网络集成功能或在虚拟网络中运行的应用服务环境。
对等互连
如果将需要网关的虚拟网络集成与对等互连结合使用,需要配置更多的项。 若要配置对等互连以使用应用,请执行以下操作:
- 在应用所连接的虚拟网络上添加对等互连连接。 在添加对等互连连接时,请启用“允许虚拟网络访问”并选择“允许转发流量”和“允许网关传输” 。
- 在与连接的虚拟网络进行对等互连的虚拟网络上添加对等互连连接。 在目标虚拟网络上添加对等互连连接时,启用“允许虚拟网络访问”并选择“允许转发流量”和“允许远程网关” 。
- 转到门户中的“应用服务计划”“网络”“VNet 集成”。 选择应用连接到的虚拟网络。 在“路由”部分下,添加与应用所连接的虚拟网络对等互连的虚拟网络的地址范围。
管理虚拟网络集成
与虚拟网络连接和断开连接都在应用级别进行。 可能影响多个应用的虚拟网络集成的操作在应用服务计划级别执行。 从应用 >“网络”>“VNet 集成”门户,可以获取有关虚拟网络的详细信息。 在“应用服务计划”“网络”“VNet 集成”中,可以看到应用服务计划级别的类似信息。
在虚拟网络集成实例的应用视图中,能够执行的唯一操作是断开应用与当前所连接到的虚拟网络的连接。 若要断开应用与虚拟网络的连接,请选择“断开连接”。 断开与虚拟网络的连接后,应用会重启。 断开连接操作不会更改虚拟网络。 不会删除子网或网关。 如果那时想删除虚拟网络,请先将断开应用与虚拟网络的连接并删除其中的资源,例如网关。
应用服务计划虚拟网络集成 UI 显示了应用服务计划中的应用使用的所有虚拟网络集成。 若要查看各虚拟网络的详细信息,请选择感兴趣的虚拟网络。 此时可为需要网关的虚拟网络集成执行两项操作:
- 同步网络:同步网络操作仅用于需要网关的虚拟网络集成功能。 执行同步网络操作可确保证书和网络信息保持同步。如果添加或更改虚拟网络的 DNS,请执行同步网络操作。 此操作会重启使用此虚拟网络的任何应用。 如果使用的是属于不同订阅的应用和虚拟网络,此操作将不起作用。
- 添加路由添加路由会驱动出站流量进入虚拟网络。
分配给实例的专用 IP 通过环境变量 WEBSITE_PRIVATE_IP 公开。 Kudu 控制台 UI 还显示了可用于 Web 应用的环境变量列表。 此 IP 是虚拟网络网关上配置的点到站点地址池的地址范围中的 IP。 Web 应用将使用此 IP 通过 Azure 虚拟网络连接到资源。
注意
WEBSITE_PRIVATE_IP 的值必然会变化。 但是,该 IP 将是点到站点地址范围内的 IP,因此需要允许从整个地址范围进行访问。
需要网关的虚拟网络集成路由
虚拟网络中定义的路由用于将流量从应用引导至虚拟网络。 若要将更多出站流量发送到虚拟网络,请在此处添加这些地址块。 此功能仅适用于需要网关的虚拟网络集成。 使用需要网关的虚拟网络集成时,路由表不会影响应用流量。
需要网关的虚拟网络集成证书
启用需要网关的虚拟网络集成后,必须进行证书交换以确保连接的安全性。 除了证书,还有 DNS 配置、路由以及其他类似的用于描述网络的内容。
如果更改了证书或网络信息,请选择“同步网络”。 选择“同步网络”会导致应用与虚拟网络之间的连接出现短暂的中断。 应用不会重启,但失去连接会导致站点功能失常。
证书续订
网关所需的虚拟网络集成使用的证书的有效期为 8 年。 如果应用具有网关所需的虚拟网络集成,则需续订证书的时间更长。 可以通过访问 Azure 门户中的 VNet 集成页来验证证书是否已到期或距离到期少于 6 个月。
当门户显示证书即将到期或已到期时,可以续订证书。 若要续订证书,需要断开连接然后重新连接虚拟网络。 重新连接会导致应用与虚拟网络之间的连接出现短暂的中断。 应用不会重启,但失去连接会导致站点功能失常。
定价详细信息
使用需要网关的虚拟网络集成功能涉及三项费用:
- 应用服务计划定价层费用:应用必须属于“基本”、“标准”、“高级”、“高级 v2”应用服务计划。 有关这些费用的详细信息,请参阅应用服务定价。
- 数据传输成本:即使虚拟网络位于同一数据中心,也会收取数据流出量费用。 数据传输定价详细信息中对这些费用进行了说明。
- VPN 网关费用:点到站点 VPN 所需的虚拟网关会产生费用。 有关详细信息,请参阅 VPN 网关定价。
疑难解答
许多因素可能会阻止应用访问特定的主机和端口。 大多数情况下为以下因素之一:
- 存在防火墙。 如果存在防火墙,则会发生 TCP 超时。 本例中的 TCP 超时为 21 秒。 使用 tcpping 工具测试连接性。 除了防火墙外,还有多种原因可能导致 TCP 超时。
- DNS 不可访问。 每个 DNS 服务器的 DNS 超时为 3 秒。 如果具有 2 个 DNS 服务器,则超时为 6 秒。 使用 nameresolver 查看 DNS 是否正常工作。 不能使用 nslookup,因为它不使用为虚拟网络配置的 DNS。 如果无法访问,则表明可能有防火墙或 NSG 在阻止对 DNS 的访问,或者该 DNS 可能已停机。
如果这些方法未解决问题,请首先检查以下因素:
- 点到站点地址范围是否在 RFC 1918 范围内 (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
- 网关在门户中是否显示为已启动? 如果网关处于关闭状态,则将其重新启动。
- 证书是否显示正在同步?或者,你是否怀疑网络配置已更改? 如果证书未同步,或者你怀疑对虚拟网络配置做出了与 ASP 不同步的更改,请选择“同步网络”。
- 如果通过 VPN 传输,本地网关是否配置为将流量路由回 Azure? 如果可以访问虚拟网络中的终结点,但不能访问本地的终结点,请检查路由。
- 你是否正在尝试使用一个既支持点到站点连接,又支持 ExpressRoute 的共存网关? 虚拟网络集成不支持共存网关。
调试网络问题很有难度,因为你看不到哪些因素在阻止访问特定的“主机:端口”组合。 部分原因包括:
- 在主机上开启了防火墙,导致无法从点到站点 IP 范围访问应用程序端口。 跨子网通常需要公共访问权限。
- 目标主机已关闭。
- 应用程序已关闭。
- IP 或主机名错误。
- 应用程序所侦听的端口与你预期的端口不同。 可以使用终结点主机上的“netstat -aon”匹配进程 ID 和侦听端口。
- 网络安全组的配置方式导致无法从点到站点 IP 范围访问应用程序主机和端口。
你不知道应用实际使用的地址。 它可能是点到站点地址范围内的任意地址,因此你需要允许从整个地址范围进行访问。
更多调试步骤包括:
- 连接到虚拟网络中的某个 VM,尝试在该处访问资源主机:端口。 若要针对 TCP 访问权限进行测试,请使用 PowerShell 命令 Test-NetConnection。 语法为:
Test-NetConnection hostname [optional: -Port]
- 在某个 VM 中启动应用程序,然后使用 tcpping 测试能否在应用的控制台中访问该主机和端口。
本地资源
如果应用无法访问本地资源,请检查是否能够通过虚拟网络访问该资源。 请使用 Test-NetConnection PowerShell 命令来针对 TCP 访问权限进行测试。 如果 VM 无法访问本地资源,原因可能是未正确配置 VPN 或 ExpressRoute 连接。
如果虚拟网络托管的 VM 能够访问本地系统但应用无法访问,则可能是由于以下某个原因:
- 在本地网关中未使用子网或点到站点地址范围配置路由。
- 网络安全组阻止点到站点 IP 范围的访问。
- 本地防火墙阻止来自点到站点 IP 范围的流量。
- 正在尝试使用区域虚拟网络集成功能访问非 RFC 1918 地址。