Linux下使用bind搭建DNS主从服务器

时间:2023-02-10 12:08:45


假设公司A在万网a.org上注册了一个域名net.cn, 现在不想使用万网的DNS服务器,而是自己要建立两个DNS服务器,一个是主服务器,一个是从服务器
,现有两台机器: ns1.a.org  ,   ns2.a.org   我们如何配置这两台主机成为DNS服务器?



首先,这个公司A内部有如下需求:
1.公司有一个mail服务器,需要被解析   mail.a.org
2.公司有一个ftp服务器,需要被解析   ftp.a.org
3.还有自己的域名和bbs等



好了,根据如上需求我们来配置这两台服务器。


0 .在两台主机上要安装好bind服务器端,否则无法继续下去。
 yum install bind

1.去万网a.org后台的管理页面上,将两台DNS服务器的地址改成自己的主机名字,改为:  (这一步在学习时省略)
ns1.a.org
ns2.a.org


2.为了保证公司的网络地址可以被正常的解析到,我们配置ns1为主服务器,ns2为从服务器,假如ns1的地址为172.16.100.1,ns2的从服务器为172.16.100.2

1)登录到172.16.100.1 即主机:ns1.a.org,编辑它的dns主配置文件,定义工作目录,添加两个区域,一个正向解析,一个反向解析
# vim /etc/named.conf
# 正向
option {
directory "/var/named";
};
zone "a.org" IN { # 声明复制a.org这个域
type master; # 类型:主
file "a.org.zone"; # 解析文件
};
# 反向
zone "16.172.in-addr.arpa" IN {
type master;
file "172.16.zone";
};

# 在建立反向的时候,反向输入ip(因为它是反向解析的),例如 1.100.10.172,下面会用到

2)配置正向解析文件a.org
cd /var/named
vim a.org
$TTL 1200
@ IN SOA ns1.a.org. admin.a.org. ( # SOA字段
2011081601 # 版本号 同步一次 +1
1H # 更新时间
10MM # 更新失败,重试更新时间
7D # 更新失败多长时间后此DNS失效时间
1D ) # 解析不到请求不予回复时间
IN NS ns1.a.org.
IN NS ns2.a.org.
IN MX 10 mail.a.org. # 10指优先级 0-99 数字越小优先级越高
ns1.a.org. IN A 172.16.100.1
ns2.a.org. IN A 172.16.100.2
mail.a.org. IN A 172.16.100.1
bbs.a.org. IN CNAME www.a.org.

# 该文件只有改了了属组才生效!!!!!!!!
chomd :named a.org.zon
service named reload


3)配置反向解析,反向解析不去要MX , A ,和CNAME字段,它一般使用PRT

vim 172.16.org

$TTL 1200
@ IN SOA ns1.a.org. admin.a.org. (
2011081601
1H
10M
7D
1D )
IN NS ns1.a.org.
IN NS ns2.a.org.
1.100 IN PTR ns1.a.org.
2.100 IN PTR ns2.a.org.
1.100 IN PTR mail.a.org.
3.100 IN PTR www.a.org.
100.100 IN PTR ftp.a.org.
# 声明域的时候已经有了,172.16 所以我们只需要输入1.100既代表172.16.1.100
chomd :named 172.16.org
service named reload

4)启动服务,使用dig命令来测试是否能够正常解析(先修改自己的DNS服务器地址,在最后补充里)

service named start
dig -t A www.a.ort
dig -t PTR 172.16.100.1


5)配置另外一台DNS服务器为从服务器,编辑它的主配置文件,内容如下:

vim /etc/named
option {
directory "/var/named/slaves";
};
zone "a.org" IN {
type slave; # 类型为从
masters { 172.16.100.1 }; # 主服务器的地址,通过它来同步解析文件
file "a.org.zone";
};
# 反向
zone "16.172.in-addr.arpa" IN {
type slave;
masters { 172.16.100.1 };
file "172.16.zone";
};


6)重启服务,看解析文件是否同步:

service named restart
ls /var/named/slaves



补充:

1.在配置DNS时,其实应当先声明一个根域".",用来解析外网域名,方法如下:

编辑主配置文件,声明根域

vim /etc/named
zone "." {
type hint;
file "named.ca"
};
#保存退出,利用dig命令生成根域文件
dig -t NS ca > /var/named/named.ca


2.修改Linux主机dns服务器地址方法:

vim /etc/resolv.conf
nameserver 172.16.100.1 # 只需要留这一行,ip是你想要设的dns服务器地址