Bind9的安装

yum install -y bind-chroot

Bind9的配置

  1. 配置Master服务器

  • 主配置文件 (/etc/named.conf
vim /etc/named.conf
===================================================================
 options {
    listen-on port 53 { any; };
    ......
    directory   "/var/named"; //数据文件(zone文件)配置目录
    ......
    allow-query { any; };
    rrset-order { order random; }; // order cyclic; DNS轮询配置
    ......
};
......
include "/etc/named.rfc1912.zones";
......
  • 区域配置文件(/etc/named.rfc1912.zones

指出数据文件的目录位置

vim /etc/named.rfc1912.zones
===================================================================
zone "rj.com" IN {
    type master;
    file "rj.com.zone";
    allow-update { 192.168.100.33; }; //配置slave的ip,多个地址使用分号分割
};
  • 数据文件配置(/var/named/rj.com.zone
cp -p named.localhost rj.com.zone # -p 保持权限
vim rj.com.zone
============================================================================
$TTL 1D
@       IN SOA  rj.com. root.rj.com. ( ;root.rj.com. 实际是 root@rj.com.
;@表达了本域,所以邮箱的@用点表示以资区别。
                                        4       ; serial 每次修改都要增一(10位数字)
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS  ns1.rj.com.  ; 必须配置zone=rj.com的name server的域名
        NS  ns2.rj.com.  ; 必须配置zone=rj.com的name server的域名
ns1  A   192.168.100.22  ; 必须配置name server的A记录
ns2  A   192.168.100.33  ; 必须配置name server的A记录
    IN MX 10 mail.rj.com.
mail A  133.40.19.1
www     A       133.40.19.20  ; DNS轮询配置
    A   133.40.19.21
    A   133.40.19.22
    A   133.40.19.23
    A   133.40.19.24
    A   133.40.19.25
ftp A   133.40.19.3
hadoop A  133.40.19.4

@ 表示本域,以点结尾表示绝对域名,不以点结尾表示相对域名(相对本域,如:rj.com.)。RR(Resource Record)的第一列不写也表示本域。

星号* 表示通配——泛域名解析。

重启named进程使配置立即生效

systemctl start named
tail -f /var/log/messages
tail -20 /var/log/messages | grep named
  1. 配置Slave服务器

  • 主配置文件(/etc/named.conf
options {
    listen-on port 53 { any; };
    ......
    directory   "/var/named"; //同步master的数据文件(zone)所在目录
    ......
    allow-query     { any; };
    rrset-order { order random; }; // order cyclic; DNS轮询配置
};
......
include "/etc/named.rfc1912.zones";
......
  • 区域配置文件(/etc/named.rfc1912.zones
zone "rj.com" IN {
    type slave;
    masters { 192.168.100.22 ; }; // 配置master的ip,多个地址使用分号分割
    file "slaves/rj.com.zone"; //需从master同步过来的数据文件
};

重启named进程使配置立即生效

systemctl start named
tail -f /var/log/messages
tail -20 /var/log/messages | grep named

常用命令

#安装nslookup及dig测试命令
yum install -y bind-utils

#测试命令
nslookup www.rj.com 192.168.100.22
dig @192.168.100.33 www.rj.com

# 清空DNS缓存
rndc flush # 服务器端
ipconfig/flushdns # windows客户端

# 检查主配置文件/etc/named.conf
named-checkconf

# 检查数据文件配置
named-checkzone 'rj.com.zone' rj.com.zone

# 通过重启named进程使配置立即生效
# 主从复制场景下只需要在master上重启即可
systemctl restart named

子域授权/委派

如果DNS中的区域zone非常大,势必就需要划分子域,分而治之,让子域拥有自己的DNS Server,管理自己的域名解析。

1. 场景

角色 域名 Name Server IP
父域 rj.com ns1.rj.com
ns2.rj.com
192.168.100.22
子域 gz.rj.com ns.gz.rj.com 192.168.100.44

2. 父域的配置

在父域的数据文件(zone)中增加子域class=NS,A的RR(资源记录Resource Record)。

vim /var/named/rj.com.zone
========================================================================
$TTL 1D
@       IN SOA  rj.com. root.rj.com. (
                                        16      ; serial 修改后自增一
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
    NS  ns1.rj.com.
    NS  ns2.rj.com.
gz NS  ns.gz.rj.com. ; 为子域指定name server的NS标识
ns1  A   192.168.100.22
ns2  A   192.168.100.33
ns.gz  A   192.168.100.44  ; 为子域的name server配置解析的ip
    IN MX 10 mail.rj.com.
mail A  133.40.19.1
www     A       133.40.19.20
    A   133.40.19.21
    A   133.40.19.22
    A   133.40.19.29
ftp A   133.40.19.3
hadoop A  133.40.19.4

3. 子域的配置

子域需要配置转发策略

vim /etc/named.rfc1912.zones
========================================================================
zone "rj.com" IN { // 父域的转发策略
    type forward;
    forward only;
    forwarders { 192.168.100.22; }; //多个地址使用分号分割
};

zone "gz.rj.com" IN { //子域的解析配置
    type master;
    file "gz.rj.com.zone";
    allow-update { none; };
};

转发策略forward后边的关键字

  • only

    only参数表示本机无法解析的域名全部转发至forwarders,且仅转发给forwarders,如果forwarders无法帮助我们解析的话,就转而向根域服务器发起请求。

  • first

    first参数表示把所有父域的域名全部转发至forwarders去解析。

子域的数据文件配置

$TTL 1D
@       IN SOA  rj.com. root.rj.com. (
                                        5       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
    NS  ns
ns  A   192.168.100.44
    IN MX 10 mail
mail A  133.40.19.10
www A   133.45.3.2
ftp A   133.45.3.4

4.解析测试

# 父NS可以解析父A记录(DNS)
nslookup www.rj.com 192.168.100.22
# 父NS可以解析子A记录(子域委派)
nslookup www.gz.rj.com 192.168.100.22
# 子NS可以解析子A记录(DNS)
nslookup www.gz.rj.com 192.168.100.44
# 子NS可以解析父A记录(解析转发)
nslookup www.rj.com 192.168.100.44 # 非权威应答

参考文献:

最后修改:2021 年 04 月 05 日
如果觉得我的文章对你有用,请随意赞赏~