同一域名同时使用Azure专用DNS与Route 53公网DNS的实现方案咨询
同一域名同时使用Azure专用DNS与Route 53公网DNS的实现方案咨询
嘿,这个场景我太熟悉了——很多迁云的团队都会碰到Azure私有DNS的权威特性和公网DNS共存的问题,给你两个最实用的解决思路,不用维护两份Zone文件:
1. 用Azure DNS Forwarding Ruleset实现“私有记录优先,公网记录转发”
这是最贴合你需求的原生Azure方案,不用额外维护服务器,还能完美兼容Application Gateway这类Azure服务:
- 先创建一个Azure DNS Forwarding Ruleset,并把你的目标VNET关联到这个Ruleset上
- 在Ruleset里添加一条转发规则:指定域名
myapp.com,转发目标填Route53托管区的官方名称服务器地址(你可以在AWS Route53的myapp.com托管区详情里找到这些地址) - 把你已有的Azure私有DNS区
myapp.com和这个Forwarding Ruleset做集成(在私有DNS区的“关联”设置里选择对应的Forwarding Ruleset) - 这样VNET内的机器查询
myapp.com域名时,会先检查Azure私有DNS区的内部记录(比如sql.myapp.com),如果找不到匹配的记录,就自动把查询转发到Route53的公网DNS服务器,获取公网的myapp.com相关解析结果
2. 部署自定义DNS服务器(复刻你之前的DNSMASQ方案)
如果你更习惯之前的玩法,也可以在Azure里部署高可用的自定义DNS服务器(比如用两台Ubuntu VM搭建DNSMASQ集群):
- 在DNSMASQ里只配置你需要的内部
myapp.com记录(比如在hosts文件里添加sql.myapp.com对应内部IP) - 配置DNSMASQ把未匹配的
myapp.com查询转发到Route53的名称服务器,其他域名可以转发到公网通用DNS(比如8.8.8.8) - 把你的Azure VNET的DNS服务器设置改为指向这两台自定义DNS服务器的私有IP
- 这个方案的好处是完全复刻你之前的机房环境,学习成本低,但需要你自己维护DNS服务器的高可用和性能
额外测试小贴士
配置完成后,可以在VNET内的VM上用nslookup命令验证:
- 执行
nslookup sql.myapp.com应该返回你配置的内部私有IP - 执行
nslookup myapp.com应该返回Route53中配置的公网Web服务器IP
备注:内容来源于stack exchange,提问作者S.Gia
相关产品推荐
相关产品推荐

