【Azure APIM】APIM服务配置网络之后出现3443端口不通,Management Endpoint不健康状态
问题描述
APIM服务在配置网络之后,查看网络状态发现Management Endpoint是不健康状态, 提示无法连接到3443端口。
错误消息:
Failed to connect to management endpoint at xxxxxxxx.management.azure-api.cn:3443 for a service deployed in a virtual network. Make sure to follow guidance at https://aka.ms/apim-vnet-common-issues.
问题解答
因为APIM集成虚拟网络之后,需要配置NSG(网络安全组)中对固定的端口需要访问允许。如果APIM服务所用的子网根本没有配置NSG的情况下,按照常理来说,是放通的。不应该出现3443端口报错的。
但是,经过测试,如果没有配置NSG的情况下,也是会出现 Failed to connect to management endpoint at xxxxxxxx.management.azure-api.cn:3443 错误。
解决办法就是:添加NSG并放通3443端口的入站流量。因为没有关联网络安全组的子网,所有的入站流量都被阻止了。
VM入站流量解答
下图描述了如何使用不同的方案来部署网络安全组,以便网络流量通过 TCP 端口 80 出入 Internet:
对于入站流量,Azure 先处理与某个子网相关联的网络安全组(如果有)中的规则,然后处理与网络接口相关联的网络安全组(如果有)中的规则。 此过程也包括子网内流量。
VM1:系统会处理 NSG1 中的安全规则,因为它与 Subnet1 关联,而 VM1位于 Subnet1 中。 除非已创建允许端口 80 入站的规则,否则 DenyAllInbound默认安全规则会拒绝流量。 NSG2 不会评估这些被阻止的流量,因为它们与网络接口相关联。 但是,如果 NSG1 在其安全规则中允许端口 80,NSG2 会处理该流量。 若要允许从端口 80 到虚拟机的流量,NSG1 和 NSG2 必须指定一条规则来允许从 Internet 到端口 80 的流量。
VM2:系统会处理 NSG1 中的规则,因为 VM2 也在 Subnet1 中。 VM2 没有关联到其网络接口的网络安全组,因此会接收 NSG1 所允许的所有流量,或者会受到 NSG1 所拒绝的所有流量拒绝。 当网络安全组关联到子网时,对于同一子网中的所有资源,流量要么被允许,要么被拒绝。
VM3:由于没有网络安全组关联到 Subnet2,系统允许流量进入子网并由 NSG2 处理,因为 NSG2 关联到已附加到 VM3 的网络接口。
VM4:阻止流量发往 VM4,因为网络安全组没有关联到 Subnet3 或虚拟机中的网络接口。 如果没有关联的网络安全组,则阻止所有网络流量通过子网和网络接口。
参考资料
APIM虚拟网络配置所需端口 : https://learn.microsoft.com/zh-cn/azure/api-management/virtual-network-reference?tabs=stv2#required-ports
网络安全组如何筛选网络流量 : https://learn.microsoft.com/zh-cn/azure/virtual-network/network-security-group-how-it-works#inbound-traffic
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-01-21 【Azure 环境】台湾同胞:詢問大陸所有廠牌手機是否都可透過通知中心發送訊息
2021-01-21 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例