centos7搭建主从DNS服务器

欢迎关注我的公众号《pencil带你玩转Linux》,回复“Linux学习资料”获取视频教程哦。

DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。

主DNS服务器

 1. DNS服务器需要安装bind、bind-chroot、bind-utils:

yum -y install bind bind-utils bind-chroot

2. 编辑配置文件/etc/named.conf,找到listen-on这一行,改为:

listen-on port 53 { any; }; #any是匹配所有的意思

3.找到allow-query这一行,改为:

  allow-query     { any; };

4.对DNS配置文件进行一下语法检查:

named-checkconf /etc/named.conf

5.重启DNS服务器:

systemctl   restart  named

6.查看DNS服务器是否启动:

systemctl status named

7.配置防火墙 添加服务:

firewall-cmd --permanent --add-service=dns
firewall-cmd  --reload

8.配置正向解析

编辑 /etc/named.rfc1912.zones,在末尾添加需要解析的域:

以www.web1.com为例,192.168.52.134是DNS服务器的本机Ip
zone "web1.com" IN {
  type master;
  file "data/web1.com.zone";
};

在/var/named/data/目录下创建web1.com.zone域:

$TTL 3H   #3H 是3小时
@       IN SOA  web1.com. root (
            #web1.com是主机名称,即在这个域中哪个DNS作为主服务器,在本例中,即为web1.com    root是管理员邮箱地址
                                        20180928 ; serial  #序号。这个序号代表这个数据库档案的陈旧,序号越大,代表越新。当slave要判断是否主动下载新的数据库时,就以序号是否比slave上的还有新来判断。
                                        1D      ; refresh  #即slave向master要求数据更新的频率。
                                        1H      ; retry   #失败重新尝试时间(Retry)。如果因为某些因素,导致slave无法对master达成联机,那么在多久的时间内,slave会尝试重新联机到master。
                                        1W      ; expire  #失效时间(Expire)。如果一直失败尝试时间,持续联机到达这个设定值时限,那么slave将不再继续尝试联机。
                                        3H )    ; minimum  #存活时间(Minimum TTL)。如果在这个数据库zone file中,每笔记录都没有显性设定TTL快取时间的话,那么就以这个值为主。
        IN   NS            @
        IN   A          192.168.52.134
www     IN   A          192.168.52.134
ftp     IN   A          192.168.52.134

重启DNS:

systemctl restart named

修改/etc/resolv.conf:

vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.52.134

ping www.web1.com:

#ping -c 4 www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from www.web3.com (192.168.52.134): icmp_seq=1 ttl=64 time=0.281 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=2 ttl=64 time=0.370 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=3 ttl=64 time=0.263 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=4 ttl=64 time=0.285 ms

以上结果说明解析成功!

或使用nslookup命令验证:

#nslookup 
> www.web1.com
Server:		192.168.52.134
Address:	192.168.52.134#53

Name:	www.web1.com
Address: 192.168.52.134
> 

反向解析

1.修改/etc/named.rfc1912.zones

zone "52.168.192.in-addr.arpa" IN {
#注意192.168.52是3位网络位
  type master;
  file "data/52.168.192.zone";

};

2.在/var/named/data/目录下创建52.168.192.zone方向解析域:

$TTL 3H
@       IN SOA   web3.com.  root (
                                        20180928; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@     IN      NS       www.web3.com.
134  IN     PTR        www.web3.com.
134  IN     PTR       ftp.web3.com.

3.重启DNS:

systemctl restart named

4.nslookup 192.168.52.134:

#nslookup 192.168.52.134
Server:		192.168.52.134
Address:	192.168.52.134#53

134.52.168.192.in-addr.arpa	name = www.web3.com.
134.52.168.192.in-addr.arpa	name = ftp.web3.com.

至此反向代理设置成功!

从DNS服务器配置

从DNS服务器是192.168.52.139的机器

 

1.在主dns服务器的/etc/named.rfc1912.zones中找到刚才的添加的web1.com域名和52.168.192.in-addr.arpa反向解析域c修改如下:

zone "web1.com" IN {
  type master;
  file "data/web1.com.zone";
     allow-transfer {192.168.52.139;};
        notify              yes;
        also-notify  {192.168.52.139;};
};
zone "52.168.192.in-addr.arpa" IN {
  type master;
  file "data/134.52.168.192.zone";
   allow-transfer {192.168.52.139;}; #只允许通知的从服务器
        notify              yes;  #主从同步通知从DNS这个配置很重要     
        also-notify  {192.168.52.139;};  

};

2.编辑从服务器上的named.conf文件:

listen-on port 53 { any; }; 
 allow-query     { any; };

3.编辑从DNS服务器/etc/named.rfc1912.zones:

zone "web1.com"   IN {
        type slave;                                   ###本机是从服务器
        file "data/web1.com.zone";             ###将同步后的文件放置在哪里,这里是/var/named/data/

        masters { 192.168.52.134; };         ###指定主服务器的ip地址
};

4.在/var/named/data/目录下创建web1.com.zone的空文件, 并设置所有者,所有组都为named:

chown named:named web1.com.zone

5.修改 /etc/resolv.conf:

# Generated by NetworkManager
search localdomain
nameserver 192.168.52.139

6.从启dns服务:

systemctl restart named

7,这时打开web1.com.zone,你就会发现有内容,不过是二进制内容,不能编辑,如:

cat web1.com.zone 
[���M*0
web1com-web1comrootweb1com3��Q�	:�*0$*0
web1com��4�**0
web1com
web1com(*0ftpweb1com��4�(*0wwwweb1com��4�

8.nslookup命令或ping命令验证:

nslookup  
> www.web1.com       
Server:		192.168.52.139
Address:	192.168.52.139#53

Name:	www.web1.com
Address: 192.168.52.134


ping www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=1 ttl=64 time=0.719 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=2 ttl=64 time=0.410 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=3 ttl=64 time=0.362 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=4 ttl=64 time=0.333 ms

从DNS服务器反向解析

1.编辑从DNS服务器/etc/named.rfc1912.zones:

zone "52.168.192.in-addr.arpa" IN {
  type slave;
  file "data/52.168.192.zone";
    masters { 192.168.52.134; };
};

2.在/var/named/data下创建52.168.192.zone空文件,并赋予所有者,所有组为:named:

touch 52.168.192.zone
chown named:named 52.168.192.zone

3.查看/var/named/data目录下52.168.192.zone文件是否被写入数据:

cat 52.168.192.zone

4.重启从DNS服务器,用ping和nslookup命令验证

至此主从DNS服务器搭建成功!

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是CentOS 7搭建主从DNS服务器的步骤: 1.安装bind软件包 ```shell yum install bind bind-utils -y ``` 2.配置主DNS服务器 编辑主DNS服务器的配置文件`/etc/named.conf`,添加以下内容: ```shell zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; ``` 其中`example.com`为你的域名,`example.com.zone`为你的域名解析文件。 创建域名解析文件`/var/named/example.com.zone`,添加以下内容: ```shell $TTL 1D @ IN SOA ns1.example.com. root.example.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns1.example.com. IN MX 10 mail.example.com. ns1 IN A 192.168.0.1 mail IN A 192.168.0.2 www IN A 192.168.0.3 ``` 其中`ns1.example.com.`为主DNS服务器的域名,`root.example.com.`为管理员邮箱,`ns1`、`mail`、`www`为主DNS服务器解析的主机名,`A`为主机名对应的IP地址。 启动并设置bind服务开机自启动: ```shell systemctl start named systemctl enable named ``` 3.配置从DNS服务器 编辑从DNS服务器的配置文件`/etc/named.conf`,添加以下内容: ```shell zone "example.com" IN { type slave; file "slaves/example.com.zone"; masters { 192.168.0.1; }; }; ``` 其中`example.com`为你的域名,`slaves/example.com.zone`为你的域名解析文件的存放路径,`192.168.0.1`为主DNS服务器的IP地址。 启动并设置bind服务开机自启动: ```shell systemctl start named systemctl enable named ``` 4.测试DNS解析 修改客户端的DNS配置文件`/etc/resolv.conf`,添加以下内容: ```shell search example.com nameserver 192.168.0.1 nameserver 192.168.0.2 ``` 其中`example.com`为你的域名,`192.168.0.1`为主DNS服务器的IP地址,`192.168.0.2`为从DNS服务器的IP地址。 使用`ping`命令测试DNS解析是否正常: ```shell ping www.example.com ``` 如果能够ping通,则说明DNS解析正常。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值