DNS and BIND
C/S:
client:發起應用請求的程序
server:響應請求(提供服務)的程序
LISTEN:Socket
DNS:傳輸層協議
C/S
UDP 53
TCP 53
DNS查詢類型:
遞歸查詢:
迭代查詢:
DNS名稱查詢方式:
名稱-->IP:正向解析
IP-->名稱:反向解析
解析過程:(www.baidu.com)
客戶機---(遞歸)--->本地DNS服務器------>根域.------>.com------>baidu.com
客戶機域名請求解析順序:
客戶機--->本地hosts文件--->本地dns服務器-->...
服務器對域名請求的處理順序
DNS緩存--->本地區域解析文件--->轉發器--->根域
按查詢內容分:
正向解析:已知域名,解析地址
反向解析:已知地址,解析域名
域名解析記錄類型:
SOA記錄:起始授權記錄
A記錄:正向解析記錄
CNAME記錄:別名
PTR記錄:反向解析記錄
MX記錄:郵件交換記錄
NS記錄:域名服務器解析記錄
優先級:0-99,數字越小越優
資源記錄的定義格式:
name [TTL] IN RR_TYPE value
SOA:
name:當前區域的名字
value :有多部分組成
(1)當前區域的區域名稱(也可以使用主DN5服務器名稱)
(2)當前區域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代
(3)(主從服務協調屬性的定義以及否定答案的TTL)
NS:
name:當前區域的區域名稱
value :當前區域的某DNS服務器的名字
注意: 一個區域可以有多個ns記錄
MX :
name:當前區域的區域名稱
value :當前區域某郵件交換器的主機名
注意: MX記錄可以有多個,但每個記錄的value之前應該有一個數字表示其優先級
A:
name :某FQDN,例如www.magedu.com
value :某IPv4地址
AAAA:
name : FQDN
value: IPv6
PTR :
name : IP地址,有特定格式,IP反過來寫而且加特定後綴
value : FQND
CNAME :
name : FQDN格式的別名
value : FQDN格式的正式名字
注意:
(1)TTL可以從全局維承
(2)@表示當前區域的名稱
(3)相鄰的兩條記錄其name相同時,後面的可省略
(4)對於正向區域來說各MX,NS等類型的記錄的value爲FQDN。此FQDN應該有一個A記錄
DNS服務器分類:
主要名稱服務器
輔助名稱服務器
根名稱服務器
高速緩存名稱服務器
BIND的安裝與配置:
BIND是DNS協議的實現,包含對域名查詢和響應的所需的所有軟件
yum info 軟件包 :查詢相關的軟件包信息
named:bind程序運行的進程名
程序包:
bind-libs:被bind和bind-utls包中的程序共同用到的庫文件
bind-utls:bind客戶端程序集。例如dig,host, nslookup等
bind :提供的dns server程序、以及幾個常用的測試程序
bind-chroot:選裝,讓bind程序(named進程)運行於jail進程之下
bind:
主配置文件:/etc/named.conf,或包含其他文件
解析庫文件:/var/named目錄下,一般爲ZONE_NAME.zone
注意:
(1)-臺DNS服務器可同時爲多個區域提供解析
(2)必須要有根區域解析庫文件: named.ca
(3)還應該有兩個區域解析庫文件: localhost和127.0.0.1的正反向解析庫
正向: named.localhost
反向: named.loopback
rndc :953/TCP ,但默認監聽於127.0.0.1地址,因此僅允許本地使用
bind程序安裝完成之後,默認即可做緩存名稱服務器使用;如果沒有專門負責解析的區域.直接即可啓動服務
systemctl start named.service
主配置文件格式:
全局配置段:
options{...}
日誌配置段:
logging{...}
區域配置段:
zone{...}
注意:每一個配置必須以分號結尾,否則語法錯誤
緩存名稱服務器的配置:
監聽能與外部主機通信的地址:...
學習時建議關閉dnssec
配置文件的語法檢查:
named-checkconf
測試工具:
dig、host、nslookup等
dig -t A www.baidu.com:查看baidu的A記錄
host -t NS www.baidu.com
nslookup進入交互模式
rndc命令:
rndc status:查看當前DNS服務器的狀態
rndc flush:清空當前DNS服務器上的所有緩存