DNS正反向區域解析(二)
阿新 • • 發佈:2018-12-30
域名查詢工具
Nslookup命令
>server 202.106.0.20 #指定DNS伺服器 >set q=A #指定要查詢的型別(A,PTR,MX,CNAME,NS) >www.baidu.com #指定要查詢的域名
dig命令
此命令是DNS工具包帶的,可以用來查詢域名相關資訊
dig [ -t type ] [ -x addr ] [ name ] [ @server ] -t A www.baidu.com @202.106.0.20 #檢視域名的IP地址,指定DNS伺服器,預設使用本地DNS地址 -t NS www.baidu.com #檢視域名的NS伺服器 -t NS . #檢視根的NS伺服器 -t NS com #檢視com.的NS伺服器 -t MX baidu.com #檢視域的郵件域名 -t SOA baidu.com #檢視域的權威伺服器的SOA記錄 -t CNAME www.baidu.com #檢視域名的別名 -x 192.168.60.200 @192.168.60.10 #反向解析查詢
示例:
[[email protected] ~]# dig -t a www.baidu.com ; < <>> DiG 9.8.3-P1 < <>> -t a www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 59830 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: #顯示dig提的問題 ;www.baidu.com. IN A ;; ANSWER SECTION: #回覆dig提的問題 www.baidu.com. 448 IN CNAME www.a.shifen.com. www.a.shifen.com. 0 IN A 115.239.211.112 www.a.shifen.com. 0 IN A 115.239.210.27 ;; Query time: 15 msec ;; SERVER: 192.168.5.1#53(192.168.5.1) ;; WHEN: Sat Jul 2 21:30:06 2016 ;; MSG SIZE rcvd: 103
Dig查詢結果顯示資訊除了QUESTION SECTION和ANSWER SECTION外,還會碰見下面兩類資訊:
AUTHORITY SECTION #顯示A記錄的權威伺服器 ADDITIONAL SECTIONdd #顯示A記錄的權威伺服器的A記錄
Dig的另外幾種常見用法
# 檢視202.106.0.20是否給遞迴 [[email protected] ~]# dig +recurse -t www.baidu.com @202.106.0.20 # 顯示查詢www.baidu.com的詳細過程使用本地DNS [[email protected]~]# dig +trace -t www.baidu.com
DNS資源記錄
DNS伺服器的解析功能有兩種,一種是正向解析,一種是反向解析。正反向解析技術不同,因此不應該存放於同一個資料庫檔案中進行,每一種解析在DNS伺服器上都需要有對應的資料庫檔案。在資料庫檔案中每一條都是一個資源記錄,資源記錄是有型別的,用於表示資源的功能,常用的有如下記錄:
SOA(Start Of Authority) #起始授權記錄 NS(Name Server) #域名伺服器記錄,標明自己就是DNS伺服器 MX(mail eXchanger) #郵件交換器記錄 A(Address) #域名轉IPv4地址(正向解析) PTR(PoiTeR) #IP地址轉換為域名(反向解析) AAAA(Address) #域名轉IPv6地址 CNAME(Canonical Name) #正式名稱(別名記錄)
正向區域檔案
$TTL 600 @ IN SOA dns.ywnds.com. root.ywnds.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns
$TTL 600 :生存時間欄位以秒為單位定義改資源記錄中的資訊存放在DNS快取中的時間長度。
資源記錄格式
NAME IN TYPE Value NAME:名稱欄位,此欄位是資源記錄引用的域物件名,可以是一臺獨立的主機(如www)也可以是整個域(如wangfeng7399.com);欄位值”.”表示根,“@”表示預設域即當前域。 IN:此欄位用於將當前記錄標識為一個網際網路的DNS資源記錄。 TYPE:資源記錄型別,介紹常用的幾種型別,如下: SOA(start OF authority):起始授權記錄,其中NAME欄位必須是區域名稱如ywnds.com.或“@”表示,Value欄位必須是主DNS伺服器的FQDN 例如: @ IN SOA dns.ywnds.com. root.ywnds.com. 其中,root.ywnds.com.是管理員郵箱,沒有用@表示是因為@有特殊意義。這些引數的意義是輔助DNS用來更新主DNS的標誌來更新資料,如: serial = 2913 (序列號=2913、這個序列號的作用是當輔域名伺服器來複制這個檔案的時候,如果號碼增加了就複製) refresh = 10800 (3 hours) (重新整理=10800秒、輔域名伺服器每隔3小時查詢一個主伺服器) retry = 3600 (1 hour) (重試=3600秒、當輔域名服務試圖在主伺服器上查詢更新時,而連線失敗了,輔域名伺服器每隔1小時訪問主域名伺服器) expire = 604800 (7 days) (到期=604800秒、輔域名伺服器在向主服務更新失敗後,7天后刪除中的記錄。) default TTL = 3600 (1 hour) (預設生存時間=3600秒、快取伺服器儲存記錄的時間是1小時。也就是告訴快取伺服器儲存域的解析記錄為1小時) NS(Name Server): 域名伺服器,其中NAME欄位必須是區域名稱如ywnds.com.或“@”表示,Value欄位是DNS伺服器的FQDN(可以是相對名稱) 例如: @ IN NS dns MX(mail eXchanger): 郵件交換器,其中NAME欄位必須是區域名稱,用來標識smtp伺服器。Value欄位有優先順序(0-99,數字越小,級別越高)和FQDN。 例如: @ IN MX 10 mail A(Address): 域名轉IPv4地址(正向解析),其中NAME欄位是FQDN(可以使用相對名稱),Value欄位是IP地址。 例如: dns IN NS 192.168.60.10 CNAME : 用來設定別名。
區域的型別
區域型別是用來定義一個此域的有效標識,格式如下:
zone "." IN { type hint; file "named.ca"; }; hint : 表示提示區域,一般根使用的區域。 master : 主DNS伺服器使用的區域標識。 slave : 一般輔助DNS伺服器使用的區域標識。 forward : 轉發區域使用的區域標識。
安裝DNS
在Linux系統上提供DNS服務的軟體有幾款,其中最好的就是bind軟體,目前Linux6上面已經是bind9.8了。直接安裝以下RPM包即可。
[[email protected] ~]# yum install bind bind-utils bind-libs [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0
解釋各個包的意義:
bind-libs:提供的庫檔案 bind-utils:提供的DNS客戶端工具 bind:伺服器主包 bind-devel:提供標頭檔案和庫檔案做二次開發使用(可省略) bind-chroot:把DNS配置做根切換(可省略) bind-dyndb-ldap:用於把DNS區域檔案存入到資料庫或Ldap中(可省略)
Bind的檔案
/etc/named.conf #配置檔案 /etc/rc.d/init.d/named #服務指令碼 /var/named/name.ca #根域區域配置檔案 /var/named/named.localhost #localhost區域配置檔案 /var/named/named.loopback #反向解析配置檔案
快取記憶體DNS
快取記憶體DNS伺服器:192.168.60.10
在DNS安裝完成之後,其實就是一個快取記憶體DNS伺服器,但想要提供服務還需要調整一下監聽地址和允許訪問主機。下面介紹一下Bind主配置檔案/etc/named.conf(許可權640;root屬主;named屬組)。
[[email protected] ~]# cat /etc/named.conf options { listen-on port 53 { any; }; #IPv4監聽地址,改為“any”或註釋掉都表示監聽所有,預設是“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 { any; }; #允許查詢者,改為“any”或註釋掉都表示允許所有,預設是“localhost” recursion yes; #允許給其它使用者遞迴預設開啟 allow-recursion { 192.168.60.0/24; }; #訪問控制,只允許給192.168.60.0網段的使用者遞迴。可省略。 }; 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"; #定義日誌(由於DNS查詢太頻繁儘量不要開啟日誌) logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; #預設DNS根域檔案 zone "." IN { type hint; file "named.ca"; }; #包含檔案 include "/etc/named.rfc1912.zones"; //include "/etc/named.root.key"; #在做實驗時都把此檔案給註釋掉,不然不影響實驗正常結果。預設是開啟的。 [[email protected] ~]# service named start [[email protected] ~]# dig -t A www.baidu.com @192.168.60.10 #測試快取記憶體伺服器(DNS伺服器必須能上網)
正向解析DNS
在快取記憶體DNS伺服器的基礎上做正向解析DNS伺服器
在/etc/named.conf檔案中新增正向解析區域
[[email protected] ~]# vim /etc/named.conf zone "ywnds.com" IN { type master; file "ywnds"; allow-transfer { none; }; };
在/var/named/下新增正向區域檔案
[[email protected] ~]# vim /var/named/ywnds $TTL 1D @ IN SOA dns.ywnds.com. root.ywnds.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns dns IN A 192.168.60.10 @ IN MX 10 mail mail IN A 192.168.60.100 www IN A 192.168.60.200
[[email protected] ~]# chown root:named /var/named/ywnds
dig驗證
反正解析DNS
在/etc/named.conf檔案中新增正向解析區域
[[email protected] ~]# vim /etc/named.conf zone "60.168.192.in-addr.arpa" IN { type master; file "ywnds.com"; allow-transfer { none; }; };
在/var/named/下新增反向區域檔案
[[email protected] ~]# vim /var/named/ywnds $TTL 1D @ IN SOA dns.ywnds.com. root.ywnds.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS dns.ywnds.com. 200 IN PTR www.ywnds.com. 100 IN PTR mail.ywnds.com.
[[email protected] ~]# chown root:named /var/named/ywnds
PS: 反向解析必須要寫FQDN
驗證
[[email protected] ~]# dig -x 192.168.60.200 @192.168.60.