Azure:如何让公网DNS区域解析至私有DNS区域?现有架构可行吗?
实现公网流量经中心防火墙访问容器App的方案
现有架构可以实现需求,但需要补充以下关键配置和资源调整:
1. 调整容器App的访问策略
当前容器App仅允许VNet内部访问,需修改入口规则,允许来自中心Azure Firewall的流量:
- 在容器App的网络设置中,将中心防火墙的公网静态IP或中心VNet的地址范围添加到允许访问的源列表;
- 或者直接将入口访问模式从"仅VNet内部"改为"允许特定IP",指定防火墙公网IP为信任源。
2. 配置Azure Firewall的转发规则
- DNAT规则:创建DNAT规则,把互联网流量的目标(防火墙公网IP + 业务端口,如80/443)转发到容器App的静态IP及对应端口;
- 应用规则:添加允许互联网流量到容器App静态IP/私有域名的应用层规则,确保流量能通过防火墙到达目标。
3. 公网DNS区域配置
- 在Azure公网DNS区域(或第三方DNS服务)中,为每个需要的公网域名创建A记录,将域名指向Azure Firewall的公网静态IP。比如
app1.example.com、app2.example.com都指向同一个防火墙公网IP。
4. 配置DNS转发链路
要让防火墙能正确解析容器App的私有DNS记录,需完成以下DNS配置:
- 把中心VNet的DNS服务器设置为Azure Firewall的私有IP(基础版防火墙支持DNS代理功能);
- 在防火墙中启用DNS代理,并添加条件转发规则:将容器App的私有域名后缀(如
*.azurecontainerapps.io)转发到Azure私有DNS区域的解析地址; - 确认VNet对等连接的DNS转发选项已开启,确保分支VNet的DNS请求能通过中心VNet的防火墙代理解析。
5. 验证步骤
- 从公网环境执行
nslookup 你的公网域名,确认解析结果是防火墙的公网IP; - 使用
curl 你的公网域名或浏览器访问,验证流量能到达容器App; - 查看防火墙日志,确认DNAT和应用规则已命中,流量转发正常。
注意事项
- 基础版Azure Firewall已支持所需的DNAT和DNS代理功能,无需升级版本;
- 确保容器App的静态IP处于分支VNet地址范围内,且防火墙能通过VNet对等连接访问该IP;
- 私有DNS区域需关联中心VNet和分支VNet,保证VNet内资源能解析容器App的私有域名。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

