DNS服務:
默認端口:53
協議(C/S 53/udp 53/tcp) 應用層協議
名稱解析的配置文件:host
/etc/hosts
DNS域名:
根域: . 一個點 13個
頂級域: 組織域:.com(網絡服務) .gov(政府) .edu(教育) .mil(軍事) .net(網絡服務) .org(非盈利組織) 國家域:.cn(中國) .tw(國家) .jp(國家)
二級域:
DNS查詢類型:
遞歸查詢 負責到底 最終給出結果
叠代查詢 不負責到底 給最佳結果
解析類型:
正向解析 FQDN --> ip
FQDN 完全限定的域名
反向解析 ip --> FQDN
DNS名稱解析的查詢模式
1、遞歸查詢:當收到客戶端的遞歸查詢請求後,當前DNS服務器只會向DNS客戶端返回兩種信息:要麽是在該DNS服務器上查詢到的結果,要麽是查詢失敗,如果當前DNS服務器中無法解析名稱,它並不會主動告知DNS客戶端其它可能的DNS服務器,而是自行向其它DNS服務器查詢並完成解析。如果其它DNS服務器解析失敗,則DNS服務器將向DNS客戶端返回查詢失敗的消息。遞歸即是有來有往。
2、叠代查詢:叠代查詢通常在一臺DNS服務器向另一臺服務器發出解析請求時使用。如果當前DNS收到其它DNS服務器發來的叠代查詢請求並且未能在本地查詢到所需要的數據,則當前DNS服務器將告訴發起查詢的服務器另一臺服務器的IP地址。然後,再由發起查詢的DNS服務器自行向另一臺DNS服務器發起查詢;依次類推,直到查詢到所需數據為止。如果到最後一臺DNS服務器仍沒有查到所需數據,則通知最初發起查詢的DNS服務器解析失敗。叠代的意思就是若在某地查不到,該地就會告知查詢者其它地方的地址。讓查詢轉到其它地方去查。
說白就是這樣:
遞歸查詢:
一般客戶機和服務器之間屬遞歸查詢,即當客戶機向服務器發出請求後,若服務器本身不能解析,則會向另外的服務器發出查詢請求,得到結果後轉交給客戶機;
叠代查詢(反復查詢):
一般DNS服務器之間屬叠代查詢,如:若DNS2不能響應DNS1的請求,則它會將DNS3的IP給DNS2,以便其再向DNS3發出請求;
FQDN:全稱域名
DNS服務器的類型:
主DNS服務:管理和維護負責解析的域內解析庫的服務器
從DNS服務:從組服務器或從服務器復制(區域傳輸)解析庫 緩存DNS服務(轉發器) 序列號:庫的版本號 刷新時間:從服務器從主服務器請求同步時間間隔 過期時間:從服務器請求同步失敗,會再次嘗試時間同步 過期時長:從服務器聯系不到主服務器,多久後停止服務 “通知”機制:主服務器解析庫發生變化時,會主動通知從服務器
區域傳輸:
完全傳輸:傳輸整個解析庫
增量傳輸:傳遞解析庫變化的內容
上海電信DNS 202.96.209.133
DNS解析
一次完整的查詢請求經過的流程:
Client(用戶) -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(叠代) --> 根--> 頂級域名DNS-->二級域名DNS…
資源記錄:
記錄類型:
SOA:Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄,必須位於解析庫的第一條記錄
A:internet Address,作用,FQDN --> IP 正向解析
AAAA: FQDN --> IPv6 對應IPV6的地址 用的較少
PTR: PoinTeR,IP --> FQDN 反響解析
NS: Name Server,專用於標明當前區域的DNS服務器
CNAME:Canonical Name,別名記錄
MX:Mail eXchanger,郵件交換器
SOA記錄
name: 當前區域的名字,例如“chenedu.com.”
value: 有多部分組成
(1) 當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;
(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,一般用.替換,例如linuxedu.chenedu.com
(3) 主從服務區域傳輸相關定義以及否定的答案的統一的TTL
例如:
chenedu.com. 86400 IN SOA ns.chenedu.com. nsadmin.chenedu.com. (
2015042201 ;序列號
2H ;刷新時間
10M;重試時間
1W;過期時間
1D;否定答案的TTL值
)
NS記錄
name: 當前區域的名字
value: 當前區域的某DNS服務器的名字,例如ns.chenedu.com.;
註意:一個區域可以有多個NS記錄;
例如:
chenedu.com.INNS ns1.chenedu.com.
chenedu.com.INNS ns2.chenedu.com.
註意:
(1) 相鄰的兩個資源記錄的name相同時,後續的可省略
(2) 對NS記錄而言,任何一個ns記錄後面的服務器名字,都應該在後續有一個A記錄
MX記錄
name: 當前區域的名字
value: 當前區域的某郵件服務器(smtp服務器)的主機名
一個區域內,MX記錄可有多個;但每個記錄的value之前應該有一個數字(0-99),表示此服務器的優先級;數字越小優先級越高
例如:
chenedu.com.INMX 10 mx1.chenedu.com.
IN MX 20 mx2.chenedu.com.
註意:
(1) 對MX記錄而言,任何一個MX記錄後面的服務器名字,都應該在後續有一個A記錄
A記錄
name: 某主機的FQDN,例如www.chenedu.com.
value: 主機名對應主機的IP地址;
例如:
www.chenedu.com.IN A 1.1.1.1
www.chenedu.com.IN A2.2.2.2
mx1.chenedu.com. IN A3.3.3.3
mx2.chenedu.com. IN A4.4.4.4
註意:
*.chenedu.com. IN A 5.5.5.5
chenedu.com.IN A6.6.6.6
避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址
AAAA:
name: FQDN
value: IPv6
PTR:
name: IP,有特定格式,把IP地址反過來寫,1.2.3.4,要寫作4.3.2.1;而有特定後綴:in-addr.arpa.,所以完整寫法為:4.3.2.1.in-addra.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com
簡寫成:如1.2.3為網絡地址,可省
4 IN PTR www.chenedu.com.
註意:網絡地址及後綴可省略;主機地址依然需要反著寫
CNAME:別名記錄
name: 別名的FQDN
value: 真正名字的FQDN;
例如:
www.chenedu.com. IN CNAME websrv.chenedu.com.
DNS安裝服務: 塔建主DNS 正向解析 在搭建時參考/etc/namednamed.localhost 的文件
一、BIND安裝:
DNS服務程序包 bind unbound centos7 上兩個包都有 都可以當DNS
yum -y install bind
systemctl start named centos 7
systemctl enable named 開機自動啟動
service nmaed start centos 6
chkconfig named on 開機自動啟動
ss -tnl 查看 53端口是否打開
剛搭建的DNS外界是無法訪問的 ,只能內部訪問 默認的外部無法訪問
二、配置文件修改
在修改文件之間先備份一個以防萬一 cp /etc/named.conf /etc/named.conf.bak
修改/etc/named.conf的配置文件
將127.0.0.1的地址修改一下成 localhost 修改的原因是本主機的所有IP地址都可以訪問
vim /etc/named.conf
options {
listen-on port 53 { localhost; }; 綁定在哪個ip的53端口
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; };
allow-transfer { 192.168.148.122; }; 指定從服務器地址
systemctl reload named 在重新讀取一下
ss -tnl 查看端口
State Recv-Q Send-Q Local Address:Po
LISTEN 0 10 172.20.10.13:53
LISTEN 0 5 192.168.122.1:53
LISTEN 0 10 127.0.0.1:53
/etc/named.rfc1912.zones 單獨存放數據的配置文件
vim /etc/named.rfc1912.zones 添加數據
zone "chen.com" IN {
type master;
file "chen.com.zone";
};
vim /etc/named/chenedu.com.zone
@ IN SOA ns1.chenedu.com. admin.chenedu.com (
20170106001
1D 刷新時間 1天
5M 重試時間 5分鐘
1W 過期時間 1周
1H 否定時間 1個小時
)
NS ns1 NS記錄
ns1 A 172.20.10.13 本機ip地址 本域
websrv A 172.20.10.4 測試地址 centso6
websrv A 1.1.1.1
www CNAME websrv 地址類型
@ MX 10 mx1.chenedu.com.
mx1 A 172.20.10.13
搭建完成之後 systemctl reload named.service
tail /var/log/messages 查看日誌是否正常 也可以named-checkzone "chenedu.com" /var/named/chenedu.com.zone
root@MiWiFi-R1CM-srv named]# tail /var/log/messages
Jan 6 22:36:37 localhost named[1494]: automatic empty zone: A.E.F.IP6.ARPA
Jan 6 22:36:37 localhost named[1494]: automatic empty zone: B.E.F.IP6.ARPA
Jan 6 22:36:37 localhost named[1494]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Jan 6 22:36:37 localhost named[1494]: reloading configuration succeeded
Jan 6 22:36:37 localhost named[1494]: reloading zones succeeded
Jan 6 22:36:37 localhost named[1494]: all zones loaded
Jan 6 22:36:37 localhost named[1494]: running
在測試的主機先指定DNS ip地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.31.164
service network reload
[root@localhost ~]# dig www.chenedu.com 在另外一臺主機 測試成功
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.chenedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23681
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.chenedu.com. IN A
;; ANSWER SECTION:
www.chenedu.com. 86268 IN A 124.16.31.151
;; AUTHORITY SECTION:
chenedu.com. 172667 IN NS ns2.dnbiz.com.
chenedu.com. 172667 IN NS ns1.dnbiz.com.
;; ADDITIONAL SECTION:
ns1.dnbiz.com. 172667 IN A 205.164.14.67
ns2.dnbiz.com. 172667 IN A 205.164.14.79
;; Query time: 2 msec
;; SERVER: 172.20.10.11#53(172.20.10.11)
;; WHEN: Fri Aug 29 12:08:27 2008
;; MSG SIZE rcvd: 123
DNS 搭建反響解析:
一、先鍵/etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones
zone "31.168.192.in-addr.arpa" IN {
type master;
file "192.169.31.zone";
};
二、在搭建時參考:/etc/named/named.loopback文件來搭建
vim /var/named/192.169.31.zone
$TTL 1D
@ IN SOA ns1.chenedu.com. admin.chenedu.com. (
2017010601
1D
1H
1W
3H
)
NS ns1.chenedu.com.
164 PTR ns1.chenedu.com.
120 PTR websrv.chenedu.com.
101 PTR popchenedu.com.
chgrp named 192.169.31.zone 修改一下權限
chmod 640 192.169.31.zone 建議修改權限防止普通用戶刪除修改
systemctl reload named.service
tail /var/log/messages 查看日誌有什麽錯誤
named-checkconf 測試 是否有問題
named-checkzone
named-checkzone "31.168.192.iu-addr.arpa" /var/named/192.169.31.zone
切換主機測試:
[root@localhost ~]# dig -x www.chenedu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x www.chenedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 38643
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;com.chenedu.www.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
in-addr.arpa. 3600 IN SOA b.in-addr-servers.arpa. nstld.iana.org. 2016110826 1800 900 604800 3600
;; Query time: 1236 msec
;; SERVER: 10.88.100.56#53(10.88.100.56)
;; WHEN: Sat Aug 30 04:04:49 2008
;; MSG SIZE rcvd: 114
在centos6 上搭建一個從的DNS服務器
先把bind的包安裝好
編輯 vim /etc/named.conf
options {
listen-on port 53 { localhost; };
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; };
recursion yes;
allow-transfer { none;}; 禁止普通用戶抓包
在添加從的服務:
vim /etc/named.rfc1912.zones
zone "chenedu.com" {
type slave;
masters { 192.168.148.242;};
file "slaves/cheneduslaves.zone";
};
測試:[root@localhost ~]# dig www.chenedu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.chenedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5499
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.chenedu.com. IN A
;; ANSWER SECTION:
www.chenedu.com. 82578 IN A 124.16.31.151
;; AUTHORITY SECTION:
chenedu.com. 168977 IN NS ns2.dnbiz.com.
chenedu.com. 168977 IN NS ns1.dnbiz.com.
;; ADDITIONAL SECTION:
ns1.dnbiz.com. 68651 IN A 205.164.14.67
ns2.dnbiz.com. 68651 IN A 205.164.14.79
;; Query time: 11 msec
;; SERVER: 10.88.100.56#53(10.88.100.56)
;; WHEN: Sat Jan 07 18:54:37 CST 2017
;; MSG SIZE rcvd: 134
主從同步的原理 TCP53的端口來同步的
子域授權:每個域的名稱服務器,都是通過其上級名稱服務器在解析庫進行授權
如何搭建子域: (在同一個主機創建子域)
一、在/etc/named.rfc1912.zones 下創建
vim /etc/named.rfc1912.zones
zone "sports.chenedu.com" IN { sports.chenedu.com 一個名字可自己定義
type master;
file "sports.chenedu.com.zone"; 創建子域的文件名
};
二、在/vat/named/sports.chenedu.com.zone 創建數據庫
$TTL 1D
@ IN SOA sports.chenedu.com. admin.chenedu.com. (
2017010803
1D
2M
1W
1H
)
NS ns1
NS ns2
ns1 A 192.168.148.121
ns2 A 192.168.148.122
websrv A 192.169.148.121
websrv A 192.168.148.122
www CNAME websrv
@ MX 10 mx1
mx1 A 192.169.148.121
systemctl reload named.service 重啟服務
三、測試 dig sports.chenedu.com
[root@localhost ~]# dig sports.chenedu.com 成功
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> sports.chenedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25988
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sports.chenedu.com. IN A
;; ANSWER SECTION:
sports.chenedu.com. 86390 IN A 124.16.31.151
;; AUTHORITY SECTION:
chenedu.com. 86262 IN NS ns1.dnbiz.com.
chenedu.com. 86262 IN NS ns2.dnbiz.com.
;; ADDITIONAL SECTION:
ns1.dnbiz.com. 164644 IN A 205.164.14.67
ns2.dnbiz.com. 164644 IN A 205.164.14.79
;; Query time: 6 msec
;; SERVER: 10.88.100.56#53(10.88.100.56)
;; WHEN: Sun Jan 08 17:53:09 CST 2017
;; MSG SIZE rcvd: 137
如何在單獨一臺主機上搭建子域:
在centos6 上搭建 ip 192.168.148.122
子域 名稱tc.chenedu.com
tc NS ns1.tc
ns1.tc A 192.168.148.122
一、目錄
vim /var/named.rfc1912.zones
zone "tc.chenedu.com" IN {
type master;
file "tc.chenedu.com.zone";
};
二、創建數據庫:
vim /var/named/tc.chenedu.com.zone
$TTL 86400 ; 1 day
@ IN SOA ns1.tc.chenedu.com. admin.tc.chenedu.com. (
2017010804 ; serial
86400 ; refresh (1 day)
300 ; retry (5 minutes)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns1
ns1 A 192.168.148.122
websrv A 192.168.148.122
A 192.168.148.121
www CNAME websrv
service namde reload 重讀一下
下面直接測試即可;
DNS服務: