DNS 服务器

本实验环境为 Centos7,使用 bind 完成 dns 服务器的搭建,并测试正向反向域名解析。

安装 Bind

1
[root@server ~]# yum -y install bind bind-utils

bind 为 DNS 服务程序,
bind-utils 提供了 nslookup , dighost 等域名解析测试命令

配置文件

主配置文件

1
/etc/named.conf

区域配置文件

1
/etc/named.rfc1912.zones

数据目录

1
/var/named/

配置文件修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@server ~]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };

dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

zone "example.com" IN {
type master;
file "zheng";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "fan";
};
# 添加域,,可以添加到 /etc/named 或 /etc/named.rfc1912.zones 中
  • dnssec-enable: 是否支持DNSSEC开关,默认为yes。
  • dnssec-validation: 是否进行DNSSEC确认开关,默认为no。
  • dnssec-accept-expired: 接受验证DNSSEC签名过期的信号,默认为no。
  • dnssec-lookaside:当设置dnssec-lookaside,它为验证器提供另外一个能在网络区域的顶层验证DNSKEY的方法。
  • dnssec-must-be-secure: 指定验证等级,如果选yes,named只接收安全的回应,如果选no,一般的dnssec验证将允许接收不安全的回应。

    创建解析文件

    正向

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [root@server ~]# cp /var/named/named.localhost zheng
    [root@server ~]# vim /var/named/zheng
    $TTL 1D
    @ IN SOA dns.example.com. root.example.com. (
    0 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    @ IN NS dns.example.com.
    dns IN A 192.168.1.109
    @ IN MX 10 mail.example.com.
    mail IN A 192.168.1.109
    www IN A 192.168.1.109
    ftp IN CNAME www

反向

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@server ~]# cp /var/named/named.localhost fan
[root@server ~]# vim /var/named/fan
$TTL 1D
@ IN SOA dns.example.com. root.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.example.com.
109 IN PTR dns.example.com.
@ IN MX 10 mail.example.com.
109 IN PTR mail.example.com.
109 IN PTR www.example.com.

修改属组

1
2
3
[root@server ~]# chown root:named /var/named/zheng
[root@server ~]# chown root:named /var/named/fan
[root@server ~]# systemctl start named

修改本机域名解析

1
2
3
4
[root@server ~]# echo "nameserver 192.168.1.106" > /etc/resolv.conf
# 修改/etc/resolv.conf 文件为临时修改,重启网络服务后会恢复默认
[root@server ~]# echo "DNS1=192.168.1.109" >> /etc/sysconfig/network-scripts/ifcfg-ens32
# 修改网络连接配置文件为永久修改

防火墙添加端口

对外提供域名解析需要开启 TCP&UDP 的 53 端口

1
2
3
4
[root@server ~]# firewall-cmd --permanent --add-port=53/TCP
[root@server ~]# firewall-cmd --permanent --add-port=53/udp
[root@server ~]# firewall-cmd --reload
[root@server ~]# systemctl restart named

测试域名解析

  • nslookup
  • dig [-x|-t]
  • host [-t]