DNS服務的相關概念:
BIND:Berkeley Internet Name Domain 域名解析
DNS:Domain Name Server
主機名:FQDN(Full Qualified DomainName 完全限定域名)
DNS:名稱解析,Name Resloving 名稱轉換(背後有查詢過程,資料庫)
FQDN<-->IP
NSSwitch:域名解析的平台(這是一個平台,平台上提供多種域名解析的方法)
方法:
libnss_file.so
libnss_dns.so
/etc/hosts:
IPADDR FQDN Aliases
127.0.0.1 www.baidu.com baidu
名稱組織配置設定:
IANA(政府)-->ICANN(民間、頂級域)
根域-->TLD(Top Level Domain:組織域(.com .org .net .cc)、國家域(.cn .tw .hk .iq .jp)、
反向域(IP-->FQDN) )
DNS查詢方法:
1、遞歸查詢 A-->B-->C|C-->B-->A
2、疊代查詢 A-->B、A--C|C-->A
根域是不對外進行遞歸查詢的。
非權威答案:非FQDA直接上級傳回的答案
兩段式:遞歸、疊代
DNS:分布式查詢
上級隻知道直接下級
下級是無法知道上級的
DNS伺服器:
接收本地用戶端查詢請求(遞歸)
外部用戶端請求:請求權威答案
肯定答案:TTL
否定答案:TTL
注:全球有十三個根節點服務起,中國大陸是沒有的;這十三個根節點的資料是相同的。
DNS服務角色:
主DNS伺服器:資料修改
輔DNS伺服器:請求資料同步(資料拉取機制)
注:主從DNS伺服器結構中,如果主伺服器當機了,那麼從伺服器在确定了多次後一會自我kill
serial number 版本号
refresh 重新整理周期
retry 重試時間
expire 過期時間
nagactive anwser TTL 否定答案的緩存時間
緩存DNS伺服器
轉發DNS伺服器:不緩存解析結果
資料庫中的每一個條目都稱做一個資源記錄(Resource Record,RR)
格式:
NAME TTL(可省略) IN RRT VALUE
www.test.com. IN A 1.1.1.1
www.test1.com. IN A 2.2.2.2
1.1.1.1 IN PTR www.test.com.
資源記錄類型:
SOA(Start of Authority):起始授權記錄,用于表明一個區域内部主從伺服器之間如何同步資料,
以及起始授權對象是誰。
ZONE NAME TTL IN SOA FQDN Administrator_MailBox (
serial number
refresh
retry
expire
na ttl )
@ 600 IN SOA www.test.com. www.test.com (
20170402
1H
5M
1W
1D )
注: 時間機關:H(時)、M(分)、D(天)、W(周)、預設是秒
郵箱格式:[email protected]>admin.test.com @有特殊意義
NS :Name Server(Zone Name-->FQDN)
test.com. 600 IN NS www.test1.com
www.test1.com 600 IN A 1.1.1.1
test.com. 600 IN NS www.test2.com
www.test2.com 600 IN A 1.1.1.2
注:成組出現,自己對外宣稱自己的功能。
MX :Mail eXchanger(Zone-->FQDN)
ZONE NAME TTL IN MX pri VALUE
test.com 600 IN MX 10 mail.test.com.
mail.test.com. 600 IN A 2.2.2.2
注:優先級:0-99,數字越小,優先級越高
A :address(解析IP位址)
AAAA :address(解析ipv6位址)
PTR :pointer(反向解析出主機名稱)
CNAME :Canonical Name(正式名稱)FQDN-->FQDN(設定一個主機名的别名)
www.test2.com. 600 IN CNAME www.test.com.
注:别名www.test2.com的正式名稱是www.test.com
TXT
CHAOS
SRV
域: Domain
區域:Zone
注:在DNS中domain是一個邏輯的概念,Zone是一個實體概念
實驗環境:
建立test.com. 192.168.0.0/24 DNS伺服器
首先需要現在上級授權DNS伺服器上有記錄:
test.com. IN NS ma.test.com.
ma.test.com. IN NS 192.168.0.1
在自己的DNS伺服器上解析出網絡中:
www 192.168.0.2
mail 192.168.0.3
建立兩個區域檔案:
正向區域檔案:
test.com. IN SOA ma.test.com. ma.test.com. (
20170402
1H
5M
1D
1W )
www 600 IN A 192.168.0.2
www.baidu.com. 600 IN A 192.168.0.2
mail 600 IN MX 192.168.0.3
反向區域檔案:
0.168.192.in-addr.arpa. IN SOA ma.test.com. ma.test.com. (
20170402
1H
5M
1D
1W )
2 600 IN PTR www.test.com.
2.0.168.192.in-addr.arpa. 600 IN PTR www.test.com.
區域傳送的類型:
完全區域傳送:axfr
增量區域傳送:ixfr
區域類型:
主區域:Master
從區域:Slave
提示區域:Hint 定義根在哪裡
轉發區域:Forward
BIND的安裝配置:
規劃:
test.com. 172.16.100.0/24
ns1 172.16.100.1
www 172.16.100.1/172.16.100.2
mail 172.16.100.3
ftp www
DNS:BIND(Berkeley Internet Name Domain)
ISC(Internet Systems Consortium:網際網路系統協會):www.isc.org
1、安裝bind
/etc/named.conf bind的主配置檔案
BIND程序的工作屬性
區域的定義
/etc/rndc.key (rndc:Remote Name Domain Controller)秘鑰檔案,
配置資訊:/etc/rndc.conf
/var/named/
區域資料檔案,檔案需要自己建立
/etc/init.d/rc.d/named
{start|stop|restart|reload|status}
服務啟動腳本
二進制程式名稱:named
bind-chroot:模拟出來一個虛根
caching-nameserver:可以是DNS伺服器立刻成為一個緩存伺服器
bind-devel:是用來給開發人員進行二次開發的
dig(Domain ):dig -t NS . @c.root-servers.net. 使用dig指令直接顯示根節點伺服器清單
DNS服務監聽的端口和協定:
53/tcp 傳輸資料
53/udp 查詢使用
953/tcp rndc遠端控制工具
2、配置檔案:
options {
directory "/var/named"; #資料檔案目錄
}
根區域:
zone "ZONE NAME" IN {
type {master|slave|hint|forward};
} ;
主區域:
file:"區域資料檔案";
從區域:
master { master1_ip; master2_ip; };
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
配置完成檢查配置指令:
named-checkconf 檢查配置檔案是否有錯誤
named-checkzone "." /var/named/named.ca
named-checkzone "localhost" /var/named/named.localhost
named-checkzone "0.0.127.ip-addr.arpa" /var/named/named.loopback
啟動服務:service named start 日志:/var/log/message
dig的使用用法: dig -t RT NAME @DNS_IP
host的用法同dig,隻不過dig沒法使用@指令
host -t RT NAME
nslookup:互動式
server 192.168.100.1 明确指定使用192.168.100.1的DNS伺服器,切換DNS伺服器
set q=a 查詢A記錄
www.test.com.
Example For:
dig -t NS test.com. @192.168.100.1
dig -t A www.test.com.
dig -t CNAME ftp.test.com
dig -t MX mail.test.com
dig -x IP 根據ip查詢FQDN
named服務配置執行個體:
Example For:
設定配置檔案:
/etc/named.conf 權限640 root:named
内容:
options {
directory "var/named";
};
zone "." IN {
type master;
file "named.ca";
zone "localhost" IN {
type master;
file "named.localhost";
zone "0.0.127.in-addr.arpa" IN {
file "named.loopback";
zone "test.com." IN {
file "test.com.zone";
allow-transfer { 172.16.100.2; }; #隻允許這個主機進行區域傳送
zone "100.168.192.in-addr.arpa" IN {
file "100.168.192.in-addr.arpa.zone;
allow-transfer { 172.16.100.2; }; #隻允許這個主機進行區域傳送
建立正向資料檔案"test.com.zone",修改檔案權限為640 root:named
touch /var/named/test.com.zone
chmod 640 /var/named.com.zone
chown root:named /var/named.zone
編輯正向資料檔案:
$TTL 600
@ IN SOA ns1.test.com. admin.test.com. (
20170403
1D
5M
1H
1W )
@ IN NS ns1.test.com.
IN MX mail.test.com.
ns1 IN A 172.16.100.1
mail IN A 172.16.100.3
www IN A 172.16.100.1
www IN A 172.16.100.2
ftp IN CNAME www.test.com.
檢查配置檔案,檢查zone檔案,啟動服務:
named-checkconfig
named-checkzone "test.com.zone" /var/named/test.com.zone
service named start
編輯反向資料檔案:
$TTL 600
@ IN SOA ns1.test.com. admin.test.com. (
20170404
1H
5M
30M
1W )
@ IN NS ns1.test.com.
ns1 IN A 172.16.100.1
1 IN PTR ns1.test.com.
3 IN PTR mail.test.com.
1 IN PTR www.test.com.
2 IN PTR www.test.com.
DNS主從複制及區域傳送:
配置檔案:
options {
directory "/var/named" #定義資料檔案位置
recursion yes|no #預設是允許為其他遞歸查詢的
allow-recursion { 172.16.100.0/24; }; #隻允許為指定網段進行遞歸查詢
allow-query 100.100.1.1; #用來定義隻允許某個人來查詢的
allow-transfer { 172.16.100.2; }; #定義允許那個伺服器區域傳送zone資訊
notify yes; #通知從伺服器來主伺服器同步資料
};
驗證方法:
dig +recurse -t A www.baidu.com @172.16.100.1 #預設是允許遞歸查詢的
dig +norecurse -t A www.baidu.com @172.16.100.1
dig +trace -t A www.baidu.com @172.16.100.1 #檢視解析的過程
dig -t axfr test.com @172.16.100.1 #完全區域傳送,會将區域test.com的解析全不傳送到本機顯示
dig -t IXFR=20170403 test.com @172.16.100.1 #增量區域傳送,會顯示指定版本号後的增
加記錄數