1 簡寫
看簡寫的形式: 最簡單的是
概念: zone語句的第二個字段用來指定域名,該域名是該區域資料檔案中所有資料的來源(origin)
www.cui. IN A 192.168.7.234
簡寫方式是 www IN A 192.168.7.234
其實:www就是表示cui.這個域下的主機
其簡寫的來源依據是:
zone "cui" in {
typemaster;
file"db.cui";
};
同理
234.7.168.192.in-addr.arpa. IN PTR www.cui.
簡寫:
2 @符号的表示法
如果一個域名和來源相同的話,那麼改名稱就可以被表示為”@“ 最常見在區域資料檔案中的SOA記錄中
可以寫成為
@ IN SOA bind1.cui. bind1.cui. ( 1h 3h 1h 1w 2h)
【安全性的 控制 查詢 傳輸】
1 allow-query 允許查詢的位址
預設 是隻允許localhost
allow-query { localhost; };
結果: 非本地來的查詢 将不會應答
<a href="http://s2.51cto.com/wyfs02/M02/80/46/wKiom1c8efORIZoQAAAeEs_MIMQ090.png" target="_blank"></a>
一般改成: 允許來自所有的query,或者有acl控制特定的網絡
allow-query { any };
2 allow-transter {any ;};
作用: 控制區域傳送的(master 和slave
允許那些主機接收服務的區域傳送
3 recursion yes; 允許遞歸查詢
4 allow-recursion { any;} 預設的,指定允許哪些主機通過本伺服器進行遞歸查詢
5 allow-query-cache { any ;};
查找緩存
6 網絡監聽接口 一般設定為
作用: 伺服器回應查詢的端口号和接口(即IP位址)
listen-on port 53 { youIP; };
如果: 設為 listen-on port 53 { any ;}; 則所有端口都将監聽起來
應用: 如不想在IPv6 的接口上監聽
listen-on-v6 port 53 { none; };
【rndc 維護dns指令】
1 管理dns 可以通過發送一些linux上的信号進行
如:
<code> </code><code>kill</code> <code>-HUP `</code><code>cat</code> <code>/var/run/named</code><code>.pid`</code>
rndc提供更多的手段通過信道(channel)用信号去管理
== 重載:
<code>rndc reload</code>
重新加載server配置檔案和zone區域檔案
等于
/etc/init.d/named reload = kill kill -HUP `cat /var/run/named.pid`
注意: 還一個重載指定的區域 rndc reload zone
如: rndc reload zone
== 重新開機服務
rndc restart == /etc/init.d/named restart
== 狀态
rndc status == /etc/init.d/named status
== stop/start
rndc stop == /etc/init.d/named stop == kill TERM `cat /var/run/named.pid`
== 清空緩存
rndc flush
注意: 差別重載和重新開機的差別:
最直覺的是,重新開機程序pid會改變,重載不會改變
重載隻是重新讀取配置檔案而已,沒有把程式殺死在重新開機開啟
2 rndc 可以控制的前提:
/etc/rndc.key
可以手動生成
rndc-confgen -r /dev/urandom -a
注: named.conf 中可以通過options 中的 controls 選項指定控制,預設不需要
3 rndc 監聽端口是 953
4 修改了primary中的區域檔案資訊之後一定要記得 把序列号加+1
5 報錯:
9 15:32:50 cui2 named[10634]: none:0: open: /etc/rndc.key: permission denied
解決辦法:
chmod +r /etc/rndc.key
【解析器的那些檔案和作用】
1 解析器就是 dns的用戶端程式
telnet shop-web01.beta 會去調用dns解析器 解析這個shop-web01.beta域名
ftp
ping
ssh
scp
等等程式都調用了dns解析器程式
2 涉及的檔案
nsswitch.conf
/etc/resolve.conf
/etc/hosts
hostname
3 現象
為什麼 ping dpindex-web01 解析器會将這個會自動解析dpindex-web01.beta
<a href="http://s5.51cto.com/wyfs02/M00/80/46/wKiom1c8e_WQyzt5AACBHoQVlAw042.png" target="_blank"></a>
4 解釋nsswitch.conf檔案說明
一般用途: 其中一個行預設
hosts: files dns
其意思是 解析器解析域名的時候先查找/etc/hosts 下,在查找dns名稱伺服器
5 解釋hostname和本地域的作用
hostname 如果是一個 主機名.域的形式如: shop-web01.beta
那麼 點号後面的(beta) 就代表本地域
有了本地域在輸入的時候,解析器就會自動補充如:
ping dpindex-web01
解析器會讀成 dpindex-web01.beta 自動加上了本地域
作用,如tab一樣可以減少輸入
注:
如果 hostname主機名種沒有 “.” 那麼會将域變成root
關于要不要加上本地域 和 主機名中存在多個 ”.“ 的情況,解析器都是很智能能都都會處理好!
6 解釋 /etc/resolve.conf 檔案中的各個指令
domain
search
nameserver
options
domain 也是指定本地域,如果resolve.conf 中存在,這個指令
如 domain beta 那麼會覆寫hostname計算出來的本地域
search指令 和domain 類似
隻是 支援多個域
nameserver 指定使用的名稱伺服器
nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
可以使用多個,當第一個故障時使用第二個
隻有當 第一個查詢逾時時或者網絡錯誤的時候,才會使用第二個!
注意,不是說第一個查詢不到結果(正常的傳回),這樣是不會使用第二個名稱伺服器的
如
options 指令設定 一些debug 或者逾時 重試等的
options attempts:4 timeout:2 ndots:2
注:
一些特點和不同的版本是有差別的,以上在8版本之後都是支援的
其他一些關于太詳細的用的不多的,請自行參考bind and dns 這本權威的書
【解析指令】
1 nslookup 在主要在windows下使用,linux下簡單可以使用
nslookup 域名
nslookup IP 反向解析
解析出來的資訊刨析:
參考
<a href="http://doc.okbase.net/1382972/archive/110141.html" target="_blank">http://doc.okbase.net/1382972/archive/110141.html</a>
重點關注:
flags 标志,如果出現就表示有标志,如果不出現就未設定标志:
qr query,查詢标志,代表是查詢操作
rd recursion desired, 代表希望進行遞歸(recursive)查詢操作
ra recursive available 在傳回中設定,代表查詢的伺服器支援遞歸(recursive)查詢操作。
aa Authoritative Answer 權威回複,如果查詢結果由管理域名的域名伺服器而不是緩存伺服器提供的,則稱為權威回複。
AUTHORITY 權威域名伺服器記錄數,5代表該域名有5個權威域名伺服器,可供域名解析用。對應下面AUTHORITY SECTION
ADDITIONAL 格外記錄數,6代表有6項格外記錄。對應下面 ADDITIONAL SECTION。
2 dig 指令
dig 域名
預設使用 本地dns(/etc/resolve.conf) 下配置的,去解析
預設解析A記錄
選項或者參數
dig @dnsserver 域名
指定以你指定的名稱伺服器去解析這個域名
dig @localhost .beta
dig -t type類型 域名
作用:指定記錄類型
dig -t MX dianping.com
dig -x IP
作用: 進行反解析,一般在内網工作起作用
dig -x 192.168.213.86
dig +trace 域名
作用: 強制從root開始疊代查找結果
dig +trace
<a href="http://www.sina.com.cn/" target="_blank">www.sina.com.cn</a>
【forward 】
自己轉發不了的,轉發給指定的名稱伺服器去解析
常用配置是,對某個區域自己解析不了的進行forward配置!
對于 beta和nh這個區域,本地localhost 名稱伺服器是無法解析的,是以需要進行針對這個區域進行轉發
type forward;
forward { 192.168.211.116; };
注: 當然也可以進行 全局進行都轉發,這台名稱伺服器完完全全隻作為轉發伺服器進行的!
其工作過程: 預設是 轉發優先(相對 疊代 root而言)
其過程是: 本地解析域名,如果本地沒有或者緩存沒有,那麼就像轉發伺服器發起查詢,如果經過短暫周期沒有收到應答響應,那麼久會進行正常的操作,開始進行疊代查詢!
是否加上forward-only; 隻是有那麼一點差別和 轉發優先 ,隻是速度上的一點差別而已!
鑒于版本不一樣,我的bind版本 9.8
tail -f /var/log/messages
預設配置檔案下,隻配置 forward 一個區域的話,可能解析不了,會報錯
validating @0x7f4f680616c0: beta SOA: got insecure response; parent indicates it should be secure
解決方案:
dnssec-enable no;
dnssec-validation no;
将yes都統統變成no
本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1774913如需轉載請自行聯系原作者
cuizhiliang