前言
DNS服務作爲網絡的一種基礎架構,在網絡中有舉足輕重的地位。其擔負着整個網絡的計算機名稱解析工作。沒有正確的名稱解析,服務器將無法識別客戶端。
第一部分——NDS基礎
第一,什麼是DNS,以及DNS服務器的組成
DNS:(DomainName Service)域名服務,是一種組織成層次結構的計算機和網絡服務命名系統,用於實現名稱解析(Hostname<--->IP).其中通過計算機名解析成IP地址的叫做正向解析,通過IP地址解析成計算機名的叫做反向解析。DNS服務監聽在主機的TCP/UDP的53號端口。
注意:www.magedu.com是一個主機名,magedu.com纔是一個域名。
一個典型的DNS服務器包括如下4個部分:
第一,DNS域名稱空間:它指定用於組織名稱的域的層次結構
第二,資源記錄RR(Resource Record):將DNS域名映射到特定類型的資源信息,以供在名稱空間中註冊或解析名稱時使用。在Linux系統中,通常"名稱解析庫(位於/var/named/)"中的每一行稱作一個資源記錄。
第三,DNS服務器:用於存儲和應答資源記錄的名稱查詢
第四,DNS客戶端(解析程序):查詢從服務器來的搜索及將名稱解析爲查詢中指定的資源記錄類型
DNS服務器分爲如下四種:
第一。主DNS服務器(master):數據庫更新由管理員手動完成
第二。輔助DNS服務器(slave):數據庫更新從主服務器或其他輔助DNS服務器那裏完成
第三。轉發DNS服務器(forward):轉發服務器接受查詢請求,把查詢發送到其他DNS服務器,查詢結果保存到緩存中。如沒有指定轉發服務器,DNS服務器會使用根區域記錄,向根發送查詢
第四。緩存DNS服務器:不包含域名數據庫文件,它每次將從域名服務器得到的查詢結果返回給客戶端,並在本地留以緩存,以供下次查詢使用
第二,DNS名稱空間
DNS域名空間爲層出化結構,此層次化結構有利於計算機將複雜問題簡單化。整個DNS域名空間呈倒立的樹狀結構分佈,被稱爲“域樹”。
根域:最上面是根域名 dot,全球13臺根域服務器。
頂級域:由兩三個字母組成的名稱,用於知識國家(地區)或使用名稱的單位的類型。
組織域:.net .com .org .mil .edu .gov .cc。
國家域:.jp .tw .hk.iq .ir .cn .uk .us
二級域:在Internet上使用而註冊到個人或單位的長度可變的名稱。這些名稱始終基於相應的頂級域,這取決於單位的類型或使用名稱所在的地理位置。例如:sina.com.就是一個2級域。
子域:單位可創建的其他名稱,這些名稱從已註冊的二級域名中派生。例如:sport.sina.com.
重點理解子域授權
[名詞解釋]
FQDN:Fully Qualified Domain Name,完全限定域名,就是從根開始,一層一層的往下找,最終能唯一確定主機的完全路徑,FQDN能保證網絡中的主機不會重名。
主機名:不包含上層查找路徑,www.magedu.com是一個主機名
第三,DNS的工作原理
<1> DNS服務器的名稱查詢原理:
查詢方法有兩種:遞歸查詢,迭代查詢。
遞歸查詢:客戶端要求直接得到結果,要麼成功,要麼失敗(本地客戶端和DNS服務直接交互,被請求的DNS服務器必須給出最終答案。)
迭代查詢:服務器以相關參考性應答返回本地DNS(DNS服務與DNS服務交互,得到的是參考答案)
注意:本地客戶端向本地域名服務器查詢請求時,查詢類型爲:一次遞歸,多次迭代。
一般情況下,DNS服務器之間的查詢方式都是迭代查詢。如果要查詢www.lifehacker.com(lifehacker.com域不是本地DNS負責的區域),那麼本地DNS就需要向外迭代查詢(迭代查詢從根域開始,因此,本地DNS就必須知道根域的IP地址)。根提示的功能可以讓本地DNS服務器查詢根域DNS服務器。
在Linux系統中,安裝好了bind服務,會自動創建全球13臺根服務器的解析庫文件,保存在/var/named/named.ca中;~]#cat /var/named/named.ca
<2>反向查詢原理:
客戶端一般執行正向查詢,用存儲在地址(A)資源記錄中的另一臺計算機的DNS名稱來搜索IP地址等信息。同時,DNS也提供反向查詢過程,允許客戶端在名稱查詢期間使用已知的IP地址查詢計算機名。
DNS在最初設計上並不支持反向查詢。因爲支持反向查詢過程可能存在一個問題,即DNS名稱空間如何組織和索引名稱,IP地址如何分配,這些方面都有差別。爲了解決這個問題,在DNS標準中採用了一種叫做“線索追蹤的機制”,即定義了特殊域“in-addr.arpa”,並保留在Internet DNS名稱空間中。爲了創建名稱空間,in-addr.arpa域中的子域是按照帶句點十進制編號的IP地址的相反順序構造,且採用與正向解析完全不同的解析庫。因此,創建in-addr.arpa域樹的時候,IP地址八位字節的書訊必須倒置,並且定義一種新的資源記錄類型“PTR”。
<3>區域傳送原理
第四,DNS的名稱解析庫及資源記錄:
名稱解析:以主機名爲搜索碼,在DNS解析數據庫中查找對應的IP地址的過程。在本地通過hosts文件來解析; Linux中:/etc/hosts ;windows系統中:%windir%\system32\drivers\etc\hosts
DNS解析類型:正向解析:FQDN-->IP;反向解析: IP --> FQDN
DNS名稱解析庫:通常爲一個保存在/var/named/目錄下的文本文件,每一行稱作一個資源記錄。 每一個名稱解析庫稱作“區域(zone)”
注意: 區域zone是一個物理概念,一個區域就是一個DNS解析庫。域是一個邏輯概念,一個域對應一個DNS域名稱空間。正向解析與反向解析採用的是不同的解析庫,一個配置了正向解析庫和反向解析庫的DNS意味着其包含了兩個區域(正向zone和反向zone)
資源記錄:
分類:FQDN-->IPv4: A (Address); FQDN-->IPv6: AAAA Domain-->DNS Server:NS (Name Server) Domain-->Master DNS: SOA (Start OfAuthority), 起始授權記錄(用於明確說明一個域內的主DNS服務器是哪個,必須是名稱解析庫中的第一條記錄) FQDN-->FQDN: CNAME (Canonical Name)別名 IP-->FQDN: PTR (pointer) Domain-->Mail Server: MX (Mail eXchanger), 有優先級:0-99,數字越小級別越高 注意:1.SOA記錄定義了誰是一個域內的主DNS。主輔DNS服務器之間如何同步(即如何進行區域傳送)的。 2.正向解析不能有PTR記錄; 反向解析不能有A記錄,也不需要MX記錄
資源記錄的格式:
name [ttl] class type value 說明:name字段表示該記錄所描述的實體(通常是主機或者一個域)。如果幾個連續的記錄涉及同一個實體的話,那麼第一條之後可以省略,利用@來代替這個name字段。 TTL(time to live (存活時間)),默認字段以秒爲單位指定時間長度,在指定的時間內,數據項可被緩存並且仍被認爲是有效的。TTL必須位於該區域數據文件的第一行,默認可省。 class指定網絡類型:默認類型爲IN,IN(指Internet)、HS(Hesiod:本地使用的目錄服務)、CH(供域名服務器內部用來標示自己) type:資源記錄類型 value: 資源記錄的值
SOA記錄格式:
mageedu.com 600 IN SOA dns.magedu.com. admin.magedu.com. ( 20150916001 2H 20M 7D 5H)
NS記錄格式:
magedu.com 600 IN NS dns.magedu.com.
A記錄格式:
dns.magedu.com. 600 IN A 192.168.0.105
別名記錄(CNAME)格式:
ftp.magedu.com. 600 IN CNAME www
郵件記錄格式:
magedu.com 600 IN MX 20 mailserver1.magedu.com.
PTR記錄格式:
105.0.168.192.in-addr.arpa 600 IN PTR dns.magedu.com.
SOA記錄寫法比較特別,有兩種寫法,寫法一:
SOA: zone [TTL] IN FQDN admin_mailbox ( 2013081201 ;序列號, serial number,每次更改配置值是都要在原來的基礎上加上1,表示有更新 2h ;刷新時間, refresh time, 通知(notify): 只通知給本區域解析庫文件中定義NS記錄的所有主機; 5m ;重試時間, retry time 7d ;過期時間, expire time 1d ;否定答案的ttl )
寫法二
SOA: @ [TTL] IN FQDN admin_mailbox ( 2013081201 ;序列號, serial number 2h ;刷新時間, refresh time, 通知(notify): 只通知給本區域解析庫文件中定義NS記錄的所有主機; 5m ;重試時間, retry time 7d ;過期時間, expire time 1d ;否定答案的ttl )
第五,DNS服務器類型:
緩存服務器:不負責解析,僅爲加速,不需要註冊
主DNS服務器:負責解析本地客戶端請求
輔助DNS服務器:輔助服務器的區域數據都是從主服務器複製而來,其數據都是隻讀的
第二部分——bind安裝和配置
第一,bind詳細介紹
進程:named 協議:dns 使用端口:53(tcp,udp) 程序文件:/usr/sbin/named
相關包:
1.bind-chroot:將named進程的活動範圍限定在chroot目錄,保證安全性
2.bind-devel:與開發相關的頭文件和庫文件(編譯安裝bind時所需)
3.bind-libs:bind服務器端和客戶端都使用到的公共庫文件
4.bind-utils : bind客戶端工具
bind配置文件:
[root@localhost etc]# rpm -qc bind /etc/logrotate.d/named /etc/named.conf #主配置文件 /etc/named.iscdlv.key /etc/named.rfc1912.zones #區域配置文件(用include指令包含在主配置文件中) /etc/named.root.key #根區域的key文件以實現事務簽名; /etc/rndc.conf #rndc(遠程名稱服務器控制器)配置文件; /etc/rndc.key #rndc加密密鑰 /etc/sysconfig/named /var/named/named.ca #13個根服務器存放文件/var/named/named.empty /var/named/named.empty /var/named/named.localhost /var/named/named.loopback
主配置文件:named.conf,每個語句都要使用分號結尾;其功能如下:定義區域;定義各區域的全局配置;定義視圖;定義日誌
bind客戶端工具:
/usr/bin/dig #最常用的DNS服務器測試工具 /usr/bin/host #一款輕量級DNS測試工具 /usr/bin/nslookup #DNS查詢工具,在衆多平臺上都有實現(windows上也有) /usr/bin/nsupdate #更新工具
dig命令:
語法:dig -t 資源記錄類型 名稱 @server-ip
若不加"@server-ip":則根據/etc/resolv.conf文件中的配置解析文件來查詢
[root@localhost etc]# dig -t NS www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t NS www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58677 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN NS ;; ANSWER SECTION: www.baidu.com. 138 IN CNAME www.a.shifen.com. ;; AUTHORITY SECTION: a.shifen.com. 500 IN SOA ns1.a.shifen.com. baidu_dns_master.baidu.com. 1509110003 5 5 86400 3600 ;; Query time: 16 msec ;; SERVER: 124.207.160.106#53(124.207.160.106) #通過此處的DNS服務器解析; ;; WHEN: Mon Sep 14 06:41:52 2015 ;; MSG SIZE rcvd: 115
說明:
(1)加"@server-ip":根據指定的DNS服務器來解析,繞過了本地解析庫中設置的DNS服務器。
(2)注意標誌位:
;; flags: qr rd ra; QUERY: 1, ANSWER: 1,AUTHORITY: 1, ADDITIONAL: 0
如果flags後出現aa標誌,則說明這是一條權威應答
Note:dig命令不會查緩存,而是直接查服務器;
[root@localhost etc]# dig -t A www.baidu.com @114.114.114.114 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.baidu.com @114.114.114.114 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5861 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 600 IN CNAME www.a.shifen.com. www.a.shifen.com. 600 IN A 119.75.218.70 www.a.shifen.com. 600 IN A 119.75.217.109 ;; AUTHORITY SECTION: a.shifen.com. 681 IN NS ns1.a.shifen.com. a.shifen.com. 681 IN NS ns4.a.shifen.com. a.shifen.com. 681 IN NS ns5.a.shifen.com. a.shifen.com. 681 IN NS ns2.a.shifen.com. a.shifen.com. 681 IN NS ns3.a.shifen.com. ;; ADDITIONAL SECTION: ns1.a.shifen.com. 553 IN A 61.135.165.224 ns2.a.shifen.com. 365 IN A 180.149.133.241 ns3.a.shifen.com. 439 IN A 61.135.162.215 ns4.a.shifen.com. 213 IN A 115.239.210.176 ns5.a.shifen.com. 213 IN A 119.75.222.17 ;; Query time: 4 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) #使用的是該地址查詢; ;; WHEN: Mon Sep 14 06:50:11 2015 ;; MSG SIZE rcvd: 260
dig 常用選項:
dig -x IP @server-ip:查詢方向解析;
dig -t axfr zone :驗證完全區域傳送;
dig -t 資源記錄類型 名稱 +trace:追蹤解析過程
[root@localhost etc]# dig -t A www.baidu.com +trace ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.baidu.com +trace ;; global options: +cmd #首先找根 . 248296 IN NS c.root-servers.net. . 248296 IN NS l.root-servers.net. . 248296 IN NS g.root-servers.net. . 248296 IN NS k.root-servers.net. . 248296 IN NS i.root-servers.net. . 248296 IN NS h.root-servers.net. . 248296 IN NS d.root-servers.net. . 248296 IN NS j.root-servers.net. . 248296 IN NS b.root-servers.net. . 248296 IN NS a.root-servers.net. . 248296 IN NS f.root-servers.net. . 248296 IN NS m.root-servers.net. . 248296 IN NS e.root-servers.net. ;; Received 496 bytes from 124.207.160.106#53(124.207.160.106) in 1320 ms #然後找.com com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. ;; Received 503 bytes from 192.5.5.241#53(192.5.5.241) in 103 ms #然後找baidu.com baidu.com. 172800 IN NS dns.baidu.com. baidu.com. 172800 IN NS ns2.baidu.com. baidu.com. 172800 IN NS ns3.baidu.com. baidu.com. 172800 IN NS ns4.baidu.com. baidu.com. 172800 IN NS ns7.baidu.com. ;; Received 201 bytes from 192.41.162.30#53(192.41.162.30) in 266 ms #最後找到最終結果; www.baidu.com. 1200 IN CNAME www.a.shifen.com. a.shifen.com. 1200 IN NS ns5.a.shifen.com. a.shifen.com. 1200 IN NS ns4.a.shifen.com. a.shifen.com. 1200 IN NS ns2.a.shifen.com. a.shifen.com. 1200 IN NS ns1.a.shifen.com. a.shifen.com. 1200 IN NS ns3.a.shifen.com. ;; Received 228 bytes from 61.135.165.235#53(61.135.165.235) in 12 ms
host命令:
語法:host -t 資源記錄類型 名稱
[root@localhost etc]# host -t A www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 119.75.217.109 www.a.shifen.com has address 119.75.218.70
第二,DNS(bind)服務器配置
實驗環境
VMware station 10 BIND服務器:兩臺CentOS 6.4虛擬機做主輔DNS 一臺windows 7做客戶端 Domain Name:test.com. 192.168.1.0/24 主DNS:LinuxMaster.test.com. 192.168.1.58 輔助DNS:LinuxSlave.test.com. 192.168.1.59 Win2008Slave.test.com. 192.168.80.3 (在windows 2008 R2上實現 ) web主機:www.test.com. 192.168.1.58 192.168.1.59 192.168.80.3 ftp主機:ftp.test.com. CNAME www.test.com. mx郵件服務器:mx.test.com. 192.168.1.58
配置正向解析
第一步:通過yum安裝bind
]# yum install -y bind
第二步:修改主配置文件(/etc/named.conf) 註釋:自己創建也可以
[root@localhost etc]# cat /etc/named.conf // C/C++風格的語法,註釋用//或/* */ // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; }; //指明監聽端口; listen-on-v6 port 53 { ::1; }; directory "/var/named"; //指明存放區域文件根目錄,後面給出的相對路徑都是相對此目錄; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; //允許那些主機查詢; recursion yes; //是否允許遞歸查詢; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { //定義日誌; channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { //定義根區域文件名稱 type hint; //類型 爲根 file "named.ca"; //使用的是相對路徑,默認存放在/var/named/named.ca }; //把另外兩個文件也包含進來,作爲主配置文件的一部分; include "/etc/named.rfc1912.zones"; //該文件 定義區域配置文件; include "/etc/named.root.key"; //該文件,根區域的key文件,與實務簽名相關;
註釋掉上述文件中的以下三行: // listen-on port 53 { 127.0.0.1; }; 指明監聽端口; // listen-on-v6 port 53 { ::1; }; IPv6 allow-query { localhost; }; 允許那些主機查詢;
啓動named服務
[root@localhost etc]# /etc/rc.d/init.d/named start Generating /etc/rndc.key: [ OK ] Starting named: [ OK ]
驗證named服務是否已經啓動
[root@localhost etc]# ss -taunl | grep "53" udp UNCONN 0 0 172.16.21.100:53 *:* udp UNCONN 0 0 192.168.0.105:53 *:* udp UNCONN 0 0 127.0.0.1:53 *:* tcp LISTEN 0 3 172.16.21.100:53 *:* tcp LISTEN 0 3 192.168.0.105:53 *:* tcp LISTEN 0 3 127.0.0.1:53 *:* tcp LISTEN 0 128 ::1:953 :::* tcp LISTEN 0 128 127.0.0.1:953 *:*
將named服務設爲開機啓動
[root@localhost etc]# chkconfig --list named named 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@localhost etc]# chkconfig named on [root@localhost etc]# chkconfig --list named named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
到此,一臺DNS緩存服務器就配置好了
編輯區域配置文件/etc/named.rfc1912.zones
格式:
zone "區域名稱"IN { type master|slave|forward; //注意每個語句要以分號結尾 file"ZONE_NAME.zone"; }; //注意要以分號結尾
例子:
zone "company.com" IN { type master; file"company.com.zone"; };
第三步:創建區域數據文件(/var/named/***.zone)
在/var/named/下建立"ZONE_NAME.zone"文件,通常只包含宏定義和資源記錄,且第一個記錄必須是SOA記錄,格式如下:
$TTL 600; name [TTL] IN RR_Type value
(1)一個FQDN可對應同多個IP;(負載均衡)
(2)多個FQDN可對應一個IP:(一臺主機有多個名稱,且可以用CNAME定義)
$TTL 600; @ IN SOA LinuxMaster.company.com. admin.company.com.( 20150916001 1H 5M 7D 3D ) IN NS LinuxMaster IN MX 20 MX LinuxMaster IN A 192.168.0.105 www IN A 192.168.0.105 www IN A 172.16.21.100 www IN A 192.168.0.110 mx IN A 192.168.0.110 ftp IN CNAME www
第四步:使用相關命令(named-checkconf、named-checkzone)測試配置文件及區域文件是否存在語法錯誤
[root@localhost named]# named-checkconf [root@localhost named]# named-checkzone "company.com" /var/named/company.com.zone zone company.com/IN: loaded serial 2971046817 OK
第五步:確保主配置文件和各區域解析庫文件的權限爲640,屬主爲root,屬組爲named
(1)檢查主配置文件的權限
[root@localhost named]# ls -l /etc/named* -rw-r----- 1 root named 1014 Sep 14 07:26 /etc/named.conf #權限爲640,屬主root,數組named; -rw-r----- 1 root named 1014 Sep 12 12:12 /etc/named.conf.rpmsave -rw-r--r-- 1 root named 2389 Oct 15 2014 /etc/named.iscdlv.key -rw-r----- 1 root named 999 Sep 14 07:42 /etc/named.rfc1912.zones #權限爲640,屬主root,數組named; -rw-r--r-- 1 root named 487 Jul 19 2010 /etc/named.root.key
(2)檢查區域解析庫文件/var/named/company.com.zone的權限
[root@localhost named]# ls -l /var/named/company.com.zone -rw-r--r-- 1 root root 288 Sep 14 07:55 /var/named/company.com.zone
更改權限
[root@localhost named]# chown root:named /var/named/company.com.zone [root@localhost named]# chmod 640 /var/named/company.com.zone [root@localhost named]# ll /var/named/company.com.zone -rw-r----- 1 root named 288 Sep 14 07:55 /var/named/company.com.zone
第六步:重啓服務或重新加載配置文件:
[root@localhost named]# /etc/rc.d/init.d/named restart Stopping named: [ OK ] Starting named: [ OK ]
第七步:檢查iptables和selinux的配置(要關閉)
[root@localhost named]# service iptables stop [root@localhost named]# setenforce 0 setenforce: SELinux is disabled [root@localhost named]# getenforce Disabled
第八步:分別使用(dig/nslookup)在Linux/Windows主機進行查詢DNS相關資源記錄
使用dig命令在Linux主機上進行DNS資源查詢
[root@localhost ~]# hostname LinuxSlave.company.com #在輔助Linux主機上查詢 [root@localhost ~]# dig -t SOA company.com @192.168.0.105 #通過主Linux主機查詢 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t SOA company.com @192.168.0.105 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37165 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: #請求部分; ;company.com. IN SOA ;; ANSWER SECTION: #應答部分; company.com. 600 IN SOA LinuxMaster.company.com. admin.company.com. 2971046817 3600 300 604800 259200 ********************************************************** ;; AUTHORITY SECTION: company.com. 600 IN NS LinuxMaster.company.com. ;; ADDITIONAL SECTION: LinuxMaster.company.com. 600 IN A 192.168.0.105 ********************************************************** ;; Query time: 4 msec ;; SERVER: 192.168.0.105#53(192.168.0.105) ;; WHEN: Mon Sep 14 08:16:39 2015 ;; MSG SIZE rcvd: 113
配置反向解析
反向區域的區域名稱格式: ReverseIP.in-addr.arpa.
例如:假設網絡地址爲192.168.0.1,那麼規則命名爲0.168.192.in-addr.arpa
第一步:修改配置文件/etc/named.conf,添加反向解析區域配置文件
zone "168.192.in-addr.arpa" IN { type master; file"0.168.192.zone" //反向解析區域文件名; };
第二步:創建反向區域解析文件0.168.192.zone
$TTL 600; @ IN SOA LinuxMaster.company.com. admin.company.com. ( 20150916001 1H 5M 7D 3D ) IN NS LinuxMaster.company.com. 105 IN PTR LinuxMaster.company.com. 105 IN PTR mx.company.com. 105 IN PTR www.company.com. 110 IN PTR www.company.com. 3 IN PTR www.company.com.
第三步:檢查語法
[root@localhost named]# named-checkconf [root@localhost named]# named-checkzone "0.168.192.zone" /var/named/0.168.192.zone zone 0.168.192.zone/IN: loaded serial 2971046817 OK
第四步:設置權限
[root@localhost named]# chmod 640 /var/named/0.168.192.zone [root@localhost named]# chown root:named /var/named/0.168.192.zone [root@localhost named]# ll /var/named/0.168.192.zone -rw-r----- 1 root named 528 Sep 14 09:19 /var/named/0.168.192.zone
第五步:重新加載配置文件
[root@localhost named]# service named restart Stopping named: [ OK ] Starting named: [ OK ]
第六步,使用dig命令驗證反向解析
[root@localhost named]# dig -x 192.168.0.105 @192.168.0.105 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -x 192.168.0.105 @192.168.0.105 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47804 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;105.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 105.0.168.192.in-addr.arpa. 600 IN PTR www.company.com. 105.0.168.192.in-addr.arpa. 600 IN PTR LinuxMaster.company.com. 105.0.168.192.in-addr.arpa. 600 IN PTR mx.company.com. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 600 IN NS LinuxMaster.company.com. ;; ADDITIONAL SECTION: LinuxMaster.company.com. 600 IN A 192.168.0.105 ;; Query time: 0 msec ;; SERVER: 192.168.0.105#53(192.168.0.105) ;; WHEN: Mon Sep 14 09:59:28 2015 ;; MSG SIZE rcvd: 146