DNS服务搭建及转发

dig :yum install -y bind-utils

yum install bind

/etc/named.conf为DNS主配置文件
/etc/init.d/named为DNS服务起停脚本(Centos7为systemctl start named)

 

cp /etc/named.conf /etc/named.conf.bak 备份原配置文件

> /etc/named.conf 清空配置文件

vim /etc/named.conf    编辑配置文件

 

options {

       directory "/var/named";

};

 

zone "." IN {

       type hint;

       file "named.ca";

};

 

zone "localhost" IN {

       type master;

       file "localhost.zone";

};

 

zone "0.0.127.in-addr.arpa" IN {

       type master;

       file "named.local";

};

 

chown named /etc/named.conf(一般情况下默认已设置所属主为named)

cd /var/named/

dig -t NS . > named.ca

vim localhost.zone 加入

@               IN      SOA    localhost.     admin.localhost.        (

                                                                       2013081601

                                                                        1H

                                                                       10M

                                                                       7D

                                                                        1D

                                                                       )

@               IN      NS     localhost.

localhost.      IN     A       127.0.0.1

 

 

vim named.local 加入

$TTL 86400

@               IN      SOA    localhost.     admin.localhost.        (

                                                                       2013081601

                                                                       1H

                                                                       10M

                                                                       7D

                                                                       1D

                                                                       )

@               IN      NS     localhost.

1               IN      PTR    localhost

 

检查配置是否有问题

named-checkconf(没有任何显示说明没有问题)

正向解析(域名到IP)

named-checkzone "localhost" /var/named/localhost.zone

反向解析(IP到域名)

named-checkzone "0.0.27.in-addr.arpa" /var/named/named.local

 

rndc-confgen -r /dev/urandom -a 生成rndc.key,如果没有这个key,named启动不了

chown named:named  /etc/rndc.key

 

systemctl start named 启动named

netstat -nlp | grep named 查看一下named进程是否监听了53端口

测试正向解析:dig @127.0.0.1 localhost

测试反向解析:dig @127.0.0.1 -x 127.0.0.1

PTR反解析

 

增加一个域名

自定义zone(abc.com)

vim /etc/named.conf 加入

zone "abc.com" IN {

       type master;

       file "abc.com.zone";

};

 

编辑zone文件:vim /var/named/abc.com.zone

$TTL 600

@               IN      SOA    abc.com      root.abc.com        (

                                                                       2013081601

                                                                       1H

                                                                       10M

                                                                       7D

                                                                       1D

                                                                       )

                IN      NS             ns.abc.com.

                IN      MX     10      mail.abc.com.

ns              IN      A               192.168.153.133

www             IN      A               192.168.153.134

mail            IN      A               192.168.153.100

bbs             IN     CNAME           www.abc.com.

 

vim /etc/resolv.conf

修改dns为本机IP

named-checkconf

named-checkzone "abc.com"/var/named/abc.com.zone

都OK的话重启named

systemctl restart named

然后ping www.abc.commail.abc.com 会解析到对应的153.133/153.134上

 

各个参数的含义

q TTL:表示域名缓存周期字段,指定该资源文件中的信息存放在DNS缓存服务器的时间,此处设置为600秒,表示超过600秒则DNS缓存服务器重新获取该域名的信息。

q @:表示本域,SOA描述了一个授权区域,如有abc.com的域名请求将到ns.abc.com域查找。root表示接收信息的邮箱,此处为本地的root用户。

q serial:表示该区域文件的版本号。当区域文件中的数据改变时,这个数值将要改变。从服务器在一定时间以后请求主服务器的SOA记录,并将该序列号值与缓存中的SOA记录的序列号相比较,如果数值改变了,从服务器将重新拉取主服务器的数据信息。

q refresh:指定了从域名服务器将要检查主域名服务器的SOA记录的时间间隔,单位为秒。

q retry:指定了从域名服务器的一个请求或一个区域刷新失败后,从服务器重新与主服务器联系的时间间隔,单位是秒。

q expire:指在指定的时间内,如果从服务器还不能联系到主服务器,从服务器将丢去所有的区域数据。

q Minimum:如果没有明确指定TTL的值,则minimum 表示域名缺省的缓存周期。

q A:表示主机记录,用于将一个主机名与一个或一组IP地址相相对应。

q NS:一条NS 记录指向一个给定区域的主域名服务器,以及包含该服务器主机名的资源记录。

q CNAME:用来将一个域名和该域名的别名相关联,访问域名的别名和访问域名的原始名字将解析到同样的主机地址。

最后四行分别定义了相关域名的指向的IP地址。


 

 

配置DNS转发

我们配置的DNS只能解析我们自己定义的zone的,没有定义的是不能解析的。

配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确存在,也就是说这个域名已经被某个DNS服务器解析了

环境

DNS服务器:前文配置好的192.168.153.133abc.com

测试客户机:192.168.153.136

 

在测试机上修改dns,修改为153.133,我们自己配置的DNS服务器

vim /etc/resolv.conf

# Generated by NetworkManager

nameserver 192.168.153.133

 

dig abc.com 测试,解析到153.133

现在测试机只能解析到已配置好的DNS服务器上,但是访问不了互联网,所以需要在DNS服务器上配置转发

vim /etc/named.conf  在options里加入forward

options {

       directory "/var/named";

       forward first;

       forwarders {8.8.8.8;};

};

这两行就是用来配置转发的,该DNS服务器不能解析的域名就会转发到8.8.8.8这个服务器上去解析。

named-checkconf 检查配置文件是否有错误

systemctl restart named  重启named服务

 

在测试机上测试ping www.abc.com发现IP是192.168.153.134

ping www.qq.com则是正常的互联网IP

 

 

你可能感兴趣的:(linux相关)