如何搭建DNS服务
试验环境:
1. Red Hat 6.3
2. IP 192.168.1.128
3. 欲搭建的域名 being.com
一、安装DNS软件
[root@hello ~]# yum install bind* -y
二、修改配置文件
[root@hello ~]# vim /etc/named.conf
options { listen-on port 53 { 127.0.0.1; }; -->>将127.0.0.1改为any,代表所有主机可以对本机的DNS服务进行查询 listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; -->>将localhost改为any,指定谁可以对我的DNS服务进行查询 recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; include "/etc/named.rfc1912.zones"; -->>include代表该文件是子配置文件 include "/etc/named.root.key";
三、将需要添加的域的信息写在子配置文件里 -->>记录域和域相对应的数据文件在哪里
[root@hello ~]# vim /etc/named.rfc1912.zones -->>添加到最后
zone "being.com" IN { type master; file "data/master.being.com.zone"; };
四、建立数据文件 -->>记录域名与IP的对应
[root@hello ~]# vim /var/named/data/master.being.com.zone -->>注意,这个文件名必须和上面子配置文件中的信息相同
$TTL 3600 @ IN SOA dns1 victor.mail ( 201701010 30 60 90 3600 ) @ IN NS 192.168.1.128. -->>注意这里有个点 node1 IN A 1.1.1.1 node2 IN A 2.2.2.2
在这里,因为不是做主从DNS,SOA后面的七个参数可以随便写,具体解释见下文。
其中:NS代表Name Server,A(即Address)代表后面的IP是IPv4
node1指的是主机名,倘若后面加上域名,则后面必须加个点,即node1.being.com. IN A 1.1.1.1
五、重启服务,进行测试
[root@hello ~]# /etc/init.d/named restart
[root@hello ~]# nslookup node1.being.com
Server: 192.168.1.128
Address: 192.168.1.128#53
Name: node1.being.com
Address: 2.2.2.2
正向DNS解析OK!
现在开始搭建反向DNS解析
一、在子配置文件中添加反向解析数据文件的信息
[root@hello ~]# vim /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN { type master; file "data/master.1.168.192.in-addr.arpa.zone"; };
二、 建立数据文件
[root@hello ~]# vim /var/named/data/master.1.168.192.in-addr.arpa.zone
$TTL 86400 @ IN SOA hello world ( 20171010 30 40 50 86400 ) IN NS 192.168.1.128. 11 IN PTR hello.world.com.
三、重启服务,进行测试
[root@hello ~]# /etc/init.d/named restart
[root@hello ~]# nslookup 192.168.1.11
Server: 192.168.1.128
Address: 192.168.1.128#53
11.1.168.192.in-addr.arpa name = hello.world.com.
至此,反向解析OK!
正向解析和反向解析基本OK,后面的主要是DNS其它应用的补充及相关参数的说明。
$TTL 3600 @ IN SOA dns1 victor.mail ( 20171010 30 60 90 3600 ) @ IN NS 192.168.1.128. node1 IN A 1.1.1.1 node2 IN A 2.2.2.2 hello.being.com. IN CNAME node3.being.com. node3.being.com. IN A 3.3.3.3
1. 所有设定数据一定要从行首开始,前面不可有空格符。若有空格符,代表延续前一个domain的意思
2. @代表zone的意思,在本例中,即代表being.com
3. "hello.being.com."后面的点代表一个完整主机名,即hostname.domain。如果没有这个点,则仅代表hostname
4. CNAME代表别名
5. TTL是time to live的缩写,即当这笔记录被其它DNS服务器查询到后,保存在这些服务器中的时间,单位秒
6. SOA是Start Of Authority(开始验证)的意思,与域有关,后面共会接7个参数,这7个参数的意义依次是:
1> Master DNS 服务器主机名,即在这个域中哪个DNS作为主服务器,在本例中,即dns1.being.com
2> 管理员的Email。即出现问题可给管理员发邮件。在本例中,是victor@mail.being.com
3> 序号。这个序号代表这个数据库档案的陈旧,序号越大,代表越新。当slave要判断是否主动下载新的数据库时,就以序号是否比slave上的还有新来判断
4> 更新频率(Refresh)。即slave向master要求数据更新的频率
5> 失败重新尝试时间(Retry)。如果因为某些因素,导致slave无法对master达成联机,那么在多久的时间内,slave会尝试重新联机到master
6> 失效时间(Expire)。如果一直失败尝试时间,持续联机到达这个设定值时限,那么slave将不再继续尝试联机
7> 快取时间(Minimum TTL)。如果在这个数据库zone file中,每笔记录都没有显性设定TTL快取时间的话,那么就以这个值为主