Azure Local 离线模式网络规划(系列篇之二)
1. 总体原则
离线模式仍然在 Azure Local 上跑,所以所有 Azure Local 的网络硬约束照常适用:
- Physical network requirements for Azure Local
- System requirements for Azure Local
- Network considerations for cloud deployments
官方原文:"Disconnected operations has a built-in container network range that can interfere with your existing network range. If you already use the range10.131.19.0/24, isolate this range from your disconnected operations environment."
10.131.19.0/24 是断开操作容器网络段,不可重新配置。如果企业网已有这个段,必须做路由隔离。
2. 双 vNIC 模型(Management + Ingress)
断开操作以VM 设备形态存在,挂在 Azure Local 网络上。该 VM 设备有2 块 vNIC,都连到 management intent("network intent"):
| vNIC | 用途 | IP 要求 |
|---|---|---|
| Management vNIC | 部署、运维、排障的底层 API;bootstrap 时由客户证书保护 | 本地网段上的有效、未被占用IP;如果要远程调底层 API 必须能从集群外路由到这个 IP |
| Ingress vNIC | 用户面流量(Portal、ARM、Key Vault、Container Registry …) | 在 Azure Local 子网内、部署保留段之外;必须有 DNS A 记录指向此 IP;外部流量走 443 |
官方原文:Ingress IP "Requires DNS resolution to the target fully qualified domain name (FQDN)"。没有 DNS = 部署过不去。
3. IP 选段规则(官方示例)
集群子网: 192.168.1.0/24 部署保留段: 192.168.1.1 – 192.168.1.10 可作为 Ingress IP: 192.168.1.11 及以上⚠️ 任何"看起来够用"的随机地址都不行,必须显式落在保留段之外。
4. FQDN 与 DNS 规划
4.1 FQDN 命名空间要求
- 必须有一个独立的 DNS zone专用于断开操作环境
- 不能把这个 zone 放在域控制器同级别上
- 通配符子域要能解析(背后是 Key Vault、Container Registry 等动态子域服务)
4.2 示例配置(官方原文照搬)
$externalFqdn = 'autonomous.cloud.private' $IngressIPAddress = '192.168.200.115' Add-DnsServerPrimaryZone -Name $externalFqdn -ReplicationScope Domain Add-DnsServerResourceRecordA -Name "*" -IPv4Address $IngressIPAddress -ZoneName $externalFqdn验证:
nslookup portal.autonomous.cloud.private预期:
Name: portal.autonomous.cloud.private Address: 192.168.200.1154.3 Ingress 端点的通配符语义
官方原文:
"Wildcard endpoints support backing services that users create dynamically, such as Azure Key Vault or Azure Container Registry. Your infrastructure needs to resolve a wildcard for these specific endpoints."
也就是说,*.vault.<fqdn>/*.blob.<fqdn>这种必须能解析——这也是为什么上面那条*记录不能省。
5. VLAN 处理
如果 Management/Ingress 网络需要 VLAN(官方示例用 VLAN 2259):
Get-VMNetworkAdapter Set-VMNetworkAdapterIsolation -ManagementOS -VMNetworkAdapterName "vManagement(ManagementCompute)" -DefaultIsolationID 2259 -IsolationMode Vlan -AllowUntaggedTraffic $true6. Limited Connectivity 模式的额外 endpoint
如果选 Limited Connectivity(appliance 能联网用于遥测/诊断),额外需要 DNS 解析以下 endpoint:
| 用途 | Endpoint |
|---|---|
| Geneva Observability Services | gcs.prod.monitoring.core.windows.net*.prod.warm.ingest.monitor.core.windows.net |
| Arc Connected Machine Agent Managed Identity | login.windows.netlogin.microsoftonline.compas.windows.netmanagement.azure.com*.his.arc.azure.com*.guestconfiguration.azure.com |
完全 Air-gapped 模式不需要这些。
7. 容器网段冲突检查清单
| 检查项 | 答案 |
|---|---|
| 企业网是否占用 10.131.19.0/24? | 必须隔离 / 重规划 |
| Management IP 在保留段外? | 必须 |
| Ingress IP 在保留段外? | 必须(官方原文:"outside the reserved range used for the instance deployment") |
| Ingress IP 已加 DNS A 记录? | 必须(官方原文:"Requires DNS resolution to the target fully qualified domain name (FQDN)") |
通配符*.<your-fqdn>解析到 Ingress IP? | 必须(官方原文:"Your infrastructure needs to resolve a wildcard for these specific endpoints") |
| 域控制器的 zone 跟断开操作 zone 冲突? | 必须分独立 zone(官方原文:"The FQDN can't be on the same level as your domain controller") |
| Limited mode 下能否解析 Observability endpoint? | 视连通策略 |
8. 我额外注意到的"官方没明说"的事项
- 官方没说"必须给 appliance VM 留多少 vCPU/vMem"——这是硬件/管理集群文档范围
- 官方没说"双 vNIC 是分别占两个物理网卡还是用嵌入 teaming"——按 Azure Local 标准做法
- Ingress IP 选段公式"集群子网内、保留段外",但保留段具体多大由部署时决定,文档没写硬性下限/上限
- FQDN 长度/层级官方没限制,按你内部 PKI / DNS 命名规范来
