域名分級
根域: .
頂級域: .com .cn .org .net
域: baidu.com qq.com sina.com
主機(jī): www.baidu.com mail.sina.com
DNS解析過程
如在qq.com域下面有臺client,其dns-server是dns.qq.com,則client訪問www.baidu.com(dns為ns.baidu.com)時,先請求dns.qq.com,dns.qq.com查詢緩存中有沒有www.baidu.com條目的緩存,如果有,則直接返回www.baidu.com的IP,如果沒有,則請求如下:
1. 請求 `根域`(`.`),查詢`.com`域的管理Server IP
2. 請求`.com`域,查詢`baidu.com`域的管理Server IP,也就是 `ns.baidu.com`
3. 請求`ns.baidu.com`,查詢域中`www`主機(jī)的IP
此時,dns.qq.com
將查詢得到的www.baidu.com
的IP返回給Client,同時緩存,在緩存還沒失效之前有其他Client再次請求www.baidu.com
時,則直接從緩存中取,不再查詢。對于client來說是遞歸的(client->dns.qq.com),對于dns-server來說是迭代的(上述123過程),
DNS Server只依據(jù)條目響應(yīng)查詢,不負(fù)責(zé)是否存在
dns的分類
1.權(quán)威DNS:
權(quán)威DNS是經(jīng)過上一級授權(quán)對域名進(jìn)行解析的服務(wù)器,同時它可以把解析授權(quán)轉(zhuǎn)授給其他人
2.遞歸DNS:
負(fù)責(zé)接受用戶對任意域名查詢,并返回結(jié)果給用戶。
3.轉(zhuǎn)發(fā)DNS:
負(fù)責(zé)接受用戶查詢,并返回結(jié)果給用戶。
權(quán)威應(yīng)答與非權(quán)威應(yīng)答
如果DNS服務(wù)器在自己的區(qū)域文件里找到了客戶端需要查詢的記錄,否則就是非權(quán)威應(yīng)答
TTL值
TTL(Time- To-Live),簡單的說它表示一條域名解析記錄在DNS服務(wù)器上被緩存時間.當(dāng)各地的DNS服務(wù)器接受到解析請求時,就會向域名指定的DNS服務(wù)器發(fā)出解析請求從而獲得解析記錄;在獲得這個記錄之后,記錄會在DNS服務(wù)器中保存一段時間,這段時間內(nèi)如果再接到這個域名的解析請求,DNS服務(wù)器將不再向DNS服務(wù)器發(fā)出請求,而是直接返回剛才獲得的記錄;而這個記錄在DNS服務(wù)器上保留的時間,就是TTL值,默認(rèn)單位是秒(s)。
一.增大TTL值,可以節(jié)約域名解析時間
二.減小TTL值,可以減少更換IP(A記錄)后到生效的時間
資源記錄(Resource Record, RR)格式
@表示繼承
A記錄(正向)
將域名指向一個IPv4地址,FQDN-->IPv4
FQDN:Full Qualified Domain Name,完全限定域名,如 mail.sina.com
RRT:Resource Record Type,資源記錄類型。
FQND TTL IN RRT IP
www.sina.com. 600 IN A 1.1.1.1
IPv6的類型為AAAA
PTR記錄(反向)
IP反向查詢域名,IP-->FQDN
IP TTL IN RRT FQDN
11.0.168.192.in-addr.arpa. 600 IN PTR mail.sina.com.
12.0.168.192.in-addr.arpa. 600 IN PTR ftp.sina.com.
NS記錄
域名解析服務(wù)器記錄,ZONE-NAME->FQDN,也叫授權(quán)記錄
Zone-Name TTL IN NS FQND
163.com. 600 IN NS ns.163.com.
ns.163.com. 600 IN A 1.1.1.1
NS和A記錄成組出現(xiàn),構(gòu)成一個完整的NS記錄,多個NS記錄時依次被響應(yīng)
MX記錄(mail exchager)
電子郵箱服務(wù),將指向郵件服務(wù)器地址,ZONE-NAME->FQDN,MX記錄有優(yōu)先級(priority)之分,0-99,數(shù)字越大,優(yōu)先級越高
ZONE-NAME TTL IN RRT priority FQDN
163.com. 600 IN MX 11 mail1.163.com.
mail1.163.com. 600 IN A 1.1.1.1
MX和A記錄成組出現(xiàn),構(gòu)成一個完整的MX記錄
SOA(Start Of Authority)記錄
區(qū)域傳送記錄,描述區(qū)域傳送規(guī)則(描述主從對象,以及如何主從如何同步),必須定義在數(shù)據(jù)文件的第一行
ZONE-NAME TTL IN SOA FQDN(主DNS地址) admin-mail-address (
serial number; 版本號,區(qū)域復(fù)制依據(jù),每次主要區(qū)域修改完數(shù)據(jù)后,要手動增加它的值
refresh ; 刷新時間,輔助DNS服務(wù)器請求與源服務(wù)器同步的等待時間。當(dāng)刷新間隔到期時,輔助DNS服務(wù)器請求源服務(wù)器的SOA記錄副本。然后,輔助DNS服務(wù)器將源服務(wù)器的SOA記錄的序列號與其本地SOA記錄的序列號比較,如果不同,則輔助DNS服務(wù)器從主要DNS服務(wù)器請求區(qū)域傳輸。
retry ; 重試時間,輔助DNS服務(wù)器在請求失敗后,等待多長時間重試。通常這個應(yīng)該短于刷新時間
expire ; 過期時間,時間到期時,如輔助DNS服務(wù)器還無法與源服務(wù)器進(jìn)行區(qū)域傳輸,則輔助DNS服務(wù)器會把它的本地?cái)?shù)據(jù)當(dāng)作不可靠數(shù)據(jù)
minimum ; 否定答案緩存時間
)
時間單位:M(分鐘)、H(小時)、D(天)、W(周),默認(rèn)單位是秒
郵箱格式:admin@sina.com -寫為-> admin.sina.com
sina.com. 600 IN SOA ns1.sina.com. admin.sina.com. (
2013040101
1H
5M
1W
1D )
CNAME(Canonical NAME)記錄
將域名指向一個域名,F(xiàn)QDN->FQDN
FQDN TTL IN RRT FQDN
mail.163.com. 600 IN CNAME mail.qq.com.
泛域名解析
* 600 IN A IP #除了明確標(biāo)識,其他都解析到該地址
域和區(qū)域(domain & zone)
domain是邏輯概念,如sina.com,zone是物理概念,對應(yīng)數(shù)據(jù)文件
正向域
sina.com. 600 IN SOA ns1.sina.com. admin.sina.com. (
2013040101
1H
5M
1W
1D )
www 600 IN A 192.168.0.10
www2 600 IN A 192.168.0.11
sina.com. 600 IN MX 10 mail.sina.com.
mail.sina.com. 600 IN A 192.168.0.20
反向域
反向域的name為網(wǎng)段地址,且反寫
0.168.192.in-addr.arpa IN SOA ns1.sina.com. admin.sina.com (
2013040101
1H
5M
1W
1D )
10.0.168.192.in-addr.arpa. 600 IN PTR www.sina.com.
11 IN PTR www2.sina.com.
區(qū)域類型
主區(qū)域:master
從區(qū)域:slave
提示區(qū)域:hint,定義根在什么地方
轉(zhuǎn)發(fā)區(qū)域:forward,比如直接配置.com域的地址,而不從根查詢
安裝Bind
yum install -y bind
/etc/named.conf #主配置文件
/etc/rndc.key #rndc的密鑰文件
/etc/rndc.conf #rndc配置文件
/var/named/ #區(qū)域數(shù)據(jù)文件
/etc/rc.d/init.d/named #服務(wù)腳本
{start|stop|restart|status|reload}
/var/named/named.ca 13個根節(jié)點(diǎn)配置文件
一些工具
隨bind安裝
/usr/sbin/named-checkconf #檢查配置文件
/usr/sbin/named-checkzone #檢查區(qū)域文件
/usr/sbin/rndc-confgen #生成rndc配置
bind-utils 工具包
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
設(shè)置開機(jī)啟動
chkconfig named on
named.conf
options { #全局選項(xiàng),對所有的zone生效
listen-on port 53 { 127.0.0.1; }; #監(jiān)聽IPv4及端口。這里設(shè)置表示只偵聽127.0.0.1這個地址。如不定義此選項(xiàng)或者0.0.0.0表示偵聽所有網(wǎng)絡(luò)
listen-on-v6 port 53 { ::1; }; ##監(jiān)聽IPv6及端口
directory "/var/named"; #數(shù)據(jù)文件目錄
notify yes;# 啟用通知功能,master修改,主動通知slave
allow-query { 192.168.0.0/24; }; #允許提交查詢的客戶端,如不定義此選項(xiàng)表示允許所有查詢
query-source port 53; #客戶端在進(jìn)行DNS查詢時必須使用53做為源端口
recursion yes; #是否開啟遞歸查詢
allow-recursion {192.168.0.0/24;192.168.0.1/24};#允許提交遞歸查詢的客戶端,如不定義此選項(xiàng)表示允許所有
allow-transfer {192.168.0.254;};#允許區(qū)域傳輸?shù)腄NS服務(wù)器(輔助DNS),不寫表示允許所有
forwarders {192.168.0.9;};#轉(zhuǎn)發(fā)到指定服務(wù)器解析
forward only|first;#only表示如果在指定的轉(zhuǎn)發(fā)器找不到,不會去向根查詢,first表示快速轉(zhuǎn)發(fā)(默認(rèn))
dnssec-enable yes;# 是否支持DNSSEC開關(guān),默認(rèn)為yes
dnssec-validation yes; #是否進(jìn)行DNSSEC確認(rèn)開關(guān),默認(rèn)為no
dnssec-lookaside auto; #當(dāng)設(shè)置dnssec-lookaside,它為驗(yàn)證器提供另外一個能在網(wǎng)絡(luò)區(qū)域的頂層驗(yàn)證DNSKEY的方法
};
logging { #日志
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { #根區(qū)域定義
type hint;#區(qū)域類型
file "named.ca";#區(qū)域數(shù)據(jù)文件路徑,相對與directory
#masters { master1.ip;master2.ip } #如果是從區(qū)域,指定master地址
};
zone "sina.com" IN { #正向域
type master;
file "sina.com";
};
zone "0.168.192.in-addr.arpa" IN {#反向域
type master;
file "0.168.192.zone";
};
zone類型
Master
主DNS服務(wù)器:擁有區(qū)域數(shù)據(jù)文件,并對此區(qū)域提供數(shù)據(jù)管理
Slave
輔助區(qū)域:擁有主DNS服務(wù)器區(qū)域數(shù)據(jù)文件的副本,輔助DNS服務(wù)器從主DNS服務(wù)器同步所有區(qū)域數(shù)據(jù)
Stub
stub區(qū)域和slave類似,但它只復(fù)制主DNS服務(wù)器上的NS記錄,而不像輔助DNS服務(wù)器會復(fù)制所有區(qū)域數(shù)據(jù)
Forward
一個forward zone是每個域的配置轉(zhuǎn)發(fā)的主要部分。一個zone語句中的type forward可以包括一個forward和或forwarders子句,它會在區(qū)域名稱給定的域中查詢。如果沒有forwarders語句或forwarders是空表,那么這個域就不會轉(zhuǎn)發(fā),消除了options語句中有關(guān)轉(zhuǎn)發(fā)的配置
Hint
根域名服務(wù)器的初始化組指定使用的線索區(qū)域hint zone,當(dāng)服務(wù)器啟動時,它使用根線索來查找根域名服務(wù)器,并找到最近的根域名服務(wù)器列表。如果沒有指定class IN的線索區(qū)域,服務(wù)器使用編譯時默認(rèn)的根服務(wù)器線索。不是IN的類別沒有內(nèi)置的默認(rèn)線索服務(wù)器
主從傳送
1.修改named.conf中option定義
notify yes
2.修改named.conf中zone的定義:
zone "zone-name" IN { #根區(qū)域定義
type slave;#標(biāo)明是從dns
file "slaves/named.ca";#區(qū)域數(shù)據(jù)文件路徑,相對與directory,由于named無對/etc/named目錄的寫權(quán)限,所以放在slaves下
masters { master1.ip;master2.ip } #指定master地址
};
3.增加從服務(wù)器的NS記錄以及A記錄
4.防火墻配置
打開master tcp 53端口
打開slave tcp 53端口
5.開啟從服務(wù)器
service named start
手動區(qū)域傳輸
dig -t axfr|ixfr 區(qū)域名稱 @輔助DNS服務(wù)器
axfr:完全傳輸
ixfr:增量傳輸
子域授權(quán)
1.在子域zone文件中添加授權(quán)NS記錄
子域名稱 IN NS 子域dns-server-name
a.sina.com. IN NS ns1.a.sina.com.
2.子域DNS A記錄
子域dns-server-name IN A IP
ns1.a.sina.com. IN A 0.0.0.0
3.編輯子域 named.conf 添加zone記錄
zone "a.sina.com" IN {
type master;
file "a.sina.com";
};
4.增加zone對應(yīng)的數(shù)據(jù)文件
5.重啟服務(wù)
DNS View
view view_name {
match-client{ip段1;ip段2};
//區(qū)域定義
};
match-client:指定IP段使用view中的zone定義,any匹配所有IP
注意
- 一旦定義了view 所有的zone都必須定義在view中
- 根zone只需要定義在需要遞歸的view中