750 likes | 948 Views
網域名稱伺服系統 (DNS) 規劃與建置. 交 通 大 學 計 算 機 中 心 陳 昌 盛 cschen@cc.nctu.edu.tw. TANet DNS Tutorial Course, 88.06.04. 1999 TANet DNS Tutorial Course. DNS 入門簡介 (p.4-18) DNS 建置與規劃 (p.19-25) DNS 設定範例與解說 (p.26-53) 常見的 DNS 規劃與設定問題 (p.54-56) 附錄 (p.57-75).
E N D
網域名稱伺服系統 (DNS)規劃與建置 交 通 大 學 計 算 機 中 心 陳 昌 盛 cschen@cc.nctu.edu.tw TANet DNS Tutorial Course, 88.06.04
1999 TANet DNS Tutorial Course • DNS 入門簡介 (p.4-18) • DNS 建置與規劃 (p.19-25) • DNS 設定範例與解說 (p.26-53) • 常見的 DNS 規劃與設定問題 (p.54-56) • 附錄 (p.57-75)
0. 從何處取得DNS 系統的相關資訊 ? • DNS Resource Directory • http://www.dns.net/dnsrd • http://dnsrd.nctu.edu.tw ( 中文) • the O’Reilly DNS bible ‘DNS and BIND’ • 第 3 版已出書, 有介紹 BIND 8.x • DNS related RFC ( Request For Comments ) • RFC 1033, 1034, 1035, ..., 1912, ... • Newsgroups: • ‘comp.protocols.tcp-ip.domains’ ( 行政管理) • comp.protocols.dns.* ( 技術)
1. DNS 入門 (1.0) 什麼時候會用到 DNS 系統 ? • 往外連線時 (out-going 連線) • 存取檢查, 系統記錄 (incoming 連線) (1.1) DNS 系統的做用 • 定義網域名稱 • 提供網域名稱查詢 (1.2) DNS 實務操作及應用
1.1.1 定義網域名稱 • 網域授權 (domain zone -> NS RR) • 網域名稱( domain name -> A RR) • telnet bbs.cis.nctu.edu.tw • 電子郵件交換 ( mail exchange -> MX RR) • mail cschen@cc.nctu.edu.tw • 網址對應 (pointer -> PTR RR) • 140.113.1.1 -> ns1.nctu.edu.tw • 常用別名 (alias naming -> CNAME RR) • proxy.nctu.edu.tw -> wproxy1.nctu.edu.tw • 其他功能
網域名稱系統(Domain Name System) • 網域名稱系統, 按英文常簡稱 DNS 系統. • DNS 系統, 概分成三個部份 • 網域空間 (Domain Name Space ) • 網域名稱伺服系統 (Domain Name Server) • BIND/named, ... • 網域名稱解譯程式 (Domain Name Resolver) • DNS client, agent, server
網域空間(Domain Name Space) • 分散式 與 階層式 的組織架構 • tree-structure vs. DAG-structure • 地理區域與功能組織 的分類組合方式 • 正解網域 (forward domain zones): • ‘tw’, ‘edu.tw’, ... • 反解網域 (reverse domain zones): • ‘113.140.in-addr.arpa’, ‘1.113.140.in-addr.arpa.’, ...
. root servers gov, mil . . . INT tw Arpa com, org,net cn,hk,.. NSAP gov,mil IP6 in-addr net edu org 203 192 . .. com 140 www ncku nctu hgsh 113 hc 127 ee 114 cc nehs cis ... ns1 6 hchs 250 bbs ... mail www .. ccserv2 2 ccserv2.cc.nctu.edu.tw <=> 140.113.6.2 Fig.1 DNS 運作基本架構圖
1.1.2 DNS - 提供查詢 • DNS 相關程式 • client(用戶端), agent(代理查詢), server(伺服器) • DNS 查詢 (query) • iterative mode (往復式 ; referral) • recursive mode (遞迴式) • DNS server (伺服系統) • primary/master (原始資料 server) vs secondary/slave • caching, forwarder (查詢轉送) • DNS caching • Time-To-Live (TTL; 資料有效期限) • positive caching(正確資料) vs negative caching
DNS - 提供網路查詢(續) • 資料項 round-robin mode (輪流) • load sharing/balancing • round-trip-time ( RTT; 來回傳送時間) • reverse pointer query (IP addr. 反解查詢) • inverse query ( 廣義反向查詢)
1.2 DNS 實務操作及應用 • Domain Zone 的註冊與授權 • forward / reverse domain zones • Primary/master; Secondary/slave DNS server • DNS 上容易有錯誤觀念與設定的地方 • 電子郵件轉接轉送(Mail Relay)服務 • Anti-SPAM checking ( access control) • 正反解 DNS 資料項, 必須匹配 • DNS 查詢轉送(forwarders; 參見 3.2.2 )
1.2.1 正解 Domain Zone 註冊問題 • nctu.edu.tw ( 到 MOECC 登記) • csie.nctu.edu.tw ( 到 NCTU-CC 登記) • ck.tp.edu.tw (臺北建國高中) • 直接由 MOECC 負責 (edu.tw) • thps.hc.edu.tw ( 新竹市載熙國小) • hc.edu.tw 目前由新竹區域網路中心負責
1.2.2 反解 Domain Zone 註冊問題 • 140.113 ( Class B; 透過 MOECC 向 InterNIC 註冊) • 140.126.3 ( 由 class B 分割; 到區域網路中心註冊) • 140.126 (Class B; 透過 MOECC 向InterNIC 註冊) • 192.83.166 ( 個別 class C ) • 透過 MOECC 到InterNIC 註冊) • 203.68.12 ( class C; 到 MOECC 註冊) • 203.68 ( 整批 class C 到 APNIC 註冊)
1.2.3 DNS server 的網址選定 $Origin NCTU.edu.tw. @ IN NS ns.nctu.edu.tw. IN NS ns1.nctu.edu.tw. IN NS ns2.nctu.edu.tw. IN NS ns3.nctu.edu.tw. ; TANet 骨幹 ; ns IN A 140.113.250.135 ns1 IN A 140.113.1.1 ; 指定 x.y.z.1 ns2 IN A 140.113.6.2 ns3 IN A 163.28.64.246 ; 高速專用道
1.2.4 容易有錯誤觀念與設定的地方 $Origin NCTU.edu.tw. nctu.edu.tw. IN NS ns.nctu.edu.tw. ; domain zone ==> dig @ns.nctu.edu.tw www.edu.tw nctu.edu.tw. 7200 IN A 140.113.1.1 ; domain name ==> telnet nctu.edu.tw nctu.edu.tw. IN MX 0 ns1.nctu.edu.tw. ; mail exchange ==> E-mail: cschen@nctu.edu.tw ;------------------------------------------------------------------------- nctu.edu.tw. IN NS nctu.edu.tw.
1.2.5 Mail Relay 的相關設定 • DNS side : ; e-mail 最終目的地 cc.nctu.edu.tw. IN MX 10 ccserv6.cc.nctu.edu.tw. ; mail relay ==> 宜善加利用, 可作為“備援與轉接”之用 cc.nctu.edu.tw. IN MX 20 mx.nctu.edu.tw. ; 高速專用道 (MOECC) cc.nctu.edu.tw. IN MX 30relay.edu.tw. • Mail relay server side: 轉接系統 (relay access permission) 借道權限, 必須打開 (sendmail.cf) ==> mx.nctu.edu.tw + relay.edu.tw
1.2.6 Anti-SPAM checking (DNS entry 正反解必須匹配) • domain name 驗證流程. reverseforward IP addr. A ---------> domain name B ---------> IP addr. C Fig. 2 anti-SPAM checking 圖示 • 其中, IP addr. C (可能是一個 group), 必須包含或等於 A 才算通過 DNS 查驗.
DNS 系統新設計的功能 (部份已完成實作) • New DNS RR (rfc 1183) • RP, AFSDB, ISDN, X25, RT • resolver implicit search problem (rfc 1535) • LOC (rfc 1876) • IPv6 ( rfc 1886) • AAAA (new record type), IP6.INT (new domain top ) • incremental zone transfer IXFR ( rfc 1995 ) • DNS notify (rfc 1996) -> BIND_NOTIFY • SRV (rfc 2052) • Secure Zone • Dynamic update ( IP/host )
2. DNS Server Hosts 配置與規劃 • 主機系統選擇 ( platform/OS ) • Unix , Windows NT, OS/2, ... ( 現階段, 仍以 Unix 為佳 ) • 硬體設備需求 • 主要 memory size, 原則是 named 將 90% 以上的 dns query 放在 RAM 中 caching 起來, 不需用到 swap. • 系統軟體 ( BIND/named, ... ) • 網路位址(多重 servers) • primary/secondary server host 分離, 放在不同的網路區段, 當然如果能放在不同單位, 通常更好.
2.1 關於 BIND 的許多資訊 • 目前最新版本 8.2-P1 (1999.03.16) • 4.9.7 ( 舊式); BIND 8.x ( 新式) • 如何得知系統上的 named 版本 ? • 多數 Unix 廠家目前支援的版本 4.8.3 • 有沒有 Windows 下的版本 ? • 不同版本 BIND 之間功能差別 ?
BIND ( Berkeley Internet Name Domain ) • Standalone Daemon ( named ) • UDP/TCP port 53 • UDP query/response ( < 512 bytes ) • TCP response(>512 bytes) + zone transfer • DNS message format • Question/Answer section • Authority section • Additional section • example --> dig output
2.1.1 如何得知系統上的 named 版本 ? • 通常可以這麼作. • 1) 確定 named program 的 pathname. e.g. /etc/named, /usr/sbin/in.named, ... 作法: 使用 which, find, ... -- 2) 用 what 配合 grep 找出相關字串 % what /usr/sbin/named | grep named named: named 8.1.1 Thu Jun 26 15:03:59 EAT 1997 root@ns:/home/DNS/bind-8.1.1-REL/src/bin/named
2.1.2 不同版本 BIND 之間功能的差別 ? • V8.x 整套程式 , 重新改寫 • /etc/named.boot (v4) -> /etc/named.conf ( v8) • zone transfer ( named vs named-xfer ) • no more fork for each AFXR jobs • ( for v 8.1.X and later ) • BIND 4.9.7/8.1.2與先前版本的重大差異 • 新的功能 • negative caching • bind_notify, IPv6 support, RFC 1535 compliant, ...
2.1.3 從何處取得BIND 原始程式? • BIND home at the ISC • http://www.isc.org/bind.html • ftp://ftp.isc.org/isc/bind/* • NCTUCCCA & mirror sites • ftp://NCTUCCCA.edu.tw/packages/networking/bind/*
2.2 BIND V8.x/4.9.x 程式的安裝 • BIND 4.9.x compiling & installation • $bind-src/README, OPTIONS • $bind-src/conf/options.h • check and/or update /etc/named.boot • BIND 8.x compiling & instatllation • $bind-src/INSTALL, README • $bind-src/port/README • check and/or update /etc/named.conf • DNS syslogging • /etc/syslog.conf • /var/adm/messages
3. DNS 設定範例與說明 • BIND server options • /etc/named.boot 設定範例 • /etc/named.conf (V8.x) • 自動轉換程式 named-bootconf.pl • zone data files 設定範例 • /etc/resolv.conf ( resolver) 設定範例 • 參見 http://dnsrd.nctu.edu.tw 上的範例
3.1 DNS Server Options • primary/master vs. secondary/slave • caching only server • forwarders ( slave server) • recursive vs. non-recursive
3.1.2 DNS server list of “NCTU.edu.tw “ • master/slave server 的差別 ? 如何分工 ? • 目前 domain zone “NCTU.edu.tw” 登記有 4 個 DNS servers (*) • ns.nctu.edu.tw / 140.113.250.135 (primary/master) • ns1.nctu.edu.tw / 140.113.1.1 (secondary/slave) • ns2.nctu.edu.tw / 140.113.6.2 (secondary/slave) • ns3.nctu.edu.tw /163.28.64.246 (臨時增加) • master/slave servers 最好分佈在不同的 sub-nets
DNS Server options 3.2 DNS Server Options -- /etc/named.boot (v4.x) ; type domain source file or host ;------------------------------------------------------------------------------------- directory /var/named ; cache . named.root ; primary localhost Localhost primary 0.0.127.IN-ADDR.ARPA Rev-127.0 ; [ 省略 ] primary NCTU.edu.tw Zone.NCTU secondaryADM.nctu.edu.tw 140.113.2.1 Zone.ADM primary CC.nctu.edu.tw Zone.CC ; [ 省略 ] . . . primary 113.140.IN-ADDR.ARPA R-140.113 primary 1.113.140.in-addr.arpa. R-140.113.1 secondary 2.113.140.in-addr.arpa. 140.113.2.1 R-140.126.2
DNS Server Options ( 續)-- /etc/named.conf (新版; v8.x) options { check-names master fail; check-names slave fail; // default warn directory "/var/named"; fake-iquery yes; // default warn forwarders { 163.28.1.103; 139.175.55.244; }; }; zone "." { type hint; file "named.root"; }; // cache root.cache zone "localhost" { type master; file "Localhost” }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "Rev-127.0"}; zone "HC.edu.tw" { type slave; file "sec/zone-HC.edu.tw"; masters {140.113.250.135; }; }; zone "237.126.140.IN-ADDR.ARPA" { type slave; file "sec/R-140.126.237"; masters {140.113.250.135;}; };
3.2.1 Caching Only Server -- /etc/named.boot DNS Server options directory /var/named ; cache . named.root ; ; BIND 4.9.x & later check-names primary fail ; default fail check-names secondary fail ; default warn ;check-names response fail ; default ignore ; [ 省略 ] primary localhost Localhost primary 0.0.127.IN-ADDR.ARPA Rev-127.0 primary 0.IN-ADDR.ARPA Rev-0 primary 255.IN-ADDR.ARPA Rev-255 ; [ 省略] optionsfake-iquery ;
3.2.2 DNS Server Options (2) - /etc/named.boot directory /var/named ; cache . named.root ; [ 省略]] ; 設定 DNS forwarders, 以轉送 DNS query ( 末端網路節點適用 ) ;--------------------------------------------------------------------------------- forwarders 140.113.1.1 163.28.1.2 ; ; options forward-only xfernets 140.113.0.0 140.126.237.12&255.255.255.255 ; bogusns203.74.66.1
3.2.3 DNS Server Options (3) - /etc/named.boot directory /var/named ; cache . named.root ; . .[ 省略 ] optionsfake-iquery ; options non-recursion ; options forwarder-only ; options query-log
3.3 Domain Zone files 設定 • Basic DNS Resource Record Types • SOA, NS, A, PTR, CNAME, MX • TXT, WKS, HINFO • RP, AFSDB, AAAA ( IPv6) , LOC, SRV, ...
3.3.1 Special Symbols on DNS database • Special Symbols for defining the DNS database • “@”, current origin • “*,” wildcard ( only for some of the types ) • “ . ” , root domain & domain separator • “ ; ” , for comment lines • “( )”, grouping data which crossing a line --> only work for SOA RR (now) • “\X”, --> escape character ; “\@” • “\DDD”, octal number ; -> “\345”
3.3.2 SOA ( Start Of Authority ) RR • ;; for forward/reverse Domain Zones. • ;;----------------------------------------------------------------------------------- • @ IN SOAns.NCTU.edu.tw. hostmaster.nctu.edu.tw. ( • 1997090200 ; Serial number • 86400 ; Refresh - 1 days • 1800 ; Retry • 1728000 ; Expire - 20 days • 259200 ) ; Minimum TTL - 3 days • ;;------------------------------------------------------------------------------------ • IN NS NCTU.edu.tw. • IN NS ns.NCTU.edu.tw. ; primary / master • IN NS ns2.nctu.edu.tw. • ; • localhosts. IN A127.0.0.1 ; forward case • ;; 1 IN PTR localhost. ; reverse case
3.3.3 Domain Zone delegation (授權) --NS (Name Server) RR ; forward domain zones (正解) ;------------------------------------------------------------------ ; 上下兩層 “NCTU.edu.tw” & “CSIE.NCTU.edu.tw” 的設定檔, ; 都應該有對應的Name Server 記錄項目 ( NS RR ) ;----------------------------------------------------------------- $ORIGIN CSIE.NCTU.edu.tw. @ IN NS csie.nctu.edu.tw. ; FQDN IN NS operator IN NSccsun7 ; hostname ;; Glued Records csie.nctu.edu.tw. IN A 140.113.17.171 IN A 140.113.209.171 operator IN A 140.113.209.1 ccsun7 IN A 140.113.17.6
NS RR (2) -- reverse domain (反解) ;上下兩層 “113.140.in-addr.arpa.” & “23.113.140.in-addr.arpa” 的 ; 設定檔, 都應該有對應的Name Server 記錄項目 ( NS RR ) ; domain zone “23.113.140.in-addr.arpa” [ A] $ORIGIN 113.140.in-addr.arpa. 23 IN NS cisserv.CIS..nctu.edu.tw. IN NS cissol1.CIS.nctu.edu.tw . ; No Gluded Records ; domain zone “23.113.140.in-addr.arpa” [ B] $ORIGIN 23.113.140.in-addr.arpa. @ IN NS cisserv.cis.nctu.edu.tw. IN NS cissol1.cis.nctu.edu.tw.
NS RR (3) - 錯誤示範 * RFC 1034,1035,1912 ; case 1 -> 任意指定 2nd NS RR ( 常犯錯誤) ;-------------------------------------------------------- $Origin NCTU.edu.tw. err1 IN NSns-OK.NCTU.edu.tw. IN NSNo-named-Host.NCTU.edu.tw. ; Lame IN NSmoevax.edu.tw. ; 誤設 ; case 2 -> NS 指到一個 alias ( CNAME ), intermittent error ;----------------------------------------------------- $Origin 200.113.140.in-addr.arpa. err2 IN NSalias-ns.NCTU.edu.tw.; 間些性 error IN NS ns-OK.NCTU.edu.tw.
NS RR (4) -- 錯誤示範 * RFC 1034,1035,1912 ; case 3 -> NS 指到一個 IP address ;------------------------------------------- $Origin NCTU.edu.tw. err3 IN NS 140.113.1.1 ; 應為 fqdn/hostname ; case 4 -> NS 指到一個不存在的機器 ; $Origin200.113.140.in-addr.arpa. err4 IN NS Non-existent.NCTU.edu.tw. IN NS ns-OK.nctu.edu.tw.
NS RR (5) --> Lame Servers * RFC 1034,1035,1912 ; case 5 -> 上一層有額外指定 2nd NS RR ( 常犯錯誤) ; 但對應的 entry, 卻不在下一層中. ;------------------------------------------------------------------ $Origin NCTU.edu.tw. err5 IN NSns-OK.NCTU.edu.tw. IN NSNo-Good-ns.NCTU.edu.tw. ; 上一個 NS entry ,下一層domain 中, 未定義 ; $Origin err5.NCTU.edu.tw. @ IN NS ns-OK.nctu.edu.tw. IN NS ns2-OK.nctu.edu.tw. ; It’s Ok ! 雖然, 上一層沒有對應的 NS RR ; 用途, inside firewall, ...
3.3.4 A (Address) RR ; 一個 IP addr. , 但同時有多個 FQDN $Origin NCTU.edu.tw. @ IN A 140.113.1.1 ; nctu.edu.tw. ns1 IN A140.113.1.1 ; ns1.nctu.edu.tw. ; www IN A 140.113.250.5 ; ; 一個 FQDN, 但有好幾個對應的 IP addr. $OriginCSIE.nctu.edu.tw. @ IN A140.113.17.171 ; multi-homed IN A140.113.209.171
A RR -- 錯誤示範 (1) ; zone file “NCTU.edu.tw” ;---------------------------------- $Origin NCTU.edu.tw. ( 往下授權 ) ; CIS IN NS CisServ.CIS.nctu.edu.tw. IN NS CisSol1.CIS.nctu.edu.tw. CisServ.CIS IN A 140.113.23.1 ; glued record CisSol1.CIS IN A 140.113.23.101 ; err-A.CIS IN A 140.113.23.254; 無效的設定 ; zone file “CIS.nctu.edu.tw” $Origin CIS.nctu.edu.tw. CIS-gw IN A 140.113.23.254 ; OK
A RR -- 錯誤示範 (2) $Origin NCTU.edu.tw. @ IN NS nctu.edu.tw; IN A140.113.1.1 ; OK ; IN NS ns2.nctu.edu.tw. IN A 140.113.6.2 ; invalid ; 這行有 語意問題, nctu.edu.tw -> 140.113.6.2 ; It might induce some mail routing problem(s). IN NS ns.NCTU.edu.tw. ns IN A 140.113.250.135
3.3.5 PTR (Pointer) RR ; zone file “113.140.in-addr.arpa” $Origin 113.140.in-addr.arpa. 1 IN NS ns.nctu.edu.tw. IN NS ns2.nctu.edu.tw. .[ 省略] ; 140.113.254.9 9.254IN PTR CSIE-gw.nctu.edu.tw. ;-------------> 上下兩 file 分開<----------------------- ; zone file “1.113.140.in-addr.arpa” $Origin 1.113.140.in-addr.arpa. @ IN NS ns.nctu.edu.tw. IN NS ns2.nctu.edu.tw. .[省略] 1 IN PTR NCTU.edu.tw. 110 IN PTRmoesun.NCTU.edu.tw.
3.3.6 MX ( Mail eXchange) RR ;;------------------------------------------------------------------ ;; for both normal mail exchange & mail relay ;; --> DNS & Sendmail ;;----------------------------------------------------------------- $ORIGIN CC.NCTU.edu.tw. ; mail exchange @ IN MX 0CC.nctu.edu.tw. ; FQDN IN MX0ccserv6 ; hostname ; mail relay IN MX20 mx.NCTU.edu.tw. ; mx wildcarding; must be used very carefully * IN MX 0 cc.nctu.edu.tw. ; Dis-couraged
MX RR (2) ; Zone file for domain <NCTU.edu.tw > $Origin NCTU.edu.tw. news IN MX 0news.cc.nctu.edu.tw. ; FQDN . . . ; news IN A ??? ; No such records ;; < another zone data file > $Origin cc.NCTU.edu.tw. @ IN MX 0 CC.nctu.edu.tw. . . . cc.nctu.edu.tw. IN A 140.113.6.2
3.3.7 CNAME (Canonical NAME) RR ; zone file 1 $Origin NCTU.edu.tw. ; netnews IN CNAMEnews2.nctu.edu.tw. ; fqdn ; zone file 2 $Origin EDU.tw. ftp IN CNAME nctuccca ; hostname ; ; zone file 3 $Origin TWNIC.net. archie IN CNAMEnctuccca.edu.tw
CNAME RR-- 常見錯誤實例 (1) $Origin NCTU.edu.tw. ; case 1 -> cname looping cname-chain IN CNAMEcname-chain.nctu.edu.tw. ; case 2 -> ns-cname chaining ( 不能用 alias ) err-ns IN CNAMEns-OK.NCTU.edu.tw. ; FQDN err6 IN NSerr-ns.NCTU.edu.tw. ; alias
CNAME RR-- 常見錯誤實例 (2) $Origin NCTU.edu.tw. ; case 3 -> mx-cname chaining連鎖 (不能用 alias ) err-mail IN CNAMEmx-host.nctu.edu.tw. err-mx-zone IN MX 10 err-mail.NCTU.edu.tw. ; case 4 -> cname-cname chaining ( 不宜; 雖然現在可以用) alias1 IN CNAME host1.NCTU.edu.tw. ; FQDN alias2 IN CNAMEalias1.NCTU.edu.tw. ; alias