全部产品
云市场

自建IDC同步DNS记录

更新时间:2019-09-06 14:46:39

本文主要介绍企业在混合云网络场景下,如果通过PrivateZone实现内网DNS记录在云端配置,在自建IDC同步解析记录。

业务场景

自建IDC与阿里云VPC通过专线或者VPN进行网络连通。部署在自建IDC和阿里云VPC内的业务均需要通过DNS查询进行业务间调用。因此需要在自建IDC和阿里云VPC共享DNS解析数据,以实现业务间能实时调用。

实现难点

自建IDC和阿里云VPC分别属于两套网络环境。在自建IDC中,客户往往已经使用bind9等开源软件搭建了自身的DNS服务;在阿里云VPC内部,客户会使用PrivateZone服务作为内网DNS解析服务。

自建IDC和PrivateZone的数据共享是混合云内网DNS中的一大痛点。分别管理两套数据不仅给运维工程师带来重复新工作的增加,同时也数据一致性管理的风险。给业务带来不确定性。

本文介绍一种自动DNS同步解决方案,可以自动将客户在PrivateZone控制台配置的解析记录同步至自建IDC服务器上,并生成标准Zone文件,bind9可以加载生效。

解决方案

  1. 解析记录管理:解析记录管理通过阿里云PrivateZone控制台完成,PrivateZone提供web控制台UI,管理DNS解析记录十分方便;

  2. 解析记录同步:在此我们提供一款轻量级的DNS记录同步工具,通过阿里云账号AK,自动读取PrivateZone的解析记录,并在本地生成Zone文件,点击下载工具,下载后解压缩。

  3. 解析记录加载:自建IDC内部DNS软件bind9加载生成的Zone文件。

  4. 解析生效测试:使用dig或者ping命令验证是否生效。

详细配置

这里以host.local为例,进行说明。

工具配置介绍:

工具有两部分组成,同步程序Zone_file_sync 和 配置文件 config.json

  1. config.json的配置格式:
  1. {
  2. "accessKeyId": "LCAIF4bcGHrUpUPR",
  3. "accessKeySecret": "KT4eXSgppowkkPZ5AgSbxNMBHlZtor",
  4. "zone": [
  5. {
  6. "zoneName": "host.local",
  7. "zoneId": "298cc343c4387b0745e9b5e24fdej624",
  8. "filePath": "/var/named/host.local.zone"
  9. }
  10. ]
  11. }

其中:

  • accessKeyIdaccessKeySecret 为阿里云账号AK;
  • zoneNamezoneId 为PrivateZone控制台显示的Zone名称和Zoneid,请替换为自己的配置;
  • filePath 为工具生成的Zone文件在自建IDC的DNS服务器上存放的目录,建议为您的bind9的Zone文件存放目录;
  • Zone 内部是JSON列表,可以配置多个需要同步的Zone,最多一次同步10个Zone;

bind9配置介绍

  1. bind9的named.conf配置:在named.conf文件中,host.local的配置如下:
    1. zone "host.local" IN {
    2. type master;
    3. file "host.local.zone";
    4. allow-update { 127.0.0.1; };
    5. };

自动同步配置

在准备好同步工具和bind9后,按照如下命令的顺序,进行执行,同步最新的PrivateZone记录。(这里需要将命令替换为具体实际执行的命令。)

  1. 执行更新锁定: /usr/sbin/rndc freeze host.local
  2. 执行同步记录: ./Zone_file_sync -c config.json
  3. 执行bind9数据加载:/usr/sbin/rndc thaw host.local

以上命令,您可以写成shell脚本,并使用linux服务器的crontab功能进行定时执行,以实现自动同步PrivateZone的记录更新功能。

生效测试

使用如下命令进行测试:dig @localhost 域名

总结:

本文介绍了一种使用自动同步工具的方式,将PrivateZone的解析记录同步至本地自建IDC内部DNS服务器的方式。方便运维工程师搭建混合云DNS解析方案,有效的降低了混合云场景下DNS配置的复杂度,同时能够避免专线或者VPN的故障对自建IDC内部DNS解析的影响。