DNS域名解析
DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务。
DNS 是一个分布式数据库,命名系统采用层次的逻辑结构,如同一棵倒置的树,这个逻辑的树形结构称为域名空间,由于DNS 划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。
注:DNS 域名空间中,树的最大深度不得超过127 层,树中每个节点最长可以存储63 个字符。
两种查询方式:
(1)递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一
个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询
问其他服务器,并将返回的查询结果提交给客户机。
(2)迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
DNS服务部署-正向解析
第一步:关闭防火墙
```
[root@ken ~]# systemctl stop firewalld
[root@ken ~]# setenforce 0
```
第二步:下载bind
```
[root@ken ~]# yum install bind bind-utils -y
```
第三步:配置DNS主配置文件
```
[root@ken ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #把127.0.0.1改成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”;
allow-query { any; }; #把localhost改为any
```
第四步:修改区域配置文件
```
[root@ken ~]# vim /etc/named.rfc1912.zones
zone “kendd.cn” IN { #定义自己的域
type master;
file “kendd.cn.zone”; #定义域文件
allow-update { none; };
};
```
第五步:配置域文件
```
[root@ken named]#cd /var/named
[root@ken named]#ls
[root@ken named]# cp named.localhost kendd.cn.zone -a #注意复制的时候一定要加-a选项保持属性不变
```
第六步:配置自己的域文件
```
[root@ken named]#vim kendd.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.64.4
xin IN A 192.168.64.4
ken IN A 192.168.64.4
```
第七步:重启服务
```
[root@ken network-scripts]# systemctl restart named
```
第八步:使用自己配置DNS服务器
```
[root@ken named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33(原基础不动,在最后加DNS,之前的DNS加#进行转义)
DEVICE=”eth0″
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.64.4
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
#DNS1=8.8.8.8
#DNS2=114.114.114.114
DNS=192.168.64.4
```
第九步:重启网卡
```
[root@ken network-scripts]# systemctl restart network
```
第十步:进行验证
```
[root@ken network-scripts]# nslookup
> www.kendd.cn
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.kendd.cn
Address: 192.168.64.4
> xin.kendd.cn
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: xin.kendd.cn
Address: 192.168.64.4
```
DNS服务部署-反向解析
第一步:关闭防火墙
```
[root@ken ~]# systemctl stop firewalld
[root@ken ~]# setenforce 0
```
第二步:下载bind
```
[root@ken ~]# yum install bind bind-utils -y
```
第三步:配置DNS主配置文件
```
[root@ken ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #把127.0.0.1改成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”;
allow-query { any; }; #把localhost改为any
```
第四步:修改区域配置文件
```
[root@ken ~]# vim /etc/named.rfc1912.zones(在最后一个编写,原基础上进行修改,前几个都是正向解析,并且服务器的ip只能倒着写,最后一位不要写)
zone “64.168.192.in-addr.arpa” IN {
type master;
file “kenken.com.zone”;(定义域文件不能与正向的相同)
allow-update { none; };
};
```
第五步:定义自己的域文件
```
[root@ken named]#cd /var/named
[root@ken named]#ls
[root@ken named]# cp -a named.loopback kenken.com.zone
```
第六步:配置域文件
```
[root@ken named]#vim kenken.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
PTR localhost.
4 IN PTR www.kendd.cn
5 IN PTR mail.kendd.cn
6 IN PTR vvv.kendd.cn
```
第七步:重启服务
```
[root@ken network-scripts]# systemctl restart named
```
第八步:使用自己配置DNS服务器
```
[root@ken named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33(原基础不动,在最后加DNS,之前的DNS加#进行转义)
DEVICE=”eth0″
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.64.4
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
#DNS1=8.8.8.8
#DNS2=114.114.114.114
DNS=192.168.64.4
```
第九步:重启网卡
```
[root@ken network-scripts]# systemctl restart network
```
第十步:进行验证
```
[root@ken named]# nslookup 192.168.64.4
Server: 127.0.0.1
Address: 127.0.0.1#53
4.64.168.192.in-addr.arpa name = www.kendd.cn.64.168.192.in-addr.arpa.
[root@ken named]# nslookup 192.168.64.5
Server: 127.0.0.1
Address: 127.0.0.1#53
5.64.168.192.in-addr.arpa name = mail.kendd.cn.64.168.192.in-addr.arpa.
[root@ken named]# nslookup 192.168.64.6
Server: 127.0.0.1
Address: 127.0.0.1#53
6.64.168.192.in-addr.arpa name = vvv.kendd.cn.64.168.192.in-addr.arpa.
```