当前位置:首页 > Ubuntu > 正文

Ubuntu DNS主从同步配置(手把手教你用BIND9实现主从DNS服务器同步)

在企业网络环境中,为了提高DNS服务的高可用性和容错能力,通常会部署主从DNS服务器。本文将详细讲解如何在Ubuntu系统上使用BIND9软件配置Ubuntu DNS主从同步,即使你是Linux新手也能轻松上手。

一、准备工作

你需要两台运行Ubuntu(建议20.04或更高版本)的服务器:

  • 主DNS服务器(Master):IP地址为 192.168.1.10
  • 从DNS服务器(Slave):IP地址为 192.168.1.11

确保两台服务器之间网络互通,并已安装bind9

sudo apt updatesudo apt install bind9 -y
Ubuntu DNS主从同步配置(手把手教你用BIND9实现主从DNS服务器同步) DNS主从同步  BIND9主从配置 DNS服务器同步 Ubuntu搭建DNS 第1张

二、配置主DNS服务器(Master)

编辑主服务器的BIND9主配置文件:

sudo nano /etc/bind/named.conf.options

确保包含以下内容(允许从服务器查询和传输区域数据):

options {    directory "/var/cache/bind";    // 允许查询的客户端    allow-query { any; };    // 允许区域传输的从服务器IP    allow-transfer { 192.168.1.11; };    recursion yes;    dnssec-validation auto;    auth-nxdomain no;};

接下来,定义一个正向解析区域(以 example.com 为例):

sudo nano /etc/bind/named.conf.local

添加以下区域配置:

zone "example.com" {    type master;    file "/etc/bind/db.example.com";};

创建区域数据文件:

sudo nano /etc/bind/db.example.com

填入以下内容(注意替换IP和域名):

$TTL    86400@       IN      SOA     ns1.example.com. admin.example.com. (                        2024060101 ; Serial                        3600       ; Refresh                        1800       ; Retry                        604800     ; Expire                        86400 )    ; Minimum TTL; Name Servers@       IN      NS      ns1.example.com.@       IN      NS      ns2.example.com.; A Recordsns1     IN      A       192.168.1.10ns2     IN      A       192.168.1.11www     IN      A       192.168.1.100

保存后,检查配置并重启服务:

sudo named-checkconfsudo named-checkzone example.com /etc/bind/db.example.comsudo systemctl restart bind9

三、配置从DNS服务器(Slave)

在从服务器上,编辑配置文件:

sudo nano /etc/bind/named.conf.local

添加以下内容:

zone "example.com" {    type slave;    file "slaves/db.example.com";    masters { 192.168.1.10; };};

确保/var/cache/bind/slaves/目录存在且有写权限:

sudo mkdir -p /var/cache/bind/slavessudo chown bind:bind /var/cache/bind/slaves

重启从服务器的BIND9服务:

sudo systemctl restart bind9

四、验证主从同步是否成功

在从服务器上查看日志:

sudo tail -f /var/log/syslog | grep named

如果看到类似transfer of 'example.com/IN' from 192.168.1.10#53: transferred serial 2024060101的信息,说明同步成功。

你也可以使用dig命令测试:

dig @192.168.1.11 example.com ANY

如果返回与主服务器相同的结果,说明DNS服务器同步配置成功!

五、常见问题排查

  • 防火墙是否放行了UDP/TCP 53端口?
  • 主服务器的allow-transfer是否包含了从服务器IP?
  • 区域文件中的Serial号是否更新?每次修改后需递增Serial才能触发同步。

通过以上步骤,你就完成了基于Ubuntu的BIND9主从配置。这种架构不仅能提升DNS服务的可靠性,还能在主服务器宕机时由从服务器继续提供解析服务,是生产环境的标准实践。

希望这篇关于Ubuntu搭建DNS主从同步的教程对你有所帮助!如有疑问,欢迎留言交流。