目錄
一、DNS理論基礎
1,DNS 的出現及演化
IP地址通信 》》hosts文件解析》》DNS系統
2,DNS概述入門
DNS (Domain Name System,域名系統),域名與IP的相互映射,提供用戶訪問互聯網;
DNS端口:53 UDP協議
DNS的分布式數據庫是以域名為索引的,每個域名實際上就是一顆很大的逆向樹,樹深最大127層,每個節點都有63個字符的文本標號;
3,DNS域名解析過程
首先,客戶端先在本地緩存查找有沒有域名緩存,如果沒有,客戶端發出DNS請求翻譯IP地址或主機名。DNS服務器在收到客戶機的請求后:
(4步描述)
(1)檢查DNS服務器的緩存,若查到請求的地址或名字,即向客戶機發出應答信息;
(2)若沒有查到,則在數據庫中查找,若查到請求的地址或名字,即向客戶機發出應答信息;
(3)若沒有查到,則將請求發給根域DNS服務器,並依序從根域查找頂級域,由頂級查找二級域,二級域查找三級,直至找到要解析的地址或名字,即向客戶機所在網絡的DNS服務器發出應答信息,DNS服務器收到應答后現在緩存中存儲,然后,將解析結果發給客戶機。
(4)若沒有找到,則返回錯誤信息。
4,Dns的分類
主DNS服務器:就是一台存儲着原始資料的DNS服務器。
從DNS服務器:使用自動更新方式從主DNS服務器同步數據的DNS服務器。也成輔助DNS服務器。
緩存服務器:不負責本地解析,采用遞歸方式轉發客戶機查詢請求,並返回結果給客戶機的DNS服務器。同時緩存查詢回來的結果,也叫遞歸服務器。
轉發器:這台DNS發現非本機負責的查詢請求時,不再向根域發起請求,而是直接轉發給指定的一台或者多台服務器。自身並不緩存查詢結果。
5,DNS記錄類型
A記錄:
將域名指向一個IPv4地址(例如:10.10.10.10),需要增加A記錄
CNAME記錄:
如果將域名指向一個域名,實現與被指向域名相同的訪問效果,需要增加CNAME記錄
MX記錄:
建立電子郵箱服務,將指向郵件服務器地址,需要設置MX記錄
NS記錄:
域名解析服務器記錄,如果要將子域名指定某個域名服務器來解析,需要設置NS記錄
TXT記錄:
可任意填寫(可為空),通常用做SPF記錄(反垃圾郵件)使用
AAAA記錄:
將主機名(或域名)指向一個IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA記錄
SRV記錄:
記錄了哪台計算機提供了哪個服務。格式為:服務的名字.協議的類型(例如:_example-server._tcp)
顯性URL:
將域名指向一個http(s)協議地址,訪問域名時,自動跳轉至目標地址(例如:將www.net.cn顯性轉發到www.hichina.com后,訪問www.net.cn時,地址欄顯示的地址為:www.hichina.com)。
隱性URL:
與顯性URL類似,但隱性轉發會隱藏真實的目標地址(例如:將www.net.cn隱性轉發到www.hichina.com后,訪問www.net.cn時,地址欄顯示的地址仍然為:www.net.cn)。
二、環境介紹
[root@localhost ~]# uname -a
Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
三、部署bind
3.1 yum 安裝bind 9
[root@localhost ~]# yum -y install bind*.x86_64
[root@localhost ~]# systemctl enable named
[root@localhost ~]# systemctl start named
[root@localhost ~]# systemctl status named
3.2 查看端口狀態
[root@localhost ~]# netstat -lntup|grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 4363/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 4363/named
tcp6 0 0 ::1:53 :::* LISTEN 4363/named
tcp6 0 0 ::1:953 :::* LISTEN 4363/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 4363/named
udp6 0 0 ::1:53 :::* 4363/named
# 記得關閉selinux
如上,則bind啟動完成
四、修改配置文件
4.1調整網絡訪問權限
[root@localhost ~]# vim /etc/named.conf
##改options中的listen-on那一行的 “127.0.0.1” 為 “any”,allow-query 中的“localhost” 為”any”,意思是接受其他主機的訪問和查詢,如下:
重啟bind服務
[root@localhost ~]# systemctl restart named
4.2 遠程測試53端口是否可以訪問
使用telnet 命令測試,如果沒有自己去百度如何添加這個服務
4.3 添加配置zone
[root@localhost ~]# vim /etc/named.conf
zone "qiu.com." IN {
type master;
file "qiu.com.zone";
};
4.4 編輯qiu.com.zone 正向解析文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp named.localhost qiu.com.zone
[root@localhost named]# chown named.named qiu.com.zone
[root@localhost named]# chmod 640 qiu.com.zone
改為如下配置:
$TTL 1D
@ IN SOA ns.qiu.com. xx.qiu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
ns A 192.168.56.11
master A 192.168.56.11
www CNAME master
web CNAME slave
4.5 檢查配置文件
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "qiu.com." /var/named/qiu.com.zone
zone qiu.com/IN: loaded serial 0
OK #輸出OK 代表正常,否則自行查詢日志,或加入qq群 逗哥為您排查
五、重啟named.server,測試域名解析
[root@localhost named]# systemctl restart named
[root@localhost named]# dig www.qiu.com @192.168.56.11
如上,在dns 服務器 192.168.56.11 上查到 www.qiu.com 指向 master.test.com,然后master.test.com 指向 192.168.56.11
六、配置反向解析
6.1 編輯 /etc/named.conf 在第3步添加的 zone 下面 添加:
zone "0.168.192.in-addr.arpa." IN {
type master;
file "192.168.56.rev";
};
6.2 創建rev文件
[root@localhost named]# cp qiu.com.zone 192.168.56.rev
[root@localhost named]# chown named.named 192.168.56.rev
6.3 編輯 192.168.56.rev
[root@localhost named]# cat 192.168.56.rev
$TTL 1D
$TTL 1D
@ IN SOA ns.qiu.com. xx.qiu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.qiu.com.
11 PTR ns.qiu.com. #11是master的IP
11 PTR master.qiu.com.
12 PTR slave.qiu.com #12是slave的iP
6.4 檢查配置文件
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "56.168.192.in-addr.arpa" /var/named/192.168.56.rev
zone 56.168.192.in-addr.arpa/IN: loaded serial 0
OK ##正常
七、測試反向解析
[root@localhost named]# systemctl restart named
[root@localhost named]# dig -x 192.168.56.12 @192.168.56.11
至此,主DNS 服務器上的 正向、反向解析已配置成功。