指導教授:黃 燕 忠 教授 研究生 :李欣衛 謝士傑 DNS Server(網域名稱伺服器) 指導教授:黃 燕 忠 教授 研究生 :李欣衛 謝士傑
大綱介紹 DNS 簡介 DNS概念介紹 DNS基本架構與運作流程 正解與反解 DNS安裝與設定 查詢DNS套件 安裝套件
DNS 簡介
DNS 簡介 DNS全名『 Domain name system 』, 中文為『領域名稱系統』。 用途:將網域名稱(Domain Name)與IP 位址作轉換。 例子:學校 ip 140.137.1.17 (難記) 經轉換 >>> www.pccu.edu.tw(好記)
DNS系統概念簡介 網域空間(Domain Name Space) 主機名稱+網域名稱 (Host name)+(Domain name) 完整網域名稱 FQDN(Fully Qualified Domain Name) 主機名稱+網域名稱 (Host name)+(Domain name) 例子: www. pccu . edu . tw. (Null) 主機名稱 .組織名稱 . 組織類別. 國名
DNS系統概念簡介 正解網域 (Forward domain zones) 反解網域 (Reverse domain zones) www <-- pccu <-- edu <-- tw 正解=用domain name查 ip 位址 反解網域 (Reverse domain zones) 17 <--1 <--137 <--140<-- in-addr.arpa 反解 = 用ip 反查domain name zone =一個正解或反解的”設定”檔
DNS的基本架構圖 這個階層式的樹狀架構,大致可分為4層 根網域 頂層網域 第二層網域 主機 root tw hk com jp gov … 第二層網域 google sun 主機 www mail ftp arpa
DNS運作原理
DNS的分類 DNS組織類別的分類依網路使用單位 的特性區分
名稱解析方式 符合TCP/IP協定標準 正向解析(forward mapping) 反向解析(reverse mapping) Domain Name->IP Address 反向解析(reverse mapping) IP Address->Domain Name
正向解析(Forward mapping) 遞迴式(Recursive) DNS用戶端向DNS Server的查詢模式,這種方式是將要查 詢的封包送出去問,就等待正確名稱的正確回應,這種方式 只處理回應回來的封包是否是正確回應或是說是找不到該名 稱的錯誤訊息。 反覆式(Interactive) DNS Server間的查詢模式,由 Client端或是DNS Server上 所發出去問,這種方式送封包出去問,所回應回來的資料不 一定是最後正確的名稱位置,但也不是如上所說的回應回來 是錯誤訊息,他回應回來告訴你最接近的IP位置,然後再到 此最接近的IP上去尋找所要解析的名稱,反覆動作直到找到 正確位置。
遞迴式 與 交談式 遞迴式發生的位置 交談式發生的位置
反向解析(Reverse mapping) IP AddressDomain name 140.137.2.140blue.dns.edu.tw 反向解析經過arpa網域來搜訊 搜尋方向2.137.140.in-addr.arpa
網址:blue.dns.edu.tw 代表在dns.edu.tw機器上name server 有一筆紀錄是blue
DNS 安裝與設定
架設DNS的基本條件 了解資源記錄(Resource Records)的意義 以BIND架設DNS伺服器(named daemon) BIND -- Berkeley Internet Name Domain 認識 BIND 相關設定檔 註冊Domain Name
7-5 DNS資源記錄-RR類別 RR Type: SOA 紀錄(SOA record) NS 紀錄(Name Server record) A 紀錄(Address record) CNAME 紀錄(CNAME record) MX(Mail eXchanger) TXT 紀錄(TEXT record) Alias紀錄(Alias record) PTR 紀錄(Pointer record)
7-5 DNS資源記錄-SOA SOA -- Start Of Authority 起始授權記錄 -- Start Of Authority 放在 zone file 一開始的地方 描述這個 zone 負責的 內容: name server version number maintainer 資料 以及當 slave server 要備份這個 zone 時的一些參數
7-5 DNS資源記錄-SOA格式 SQA格式: [zone] [ttl] IN SOA origin contact( serial refresh retry expire ttl ) zone:網域的名稱 origin:主要名稱伺服器 contact:聯絡人email
7-5 DNS資源記錄-NS NS -- Name Server record 名稱伺服器記錄-- Name Server record 列出這個網域所管轄的名稱伺服器,定義某個 domain 是由哪個 name server 負責 格式: [domain] [ttl] IN NS server server :為這個網域提供名稱服務的電腦主機名稱,必須使用包含網域名稱的全名
7-5 DNS資源記錄-A A -- Address record A 紀錄 -- A record 定義某個 domain name 對應的 IP 格式: [host] [ttl] IN A address host:主機名稱,必須使用包含網域名稱的全名 address:主機的IP位址
7-5 DNS資源記錄-PTR PTR -- Pointer record PTR 紀錄 -- PTR record 定義某個 IP 對應的 domain name 格式 : name [ttl] IN PTR host name:主機IP地址,必須參考in-addr.arpa網域的方式設定 address:主機的IP位址
7-5 DNS資源記錄-CNAME CNAME -- Canonical NAME CNAME 紀錄 -- CNAME record 格式 : nickname [ttl] IN CNAME host
7-5 DNS資源記錄-MX MX -- Mail eXchanger 郵件交換站記錄-- Mail exchanger 定義某部機器的 mail exchanger,所有要送往那 部機器的 mail 都要經過 mail exchanger 轉送。 格式: [name] [ttl] IN MX preference host name:主機或網域的名稱,郵件地址@符號後面的部份 preference:指定這些郵件伺服器的順序,數值小者先試 host:指定用來處理郵件的郵件伺服器的名稱,即郵件地址
BIND9安裝及設定 系統版本: CentOS 5.2 安裝套件: bind-utils-9.3.4-6.0.2.P1.el5_2 << 用戶端搜尋主機名稱的相關指令 bind-libs-9.3.4-6.0.2.P1.el5_2 << bind相關套件 bind-9.3.4-6.0.2.P1.el5_2 << DNS伺服器主程式 bind-chroot-9.3.4-6.0.2.P1.el5_2 << 將BIND主程式關在Chroot下 system-config-bind-4.0.3-2.el5.centos << 安裝 system-config-bind 套件來產生 named.conf 範例檔
DNS安裝與設定 查詢架設DNS套件 #yum install bind <<安裝bind套件 # rpm –qa | grep bind #yum install bind <<安裝bind套件 #yum install system-config-bind <<安裝此套件來產生named.conf範例檔
複製相關檔案到目錄/var/named/chroot/下 [root@localhost~]#cp –p /usr/share/system-config- bind/profiles/default/named.conf /var/named/chroot/etc/ << 複製named.conf範例檔 [root@localhost~]#ln –s /var/named/chroot/etc/named.conf /etc/named.conf << 建立連結到 /etc 下 [root@localhost~]#cp –p/usr/share/system-config- bind/profiles/default/named/* /var/named/chroot/var/named/ << 複製相關範例檔至bind chroot目錄下 [root@localhost~]#cp /usr/share/doc/bind- 9.34/sample/var/named/named.root /var/named/chroot/var/named/ << 複製bind root檔至bind chroot目錄下 [root@localhost~]#chown –R named /var/named/chroot << 把owner權限更改為 named
BIND的重要檔案 主要設定檔 正解資料庫的設定檔 網域主機名稱資料庫設定檔 反解資料庫的設定檔 網域名稱反解設定檔 /etc/named.conf 正解資料庫的設定檔 /var/named/Chroot/var/named/localdomain.zone 網域主機名稱資料庫設定檔 /var/named/Chroot/var/named/suseXX.mylab.tw.zone 反解資料庫的設定檔 /var/named/Chroot/var/named/named.local 網域名稱反解設定檔 /var/named/Chroot/varnamed/named.網域
啓動檔-named.conf options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; forwarders { << 設定往前尋找的那個『合法』的 DNS , 每一個 forward 的主機之 IP 都需要有『 ; 』做為結尾 168.95.1.1; }; }; zone "." IN { type hint; << 特殊的類別,專給root(.)用的 file "named.root"; zone "localdomain." IN { type master; file "localdomain.zone"; allow-update { none; };
啓動檔-named.conf zone "localhost." IN { << 主機正解設定 type master; file "localhost.zone"; << 檔名 allow-update { none; }; }; zone "0.0.127.in-addr.arpa." IN { << 反解設定 file "named.local"; << 檔名
啓動檔-named.conf zone "dns.edu.tw" { << (網域名稱) 正解設定 type master; file "suseXX.mylab.tw.zone";<< 檔名 allow-transfer {IP; }; << slave上的IP,只有 這個 IP 能 Zone Transfer 我的 Zone File. }; zone “2.137.140.in-addr.arpa" { << 反解設定 file "named.140.137.2"; << 檔名 allow-transfer {IP; }; <<slave上的IP,只有這個 IP 能 Zone Transfer 我的 Zone File. include "/etc/rndc.key"; 這裡的IP要看你將MSTER主機設定在哪個網域上
正解檔sample – dns.zone 注意: ‧檔名需與啟動檔中 設定的相同。 ‧每次對此有做修正 時serial的數字一 定要向上改 $TTL 86400 @ IN SOA blue.dns.edu.tw. hostmaster.dns.edu.tw.( 2008110808 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minmum @ IN NS blue.dns.edu.tw. @ IN NS slave.dns.edu.tw. blue IN A 140.137.2.140 slave IN A @ IN MX 10 mail www IN CNAME blue ftp IN CNAME blue proxy IN CNAME blue 注意: ‧檔名需與啟動檔中 設定的相同。 ‧每次對此有做修正 時serial的數字一 定要向上改 ‧每一個網址,一定 都要使用FQDN, 也就是後面要多個 “‧”
反解檔sample - dns.zone $TTL 86400 @ IN SOA blue.dns.edu.tw. root.blue.dns.tw.( 2008110808 ; Serial 28800 ; Refresh 14400 ; Retry 360000 ; Expire 86400 ; Minmum ) @ IN NS blue.dns.edu.tw. @ IN NS slave.dns.edu.tw. 140 IN PTR blue.dns.edu.tw. 1 IN PTR slave.dns.edu.tw.
啟動DNS服務 [root@local ~]# #service named start or /etc/init.d/named start [root@local ~]#service named restart 檢查是否Listen Port 53 (named) [root@local ~]# netstat -tnl
其他相關BIND的重要檔案 /etc/resolv.conf /etc/hosts /etc/host.conf 此檔案是設定Name Server的搜尋順序,如果只設定了 內部迴路則無法對外搜尋,會造成bind啟動異常、apt無 法使用、上網速度較慢等問題. /etc/hosts 早期管理網域主機的檔案,可以在內設網域內主機IP位址 或常用IP位址,加快搜尋速度. /etc/host.conf 搜尋順序設定檔. /var/log/messages 訊息檔,提供開機訊息、及各項啟動訊息,可由這個檔案 看出BIND啟動時的錯誤.
slave 上DNS的設定 [root@local ~]# vi /etc/named.conf zone "dns.edu.tw" { << (網域名稱) 正解設定 type slave; file "suseXX.mylab.tw.zone";<< 檔名 allow-transfer { "none"; }; masters {IP; }; << master上的IP, }; zone “2.137.140.in-addr.arpa" { << 反解設定 file "named.140.137.2"; << 檔名
設定開機時啟動DNS服務 使用chkconfig指令來查看named 在各 runlevel下狀態 [root@localhost ~]#chkconfig --list | grep named 設定named在開機時(runlevel為2、3、4、5時)會啟動服務 [root@localhost ~]#chkconfig named on 檢查設定是否生效
DNS 測試
DNS診斷工具—Ping(Ⅰ) Ping– 偵測主機是否存活 正向查詢: ping [主機名稱] 反向查詢 :ping –a [主機位址] 例:ping blue.dns.edu.tw 反向查詢 :ping –a [主機位址] 例:ping -a 140.137.2.140 一般查詢:ping [主機位址] 例:ping 140.137.2.140
Ping(Ⅱ) 正向查詢: [root@localhost ~]# PING blue.dns.edu.tw (140.137.2.140) 56(84) bytes of data. 64 bytes from blue.dns.edu.tw (140.137.2.140): icmp_seq=1 ttl=64 time=1.31 ms 反向查詢: [root@localhost ~]#ping 140.137.2.140 PING 140.137.2.140 (140.137.2.140) 56(84) bytes of data. 64 bytes from 140.137.2.140: icmp_seq=1 ttl=64 time=2.03 ms 64 bytes from 140.137.2.140: icmp_seq=2 ttl=64 time=0.073 ms
nslookup nslookup 名稱解析測試與診斷工具 以交談式的指令檢測DNS伺服器的設定內容與 名稱。 可以指定一台DNS伺服器查詢網路上任何一部 機器的 IP address 或網域名稱(Domain Name)
nslookup 常用參數 nslookup > ? > server [主機名稱] 顯示預設伺服器及ip位址 > ? 參數使用說明 > server [主機名稱] 改變預設伺服器 > set type=all (any, ns, mx等) 設定顯示類別 > ls –d [網域名稱] 列出轄域內所有主機名稱 >exit 結束離開
nslookup(實例) C:\>nslookup > blue.dns.edu.tw Server: 140.137.2.140 Address: 140.137.2.140#53 Name: blue.dns.edu.tw Address: 140.137.2.140 > server blue.dns.edu.tw [root@localhost ~]# nslookup blue.dns.edu.tw 140.137.2.140 Address: 140.137.2.140
Dig 範例 Linux專用的主機查訊指令 格式:dig -- help [root @test root]# dig [@server] [FQDN] [type] [root@localhost ~]# dig @140.137.2.140 blue.dns.edu.tw ; <<>> DiG 9.3.4-P1 <<>> @140.137.2.140 blue.dns.edu.tw ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29436 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION: ;blue.dns.edu.tw. IN A ;; ANSWER SECTION: blue.dns.edu.tw. 86400 IN A 140.137.2.140 ;; AUTHORITY SECTION: dns.edu.tw. 86400 IN NS blue.dns.edu.tw. dns.edu.tw. 86400 IN NS slave.dns.edu.tw. ;; ADDITIONAL SECTION: slave.dns.edu.tw. 86400 IN A 192.168.122.1 ;; Query time: 35 msec ;; SERVER: 140.137.2.140#53(140.137.2.140) ;; WHEN: Tue Nov 11 22:46:05 2008 ;; MSG SIZE rcvd: 99
Host 範例 格式: host -l [domain] [server] [root@localhost ~]# host blue.dns.edu.tw 140.137.2.140 Using domain server: Name: 140.137.2.140 Address: 140.137.2.140#53 Aliases: blue.dns.edu.tw has address 140.137.2.140
Whois 範例 格式: whois [domainname]. [root@localhost ~]# whois blue.dns.edu.tw [Querying whois.twnic.net] [whois.twnic.net] Ministry of Education Computer Center 12th Fl, 106, Hoping E. Road, Sec 2. Taiwan Republic of China, R.O.C TW Domain Name: edu.tw Contact: TANet, Administrator tanetadm@moe.edu.tw 886-2-87329007
參考資料 藍色部落 http://itgroup.blueshop.com.tw/yjh wang/linuxlab