DNS服务
IP地址
<—–>域名
有正向
和反向
两种解析方式
正向:IP–>域名
反向:域名—->IP
查询方式分为递归查询
和迭代查询
,默认递归查询
递归查询:需要向客户端返回一个正确的结果,如果查询不到就继续向上查询
迭代查询:当前服务器不一样返回一个正确的结果,会将下一个DNS
服务器地址发送给客户端,由客户端决定是否继续查询
主流的DNS
协议是BIND
(伯克利因特网名称域)
全球总共有13台DNS
根服务器
主服务器:解析本区域的域名和IP
从服务器:从主服务器更新数据,防止主服务器宕机
缓存服务器:用来解决本地用户在高频率的查询中,缓解主服务器的压力
配置文件
:
主配置文件:named.conf
区域配置文件:named.rfc1912.zone
数据配置文件::自定义
配置
yum install bind-chroot bind-utils -y //安装DNS软件BIND
[root@localhost ~]# rpm -ql bind-chroot
//使用rpm查询是否安装以及查看文件位置
/usr/lib/systemd/system/named-chroot-setup.service /usr/lib/systemd/system/named-chroot.service /usr/libexec/setup-named-chroot.sh /var/named/chroot /var/named/chroot/dev /var/named/chroot/dev/null /var/named/chroot/dev/random /var/named/chroot/dev/zero /var/named/chroot/etc /var/named/chroot/etc/named /var/named/chroot/etc/named.conf /var/named/chroot/etc/pki /var/named/chroot/etc/pki/dnssec-keys /var/named/chroot/run /var/named/chroot/run/named /var/named/chroot/usr /var/named/chroot/usr/lib64 /var/named/chroot/usr/lib64/bind /var/named/chroot/var /var/named/chroot/var/log /var/named/chroot/var/named /var/named/chroot/var/run /var/named/chroot/var/tmp [root@localhost ~]#
启动named-chroot>之前只有两个目录
root@localhost ~]# ll /var/named/chroot/etc/ total 0 drwxr-x—. 2 root named 6 Apr 12 2018 named drwxr-x—. 3 root named 25 Sep 28 00:18 pki
[root@localhost ~]# systemctl start named-chroot
//启动服务
[root@localhost ~]# ll /var/named/chroot/etc/ //启动之后会增加配置文件 total 688 -rw-r–r–. 3 root root 3519 Jan 30 2018 localtime drwxr-x—. 2 root named 6 Apr 12 2018 named -rw-r—–. 1 root named 1705 Mar 22 2016 named.conf -rw-r–r–. 1 root named 3923 Apr 12 2018 named.iscdlv.key -rw-r—–. 1 root named 931 Jun 21 2007 named.rfc1912.zones -rw-r–r–. 1 root named 1587 May 22 2017 named.root.key drwxr-x—. 3 root named 25 Sep 28 00:18 pki -rw-r–r–. 1 root root 6545 Jun 7 2013 protocols -rw-r—–. 1 root named 100 Sep 28 00:23 rndc.key -rw-r–r–. 1 root root 670293 Jun 7 2013 services [root@localhost ~]#
编辑配置文件named.conf
[修改两个any
,添加一个区域文件配置,修改11、12、17
行,文件末尾增加zone
配置文件]>
这种做法就是把区域配置文件
写到主配置文件
中
13行 本地IP127.0.0.1修改为any //设置所有本机地址都可以被客户机写为DNS地址
删除14行IPV6
19行 locaohost修改为any //允许哪些客户端可以查询
在 allow-query下方添加一条forwarders {8.8.8.8;};
recursion yes; //允许递归查询
dnssec-enable no; //关闭
dnssec-validation no; //关闭
在最下方增加一个区域配置文件
zone "test.com" IN { //test.com域
type master; //类型是主服务器
file "test.com.zone"; //所有的解析有依据这个区域配置文件
};
可以使用named-checkconf
来验证以下配置文件是否配置正确
全球13台DNS根服务器
地址写在/var/named/chroot/var/named/named.ca>
区域配置文件模板var/named/named.localhost
可以将区域配置文件存在/var/named/chroot/var/named
配置文件:/etc/named.conf
区域文件:/var/named/
[root@localhost named]# vim test.com.zone
$TTL 1D
$ORIGIN test.com.
@ IN SOA test.com. admin.test.com. (
2019001 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.test.com.
ns1 IN A 192.168.44.130
www IN A 192.168.44.129
$TTL 1D //过期时间
$ORIGIN test.com. //域名
@ IN SOA test.com. admin.test.com. (
//授权信息的开始,第一个是配置的域名,第二个其实是管理员的邮箱
2020001 ; serial //表示配置文件的修改版本,格式是修改的次数,每次修改这个文件都应该修改这个数字,要不然所做出的的修改不会更新到网上的其他的DNS服务器的数据库上。
1D ; refresh //定义的是以单位的刷新频率即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据时最新的
1H ; retry //这个值规定了以小时为单位的重试的时间间隔,即当从服务器试图在主服务器上查询更新是,而连接失败了,则这个值规定了从服务器多长时间后再试
1W ; expire //失效时间,以周为单位,超过改时间扔无法更新地址数据库,则不在尝试
,3H ) ; minimum //无效地址解析记录的默认时间,以小时为单位,上面这个数据用来规定缓冲服务器不能与主服务器联系上后多长时间清楚响应的记录
@ IN NS ns1.test.com. //表示主机的域名字是什么
ns1 IN A 192.168.44.130 //创建正向记录
www IN A 192.168.44.129 //创建正向记录
可以使用named-checkzone test.com test.com.zone来检查配置文件是否正确
需要将属主更改为named
需要将自己的DNS地址设置为自己的IP,如果不设置可以使用dig
命令来测试是够正确
参数 | 说明 |
---|---|
@server | 指定服务器地址 |
-b host | 指定通过哪个主机查询 |
-f file | 从指定配置文件来进行查询 |
-p port | 指定使用的端口 |
-t type | 指定要查询的DNS类 型,例如A ,MX ,PTR |
-x ip | 指定DNS查询,输入ip得到域名 |
-4 | 使用ipv4 |
-6 | 使用ipv6 |
如果不加short
就是查询详细信息
可以尝试通过本机来解析百度的域名
因为本机中没有百度的域名所以就递归向上层查询,向上层十三台服务器查询
也可以更改/etc/resolv.conf
[root@localhost named]# cat /etc/resolv.conf
# Generated by NetworkManager
search test.com.
nameserver 192.168.44.129
就可以通过ping
短域名来实现ping
通了
可以通过修改/etc/hosts来实现直接ping
主机名来ping通