DNS服务作为互联网上一个基础服务承担着将用户请求的名称转换成对应的IP或将IP转换为名称的功能。本地DNS服务器会先查询缓存内是否有该名称的IP,如果没有就递归向根服务器查询
DNS主服务器:CentOS 7 → 192.168.1.113
DNS从服务器:CentOS 7 → 192.168.1.73
测试服务器:Window10
安装DNS主服务器
1、安装
[root@kvm113]# yum install bind bind-utils -y
2、修改配置文件
vim /etc/named.conf
# 修改
# 监听任何ip对53端口的请求
listen-on port 53 { any; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
# 接收任何来源查询dns记录
allow-query { any; };
recursion yes;
3、创建解析区域
vim /etc/named.rfc1912.zones
# 增加正向解析
zone "mshxuyi.com" IN {
type master;
file "mshxuyi.com.zone";
allow-update { none; };
};
# 增加反向解析
zone "1.168.192.in-addr.arpa" IN {
type master;
file "mshxuyi.com.local";
allow-update { none; };
};
区域解析库文件是由众多RR(Resource Record)值组成,资源记录的格式为:
domain_name [TTL] IN rr_type value
domain_name:当前区域的名字,如contoso.com.(结尾的小点不能省略),因为在/etc/named.rfc912.zones配置文件中已经定义的当前区域名称,所以此处可以使用@来简写
TTL:可以从全局继承,即在区域解析库文件的首部使用$TTL来定义;
rr_type:SOA、A、CNAME、MX、NS等。一个区域解析库有且仅能有一个SOA(Start Of Authority)记录,而必须为解析库的第一条记录;
value:有多个部分组成。(1)当前区域主DNS服务器的FQDN(同时带有主机名和域名的名称,如kvm113.mshxuyi.com),也可以是当前区域的名字(简写为@);(2)当前区域管理员的邮箱地址,因为@在该文件中有特殊用法,所以邮箱中出现@的地方都用点来代替。
4、正向解析库文件
cd /var/named/
# 正向解析
cp -p named.empty mshxuyi.com.zone
# 修改如下
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.mshxuyi.com.
IN MX 10 mail.mshxuyi.com.
www IN A 192.168.1.73
dns IN A 192.168.1.113
mail IN A 192.168.1.114
ftp IN CNAME www
5、反向解析库文件
反向区域解析库文件不需要MX和A,以及AAAA记录;以PTR记录为主
# 反向解析
cp -p mshxuyi.com.zone mshxuyi.com.local
# 修改如下
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns.mshxuyi.com.
73 IN PTR www.mshxuyi.com.
114 IN PTR mail.mshxuyi.com.
113 IN PTR dns.mshxuyi.com.
5、检测解析配置文件是否正确
# 正向文件
named-checkzone mshxuyi.com mshxuyi.com.zone
# 正确
zone mshxuyi.com/IN: loaded serial 0
OK
# 反向文件
named-checkzone 1.168.192.in-addr.arpa mshxuyi.com.local
# 正确
zone 1.168.192.in-addr.arpa/IN: loaded serial 0
OK
6、重启
# 开启防火墙
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
# 重启
systemctl restart named
测试
1、win10 电脑加入 DNS 192.168.1.113
2、成功解析
Microsoft Windows [版本 10.0.17763.1098]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\shihua.ma>nslookup mail.mshxuyi.com
服务器: dns.mshxuyi.com
Address: 192.168.1.113
名称: mail.mshxuyi.com
Address: 192.168.1.114
C:\Users\shihua.ma>
安装DNS从服务器
搭建主从服务器,除了减轻负载,还有一个更重要的作用,就是允许当主服务器出现错误,另外一台能够继续提供服务
安装过程、修改配置方法 与主DNS服务器一样
1、创建解析区域
vim /etc/named.rfc1912.zones
# 修改如下
# 指定类型为从服务器,对应IP,从服务器解析库文件名
zone "mshxuyi.com" IN {
type slave;
masters { 192.168.1.113; };
file "slaves/mshxuyi.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.1.113; };
file "slaves/mshxuyi.com.local";
};
2、启动后在 /var/named/slaves/ 下面多个 2个文件
# 启动
systemctl restart named
# 查看同步过来的解析文件
[root@kvm73 named]# ll /var/named/slaves/
-rw-r--r-- 1 named named 393 3月 27 14:48 mshxuyi.com.local
-rw-r--r-- 1 named named 400 3月 27 14:48 mshxuyi.com.zone
3、测试
4、成功解析
C:\Users\shihua.ma>nslookup mail.mshxuyi.com
服务器: www.mshxuyi.com
Address: 192.168.1.73
名称: mail.mshxuyi.com
Address: 192.168.1.114
C:\Users\shihua.ma>