DNS域名解析
DNS(Domain Name System)域名系統(tǒng),在TCP/IP 網(wǎng)絡(luò)中有非常重要的地位治拿,能夠提供域名與IP地址的解析服務(wù)摩泪。
DNS 是一個分布式數(shù)據(jù)庫,命名系統(tǒng)采用層次的邏輯結(jié)構(gòu)劫谅,如同一棵倒置的樹见坑,這個邏輯的樹形結(jié)構(gòu)稱為域名空間,由于DNS 劃分了域名空間捏检,所以各機構(gòu)可以使用自己的域名空間創(chuàng)建DNS信息荞驴。
注:DNS 域名空間中,樹的最大深度不得超過127 層贯城,樹中每個節(jié)點最長可以存儲63 個字符熊楼。
兩種查詢方式:
(1)遞歸查詢
遞歸查詢是一種DNS 服務(wù)器的查詢模式,在該模式下DNS 服務(wù)器接收到客戶機請求能犯,必須使用一
個準(zhǔn)確的查詢結(jié)果回復(fù)客戶機鲫骗。如果DNS 服務(wù)器本地沒有存儲查詢DNS 信息犬耻,那么該服務(wù)器會詢
問其他服務(wù)器,并將返回的查詢結(jié)果提交給客戶機执泰。
(2)迭代查詢
DNS 服務(wù)器另外一種查詢方式為迭代查詢枕磁,當(dāng)客戶機發(fā)送查詢請求時,DNS 服務(wù)器并不直接回復(fù)查詢結(jié)果术吝,而是告訴客戶機另一臺DNS 服務(wù)器地址计济,客戶機再向這臺DNS 服務(wù)器提交請求,依次循環(huán)直到返回查詢的結(jié)果為止排苍。
DNS服務(wù)部署-正向解析
第一步:關(guān)閉防火墻
```
[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
```
第四步:修改區(qū)域配置文件
```
[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? #注意復(fù)制的時候一定要加-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
```
第七步:重啟服務(wù)
```
[root@ken network-scripts]# systemctl restart named
```
第八步:使用自己配置DNS服務(wù)器
```
[root@ken named]#vim? /etc/sysconfig/network-scripts/ifcfg-ens33(原基礎(chǔ)不動沦寂,在最后加DNS,之前的DNS加#進行轉(zhuǎn)義)
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
```
第九步:重啟網(wǎng)卡
```
[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服務(wù)部署-反向解析
第一步:關(guān)閉防火墻
```
[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
```
第四步:修改區(qū)域配置文件
```
[root@ken ~]# vim /etc/named.rfc1912.zones(在最后一個編寫淘衙,原基礎(chǔ)上進行修改凑队,前幾個都是正向解析,并且服務(wù)器的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
```
第七步:重啟服務(wù)
```
[root@ken network-scripts]# systemctl restart named
```
第八步:使用自己配置DNS服務(wù)器
```
[root@ken named]#vim? /etc/sysconfig/network-scripts/ifcfg-ens33(原基礎(chǔ)不動,在最后加DNS西壮,之前的DNS加#進行轉(zhuǎn)義)
?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
```
第九步:重啟網(wǎng)卡
```
[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.
```