DNS:地址解析服務(應用層協議)
linux
udp 53 : 主從同步和查詢;(如今大部分使用53/udp)web
tcp 53: 主從同步數據庫
953 端口爲rndc的管理端口vim
本地解析文件windows
本地名稱解析配置文件:hosts
緩存
Linux : /etc/hosts
安全
windows : C:\Windows\System32\drivers\etc\hosts服務器
關於緩存網絡
LINUX客戶端無緩存dom
服務端清空緩存 :rndc flush
WINDOWS客戶端
ipconfig/displaydns 查看緩存
ipconfig/flushdns 清空緩存
-------------------------------------------------
DNS查詢類型:
遞歸查詢:發出一次請求就能獲得最終結果的查詢
迭代查詢:服務器在發出請求後,有可能獲得參考答案,也有可能獲得最終答案,一般獲得一個最終答案須要發送屢次請求,任何主機都不支持迭代查詢,因此須要經過dns,幫助主機去查詢。
名稱服務器:城內負責解析城內的名稱的主機;
根服務器:13組服務器
解析類型:
Name ----> IP (正向)
IP ----> Name (反向)注意:正反向解析是兩個不一樣的名稱空間,是兩棵不一樣的解析樹;
/etc/resolv.conf #DNS客戶機配置文件
用於設置DNS服務器的IP地址及DNS域名,還包含了主機的域名搜索順序。
[root@markpain ~]# cat /etc/resolv.conf //查看該文件中的內容
# Generated by NetworkManager
nameserver 8.8.8.8 //google服務器
nameserver 8.8.4.4 //google備用服務器
resolv.conf關鍵字
nameserver //定義DNS服務器的IP地址
domain //定義本地域名
search //定義域名的搜索列表
sortlist //對返回的域名進行排序
示例:
domain qq.com //定義本地域名DNS查詢類型:
遞歸查詢:發出一次請求就能獲得最終結果的查詢
迭代查詢:服務器在發出請求後,有可能獲得參考答案,也有可能獲得最終答案,一般獲得一個最終答案須要發送屢次請求,任何主機都不支持迭代查詢,因此須要經過dns,幫助主機去查詢。
名稱服務器:城內負責解析城內的名稱的主機;
根服務器:13組服務器
解析類型:
Name ----> IP (正向)
IP ----> Name (反向)注意:正反向解析是兩個不一樣的名稱空間,是兩棵不一樣的解析樹;
DNS服務器類型
DNS查詢類型:遞歸查詢和迭代查詢
主DNS服務器:管理和維護所負責解析的域內解析庫的服務器,主要用於管理
從DNS服務器:從主服務器或從服務器上覆制,他是以主DNS的SOA記錄中的序列號來判斷是否更新記錄
緩存DNS服務器(轉發器,不作任何解析,只是幫助客戶端去根服務器上問地址,而且緩存)
轉發DNS服務器
主DNS服務器:管理和維護所負責解析的域內解析庫的服務器 ;解析庫由管理維護;從DNS服務器:從主服務器或其餘的從服務器哪裏「複製」(區域傳輸)解析 庫副本;
序列號:解析庫版本號,前提: 主服務器解析庫變化時,其序列遞增;
刷新時間間隔:從服務器從主服務器請求同步解析的時間間隔;
重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔;
過時時長:從服務器聯繫不到主服務器時,多久後中止服務;
「通知」機制:主服務器解析庫發生變化時,會主動通知從服務器;
區域傳輸:
徹底傳輸:傳送整個解析庫
增量傳輸:傳遞解析庫變化的那部份內容
DNS:
Domain:
正向:FQDN --> IP(域名--->IP地址)
反向: IP --> FQDN
各須要一個解析庫來分別負責本地域名的正向和反向解析
正向區域
反向區域
FQDN: Fully Qualified Domain Name(徹底合格域名或徹底限制域名)
一次完整的查詢請求通過的流程:
Client -->hosts文件 -->DNS Service (遞歸)
Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名...---vvvv
解析答案:
確定答案:{ 權威答案:區域負責人的答案
{ 非權威答案
否認答案:請求的條目不存在等緣由致使沒法返回結果;
區域解析庫:由衆多RR組成:
資源記錄:Resource Record, RR
記錄類型:A(IPv4 -->域名,正向解析), AAAA(IPv6), PTR(反向解析), SOA(定義域是由誰負責的), NS(定義解析域的DNS服務器), CNAME(別名), MX(郵件服務)
SOA:Start Of Authority,起始受權記錄;一個區域解析庫有 且僅能有一個SOA記錄,必須位於解析庫的第一條記錄
A:internet Address,做用,FQDN(域名) --> IP (正向解析)
AAAA: FQDN --> IPv6
PTR: PoinTeR(指針),IP --> FQDN (反向解析)
NS: Name Server,專用於標明當前區域的DNS服務器
CNAME:Canonical Name,別名記錄
MX: Mail eXchanger,郵件交換器
資源記錄定義的格式:
語法:name [TTL] IN rr_type value
注意:
(1) TTL可從全局繼承
(2) @可用於引用當前區域的名字
(3) 同一個名字能夠經過多條記錄定義多個不一樣的值;此時 DNS服務器會以輪詢方式響應
(4) 同一個值也可能有多個不一樣的定義名字;經過多個不一樣的 名字指向同一個值進行定義;此僅表示經過多個不一樣的名字 能夠找到同一個主機
SOA記錄
name: 當前區域的名字,例如「magedu.com.」
value: 有多部分組成
(1) 當前區域的主DNS服務器的FQDN,也可使用當前區域的名字;
(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,通常用.替換,例如linuxedu.magedu.com
(3) 主從服務區域傳輸相關定義以及否認的答案的統一的TTL
例如:
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
NS記錄
name: 當前區域的名字
value: 當前區域的某DNS服務器的名字,例如 ns.magedu.com.
注意:一個區域能夠有多個NS記錄
例如:
#S記錄
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
#記錄
(mx1.magedu.com. IN A 3.3.3.3 )
(mx2.magedu.com. IN A 4.4.4.4 )
注意:
(1) 相鄰的兩個資源記錄的name相同時,後續的可省略
(2) 對NS記錄而言,任何一個ns記錄後面的服務器名字 ,都應該在後續有一個A記錄
MX記錄
name: 當前區域的名字
value: 當前區域的某郵件服務器(smtp服務器)的主機名
一個區域內,MX記錄可有多個;但每一個記錄的value以前應 該有一個數字(0-99),表示此服務器的優先級;數字越小優 先級越高
例如:
#MX記錄
magedu.com. IN MX 10 mx1.magedu.com.
magedu.com. IN MX 20 mx2.magedu.com.
#A記錄
(mx1.magedu.com. IN A 3.3.3.3 )
(mx2.magedu.com. IN A 4.4.4.4 )
注意:
(1) 對MX記錄而言,任何一個MX記錄後面的服務器名字 ,都應該在後續有一個A記錄
A記錄
name: 某主機的FQDN,例如www.magedu.com.
value: 主機名對應主機的IP地址
例如:
#記錄
---"名字能夠經過多條記錄定義多個不一樣的值;此時 DNS服務器會以輪詢方式響應 "
www.magedu.com. IN A 1.1.1.1 #一個域名有多個dns主機,兩個dns服務器輪詢解析。
www.magedu.com. IN A 2.2.2.2
#錄
---"一個值也可能有多個不一樣的定義名字;經過多個不一樣的 名字指向同一個值進行定義;此僅表示經過多個不一樣的名字 能夠找到同一個主機"
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
注意:
#A記錄
--- "免用戶寫錯名稱時給錯誤答案,可經過泛域名解析進行解 析至某特定地址"
$GENERATE 1-254 HOST$ A 1.2.3.$ #定義「$」爲變量,變量值爲1-254,表明 HOST1對應4.5.6.1 - HOST100對應的 4.5.6.100
$GENERATE 1-100 server$ A 4.5.6.$ #定義「$」爲變量,變量值爲1-100,表明server1對應 4.5.6.1-server100對應的 4.5.6.100
*.magedu.com. IN A 5.5.5.5 #加「*」爲泛域名解析
magedu.com. IN A 6.6.6.6
其它記錄
AAAA:(用法與A相同)
name: FQDN
value: IPv6
PTR:
name: IP,有特定格式,把IP地址反過來寫,1.2.3.4,要寫做4.3.2.1;而有特定後綴:in-addr.arpa.,因此完整寫法爲:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
#PTR記錄(反向解析)
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
"如1.2.3爲網絡地址,可簡寫成:"
4 IN PTR www.magedu.com.
注意:網絡地址及後綴可省略;主機地址依然須要反着寫
CNAME:--- 別名記錄
name: 別名的FQDN
value: 真正名字的FQDN
例如:(別名----->真名)
#CNAME記錄
www.baidu.com. IN CNAME www.a.shifen.com.
"別名" IN CNAME "真名"
#A記錄
(www.shifen.com. IN A 6.6.6.6)
子域受權:每一個域的名稱服務器,都是經過其上級名稱服務器在解析庫進 行受權
相似根域受權tld:"
# NS記錄
.com. IN NS ns1.com.
.com. IN NS ns2.com.
# A記錄
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
"magedu.com. 在.com的名稱服務器上,解析庫中添加資源記錄"
# NS記錄
magedu.com. IN NS ns1.magedu.com. #指明名稱服務器
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
# A記錄
ns1.magedu.com. IN A 3.3.3.1 #給名稱服務器地址
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
"glue record:粘合記錄,父域受權子域的記錄 (用於將上級服務器和下級服務器創建起來關聯關係,由上級服務器把對某個子域的解析能力,授予給域內的某個服務器即名稱服務器,並指明服務器IP地址)
BIND的安裝配置:
dns服務程序包:bind,unbound(兩個軟件)
程序名:named,unbound
程序包:yum list all bind*
bind:服務器
bind-libs:相關庫
bind-utils:客戶端(測試工具)
bind-chroot: /var/named/chroot/ 僞跟、監獄(早期不建議安裝)
bind服務器
服務腳本和名稱:/etc/rc.d/init.d/named
/usr/lib/systemd/system/named.service
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones,(rfc:請求註解文檔) /etc/rndc.key (輔助配置文檔,前提使用rpm包安裝)
解析庫文件:/var/named/ZONE_NAME.ZONE
區域配置文件:/etc/named.rfc1912.zones,
腳本配置文件:/etc/sysconfig/name
日誌文件:var/log/name.log
根目錄:cd /var/named/
存儲13跟服務器地址: /var/named/named.ca
提供本地迴環地址解析文件 /var/named/named.localhost 和 /var/named/named.loopback
注意:
(1) 一臺物理服務器可同時爲多個區域提供解析
(2) 必需要有根區域文件;/etc/named.ca
(3) 應該有兩個(若是包括ipv6的,應該更多)實現localhost(本地主機) 和本地迴環地址的解析庫
rndc : (remote name domain controller,)遠程管理工具,默認與bind安裝在同一主機,且只能經過127.0.0.1鏈接 named進程 : 提供輔助性的管理功能;rndc也是一個服務、也須要監聽在套接字上,默認使用 953/tcp 端口,「/etc/rndc.key 」就是rndc 鏈接ndmed 時的共享密鑰(域共享密鑰)。
配置文件
主配置文件: "/etc/named.conf" 和 "/etc/named.rfc1912.zones"
全局配置:options {};
日誌子系統配置:logging {};
區域定義:本機可以爲哪些zone進行解析,就要定義哪 些zone
zone "ZONE_NAME" IN {};
注意:任何服務程序若是指望其可以經過網絡被其它主機訪 問,至少應該監聽在一個能與外部主機通訊的IP地址上 。
"區域類型"
"主master"
"從slave"
"跟hint"
"轉發 forward"
"監聽端口類型:"
# localhost(本機全部地址)
# any(全部)
# none (什麼也沒有)
# localnet 相同子網
主配置文件語法檢查:(檢查/named.conf和named.rfc1912.zones文件的語法錯誤)
~]# named-checkcof
解析庫文件語法檢查: ("域名" 文件)
~]# named-checkzone "magedu.com" /var/named/magedu.com.zone
更改完配置文件,從讀配置文件
~]# rndc status | reload ;
~]# service named reload ;重新載讀配置文件,不須要重啓,(能使用此命令,就不要從起服務)
~]# rndc reload #從新讀取配置文件,有時候會無效,須要從新啓動服務
~]# rndc flush #清除DNS緩存
配置主DNS服務器(正向)
主DNSserver負責的域,解析不到就會發起迭代查詢,
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
"主從結構圖"
master(主) push(主,更新推送) slave(從)
l- - - - l - - - - > - - - - - > l- - - - l
l l l l DNS解析請求 l- -l
l- - - - l <- - - - - - <- - - - l- - - - l < - - - <- - l- -l
ns1.server pull(從,週期性下載) ns2.server 客戶端(pc)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
"DNS解析結構圖"
www.magedu.com(wed) DNS.server(主)
l- - - - l l- - - - l DNS解析請求
l l l l < - - - <- - l- -l
l- - - - l l- - - - l - - > - - -> l- -l
ns1.server ns1.server DNS解析結果 客戶端(pc)
^^^ vvv
- - - - - - - - - - - - - - - -
收到DNS解析結果,有了地址再去訪問wed服務
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
1) 在主配置文件中定義區域
~]# vim /etc/named.conf #修改如下部分便可
options {
listen-on port 53 { localhost; } #監聽端口類型
...
allow-query { any; }; #容許全部人訪問
recursion yes; #默認開啓轉發功能,若是僅提供內網服務,關閉便可「no」,咱們這裏開啓不然不能實現迭代查詢。
allow-transfer {172.16.100.12;}; #安全加固,容許誰從我這複製區域數據,容許輔助DNS
};
~]# vim /etc/named.conf 文件 或 "/etc/named.rfc1912.zones" 文件 (操做文檔前作好備份,建議在後者操做)
格式:
zone "ZONE_NAME" IN {
type { master; };
file "ZONE_NAME.zone";
};
區域類型:
主master
從slave
跟hint
轉發 forward
~]# cp /etc/named.rfc1912.zones{,.bak} #操做文檔前作好備份
-----------------------------
~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN { #域名
type master; #類型,主人
file "magedu.com.zone"; # 區域拓展數據庫名字
};
----------------------------------
主配置文件語法檢查:(檢查/named.conf和named.rfc1912.zones文件的語法錯誤)
~]# named-checkco
(2) 定義區域解析庫文件
出現的內容
宏定義
資源記錄
~]# cp -p /var/named/named.loopback /var/named/magedu.com.zone #複製模板文件進行操做,-p 保留原文件權限,和所屬組。
若是沒有加 -p 執行下面兩條命令
~]# chmod 640 magedu.com.zone
~]# chown :named magedu.com.zone
-rw-r----- 1 root named 152 Jun 21 2007 magedu.com
------------------------------------------
~]# vim /var/named/magedu.com.zone
$TTL 86400
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com (
(magedu.com.zone) 1 ; serial (序列號,主要做用是標識主服務器的數據庫文件發生變化,數字遞增,若不變,輔助DNS不會更新數據庫文件)
1D ; refresh #每隔多久推送數據庫文件
1H ; retry #發生錯誤多少時間重試
1W ; expire #多長時間後過時
0 ) ; minimum #錯誤記錄緩存多少時間
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.100.11
ns2 IN A 172.16.100.12
mx1 IN A 172.16.100.13
mx2 IN A 172.16.100.14
www IN CNAME websr
websrv IN A 172.16.100.11
websrv IN A 172.16.100.12
---------------------------------------------------
解析庫文件語法檢查: ("域名" 文件)
~]# named-checkzone "magedu.com" /var/named/magedu.com.zone
重新加載配置文件「systemctl reload named 」命令也能夠,建議使用「rndc reload 」
~]# rndc reload
本機測試 IP地址 「127.0.0.1 」
~]# dig www.magedu.com @172.16.100.11 #默認查詢A記錄
~]# dig -t NS www.magedu.com @172.16.100.11 #指定查詢NS記錄
~]# dig -t NS . @172.16.100.11 #查詢跟的NS記錄
~]# dig +teace www.magedu.com #跟蹤解析過程
~]# dig -t mx magedu.com #查詢誰是magedu.com 域的郵件服務器
==========================
反向查詢,經過IP查域名
~]# dig -t prt 11.100.16.172.in-addr.arpa @172.16.100.11 #反向解析域名的
~]# dig -x 172.16.100.11 @172.16.100.11 #反向解析域名的
==========================
客戶端,更改DNSserv指向,網卡配置文件更改
~]# dig +bufsize=1200 +norce @a.root-servers.net 命令執行的結果就是/var/named/named/ca
反向區域
區域名稱:網絡地址反寫.in-addr.arpa.
172.16.100. --> 100.16.172.in-addr.arpa.
(1) 在主配置文件中定義區域
~]# vim /etc/named.conf
文件配置與正向解析相同,
-----------------------------
~]# vim /etc/named.rfc1912.zones
zone "100.16.172.in-addr.arpa." IN { #域名
type master; #類型,主
file "100.16.172.in-addr.arpa.zone"; # 區域拓展數據庫名字
};
----------------------------------
主配置文件語法檢查:(檢查/named.conf和named.rfc1912.zones文件的語法錯誤)
~]# named-checkco
(2) 定義區域解析庫文件
注意:不須要MX,以PTR記錄爲主
~]# cp -p /var/named/named.loopback /var/named/100.16.172.in-addr.arpa.zone #複製模板文件進行操做,-p 保留原文件權限,和所屬組。 若是沒有加 -p 執行下面兩條命令 ~]# chmod 640 magedu.com.zone ~]# chown :named magedu.com.zone -rw-r----- 1 root named 152 Jun 21 2007 magedu.com ------------------------------------------ ~]# vim /var/named/100.16.172.in-addr.arpa.zone $TTL 86400 $ORIGIN 100.16.172.in-addr.arpa. @ IN SOA ns1.magedu.com. admin.magedu.com. ( 2018042201 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns1.magedu.com. #注意域名結尾加「.」不然會加上區域後綴, IN NS ns2.magedu.com. #就會變成:ns1.magedu.com.100.16.172.in-addr.arpa. 11 IN PTR ns1.magedu.com. 11 IN PTR www.magedu.com. 12 IN PTR mx1.magedu.com. 12 IN PTR www.magedu.com. 13 IN PTR mx2.magedu.com. --------------------------------------------------- 解析庫文件語法檢查: ("域名" 文件) ~]# named-checkzone "100.16.172.in-addr.arpa." /var/named/100.16.172.in-addr.arpa.zone 反向查詢,經過IP查域名 ~]# dig -t prt 11.100.16.172.in-addr.arpa @172.16.100.11 #反向解析域名的 ~]# dig -x 172.16.100.11 @172.16.100.11 #反向解析域名的