Domain Name System 蔡 政 道 Ver.1030316
網域名稱是電腦在網路上的身份, 如同 IP 一樣,都具有唯一的特性 網域名稱比 IP 好記 好記的網域名稱成為大家申請的對象 字數少 特殊意義單字 諧音字 隨著 Internet 及 IPv6 的發展,網域名稱的作用將更顯得重要
中文網域名稱 就國人而言中文字較英文字好記 士林高商 => http://www.slhs.tp.edu.tw/ 中文域名 => http://士林高商.tw/
國際域名(IDN)標準 中文字應透過某種編碼方式轉換成英文字,並與舊有的 DNS 系統相容 DNS 設定及伺服器設定應都根據這個編碼定義 目前國際上認可的編碼為 AMC-ACE-Z,稱為 puny code (RFC 3492) 例: http://xn--fiq43lrrlz83a.tw/ 台網中心.tw http://xn--czrr8f77qt33c.tw/ 士林高商.tw http://xn--pssu7c921afvu.tw/ 清華大學.tw
域名之分類 分類: 在區分不同的屬性 目前 tw 之第二層域名 ICANN於2011/6通過開放TLD申請 Top Level Domain (TLD) 頂級域名 gTLDs: com/net/org/gov/edu/… 共13類 ccTLDs: tw/cn/jp/us 共 243 個 Second Level Domain (第二層域名) com.tw/org.tw/ 等 目前 tw 之第二層域名 com.tw/net.tw/org.tw/edu.tw/gov.tw/mil.tw idv.tw/game.tw/club.tw/ebiz.tw ICANN於2011/6通過開放TLD申請 102年底,台北市已申請到.taipei
使用網域名稱讓系統更具移值性,當 IP 變動,只需更改 DNS 設定即可,程式 網頁等不需更改 為 Internet 服務最基礎的一環 提供機器名稱與 IP 位址雙向對映的機制 WWW www.tp.edu.tw <-> 163.21.249.220 網域名稱比 IP 容易記, 且具代表意義 使用網域名稱讓系統更具移值性,當 IP 變動,只需更改 DNS 設定即可,程式 網頁等不需更改 隨著 IPv6 (16 bytes) 的推展,更需要使用網域名稱
DNS 運作模式 名稱查詢之服務 分散式 穩定 樹狀結構 效率 自己的資料由自己維護,而其他人的資料則分散在全球 全球最大的分散式資料庫系統 以樹狀結構的方式找到目的位址(每個結點需要授權) http://www.root-servers.org/ 目前 Root Server 分布情形 穩定 負載平衡:可由 Master 主機自由的複製到 Slave 主機 備援:一個網域名稱可有多台主機共同服務(輸流查詢) 樹狀結構 經由全球唯一的 Root Server 達到正確搜尋的目的 Root Server 共十三部,每一部可能都有許多 Mirror (如 f.root-servers.net 有二三十部) 效率 使用 UDP 封包 查詢速度基本上都在 100 msec 內 經由 Cache 來加快 DNS 的查詢
每一個Domain可再分割成數個SubDomain 每一個SubDomain可由不同的單位維護其資料 . edu gov mil ntnu
DNS 樹狀結構 Root tw cn com net biz arpa … com net gov … in-addr ip6 e164 IPv6 反解 twnic 211 IPv4 反解 72 www whois cdns Zone1 210 211 : 為網域名稱或機器名稱 host1 host1 : 為上一層與下一層的委任關係 註 : DNS 的搜尋由上往下
Fully Qualified Domain Name (FQDN) WWW.TP.EDU.TW. 每一個名稱間以 . 隔開 一個名稱對應到多個 IP 稱為 Round Robin 一個名稱對應到不同的服務如 MX 每個 FQDN 如同 IP 一般皆具有唯一性 其限制 最多 127 層 每個分支最長63 字元 (a-z, 0-9, -) 總長 255 字元 注意結尾的點
DNS要求相鄰的node(sibling node)(相同parent node)其label必須不同- 確保每一node在tree中之domain name唯一
一個Domain的Domain Name就是這個Domain最高節點(node)的Domain Name A subtree of domain name space 一個Domain的Domain Name就是這個Domain最高節點(node)的Domain Name 同一個Domain中的host在邏輯上彼此相關,可以是地域上,或組織上…相關;但與其IP Address,在何Network…無關
Tree中的節點(interior node)可代表一host, 亦可指出此Domain的資訊 Leaves of the tree 之Domain Name代表一個host,並指出此host的Address, Mail Routing等資訊 Tree中的節點(interior node)可代表一host, 亦可指出此Domain的資訊 hp.com代表HP公司的Domain Name, 且是網路上一台host
小範圍 大範圍 www.slhs.tp.edu.tw. 大範圍 小範圍 203.72.185.3
Domain & Zone A zone and a domain may share the same domain name but contain different nodes. 一個授權自行管理的domain會有一個name server, 其所負責的區域稱做zone, 但其範圍不含其授權管理的subdomain Zone is bounded by delegation, it never includes delegated data.
tw tp domain edu edu zone mil gov tp tp zone fg proxy slhs fg zone slhs zone www mail ftp edu domain
Query Type - recursive The name server repeats the same basic process until it receives an answer. Querier Request Answer Name Server 反覆Query其它Name Server
只須回答the best answer it already known 告訴querier可再查詢的name server Query Type - iterative 只須回答the best answer it already known 告訴querier可再查詢的name server 對name server的負擔較輕
運作原理 當被詢問到有關本域名之內的主機名稱的時候,DNS伺服器會直接做出回答(此一答案稱為權威回答(Authoritative Answer),此一主機稱為權威主機) 如果所查詢的主機名稱屬於其它域名的話,會檢查快取(Cache),看看有沒有相關資料 如果沒有發現,則會轉向root伺服器查詢,然後root伺服器會將該域名之授權(authoritative)伺服器(可能會超過一台)的地址告知
運作原理 本地伺服器然後會向其中的一台伺服器查詢,並將這些伺服器名單存到記憶體中,以備將來之需(省卻再向root查詢的步驟) 遠方伺服器回應查詢 將查詢結果回應給客戶,並同時將結果儲存一個備份在自己的快取記憶裡面 如果Cache資料的時間尚未過期之前再接到相同的查詢,則以存放於快取記憶裡面的資料來做回應
. Query: www.slhs.tp.edu.tw tw Name Server edu gov tp ntnu resolver root name server tw. name server tw Name Server edu.tw. name server edu gov tp.edu.tw. name server tp ntnu resolver slhs.tp.edu.tw. name server slhs ck
Name server收到一個recursive query,本身沒有答案,則會向“closet known” name server詢問 是否知道負責www.tp.edu.tw的Name Server 收到www.tp.edu.tw 不知道 是否知道負責tp.edu.tw的Name Server 不知道 是否知道負責edu.tw的Name Server 不知道 是否知道負責tw的Name Server 不知道 從root找
正解/反解之意義與原理 正解 (forward domain): 由機器名稱對應至 IP Forward mapping – Maps all host names to address 反解 (reverse domain): 由 IP 對應至網域名稱 Reverse mapping – Map address back to host names 反解的 DNS Query 遠比正解高出許多,這是一般人常忽略之處 Used in some authorization checks 正反解一致有其必要 國內的系統較不嚴謹,比較不會檢查正反解的一致性,但國外有許多比例都會進行這個部分的確認 由來源 IP 查反解名稱,依結果再查正解,並檢驗其結果 有部分的Mail Server也會使用正反解確認的機制來減少SPAM的問題
正解之原理 正解 tp.edu.tw. tw com edu net arpa · · · · · · edu com org gov
反解之原理 反解 3.185.72.203.in-addr.arpa. arpa com edu net tw · · · · · · ip6 · · · · · · 203 · · · · · · 72 · · · · · · 185 · · · · · · 3 · · · · · ·
DNS 的平台 UNIX Windows 常見為ISC BIND 共約發行四五十個版本 ( 4.X~9.X) 穩定,可靠,最多人使用 可見於 Windows Server 級的版本 簡單設定是其優點 GUI 設定 Bind 可於 Widnows 上運作
Master - Slave – Master & Slave Server The server for a zone reads the data for the zone from files on its host Slave – The server for a zone gets the zone data from another name server that is authoritative for the zone
The name servers not authoritative for any zones. Cache Only The name servers not authoritative for any zones.
Name server needs a configuration file – Zone data files – named.conf Zone data files – Case-insensitive Resource records must start in the first column of a line Order is not a requirement
Windows Server 2008 DNS
dns.slhs.tp.edu.tw. tom@tp.edu.tw.
安全相關設定
DNS Amplification Attack
如何建講一個安全的 DNS Server DNS Server 要更新 兩部以上的 DNS Server 並實體適當分離 http://www.isc.org Windows 平台基本上隨 hotfix 或 Service Pack 而更新 兩部以上的 DNS Server 並實體適當分離 容錯考量 避免線路或實體上造成解析問題 區分可 Recursive 對象 架設兩部以上外的可供內部使用的 resover 主機 或使用 BIND view 的架構,區分內外網查詢處理的差別 內網可 Recursive 查詢,外網則禁止以避免欺騙問題
市網中心DNS架構 dns1 dns2 dns3 Slaves Zone Transfer ns1 Master
dns1 dns2
dns1 dns2 ns1 ns2
DNS DNS www.xxx.tp.edu.tw PC www.xxx.tp.edu.tw 203.72.185.10 192.168.1.10 203.72.185.10 DNS www.xxx.tp.edu.tw 192.168.1.1 PC www.xxx.tp.edu.tw 203.72.185.10 192.168.1.10 192.168.1.10 192.168.1.123
區分內外網可 recursive 對象,善用 bind9 的 view acl “Lan” {192.168/24;127.0.0.1;}; acl “public” { !Lan;}; options { directory “/var/named”; allow-transfer {none;}; }; view “intranet” { match-clients {Lan;}; recursion yes; zone "." { type hint; file "named.root"; }; zone “xxx.tp.edu.tw" { type master; file “xxx-intranet.xxx.tp.edu.tw"; }; }; view “internet” { match-clients {!Lan;}; recursion no; zone “xxx.tp.edu.tw" { type master; file “xxx-internet.xxx.tp.edu.tw"; }; 54
限制服務的對象(Allow Query) BIND9.4後 allow-query預設為localhost及localnets acl "SLHS-Campus" { 203.72.185.0/24; 203.72.186.0/24;203.72.187.0/24; 203.72.188.0/24; } ; options { …………………….. allow-query { SLHS-Campus; }; ………………………. zone "slhs.tp.edu.tw" { type master; file "named.slhs"; allow-query { any; }; BIND9.4後 allow-query預設為localhost及localnets
限制服務的對象(Allow Recursion) acl "SLHS-Campus" { 203.72.185.0/24; 203.72.186.0/24;203.72.187.0/24; 203.72.188.0/24; } ; options { …………………….. allow-recursion { SLHS-Campus; }; allow-query { any; } ; ………………………. zone "slhs.tp.edu.tw" { type master; file "named.slhs"; allow-recursion預設為 any
存取控制- Restricting Unauthorized Zone Transfer 203.72.185/24 ; options { allow-transfer {203.72.185.15;140.122.65.221 } ; directory "/var/named"; allow-query { SLHS-Campus; }; 203.72.185/24 ;
存取控制- Restricting Unauthorized Zone Transfer Zone “slhs.tp.edu.tw” { type slave ; masters {203.72.185.1; } ; file “slhs.zone” ; allow-transfer { none ; } ; } ;
Caching-Only Server name servers not authorirative for any zones. options { directory “/var/named” ; } ; zone “0.0.127.in-addr.arpa” { type master ; file “named.local” ; zone “.” { type hint ; file “named.ca” ; } ;
Dynamic Update zone “slhs.tp.edu.tw" in { type master; file "named.hosts"; allow-update {none; }; };
Dynamic Update zone “slhs.tp.edu.tw" in { type slave; file “slhs.zone"; allow-update { 203.72.185/24 ; }; }; Only updates from IP address that match the address match list will be forwarded.
dig @server: name server domain: 要查詢的domain name dig [@server] domain [query-type] [query-class] [+query-option] [-dig-option] @server: name server domain: 要查詢的domain name query-type: A, MX, NS, SOA... query-class: in, any query-option: [no]debug, [no]recurse, [no]vc... dig-option: -x
Lame Server Lame Server 成因 DNS 並無管理該網域名稱(即非權威主機),卻將 DNS 的 NS 記錄指向了該部 DNS 很多人將NS Record的 DNS 指定,設向了 校外的DNS(dns.hinet.net) 或其他僅提供大眾查詢與解析網域名稱之DNS 主機(Cache Server),但是此類主機並無管理該網域名稱 DNS 管理該網域名稱,但是 NS 記錄列表裏並沒有該 DNS 的名稱或不一致 xxx.tp.edu.tw 在 市網 的 DNS 指定為 dns1 及 dns2 , 但自己的 DNS 卻將 NS設為 ns3/ns4 等,或與上層不一致之主機名稱。 避免 LAME Server 最大的要求即在上層與下層的 DNS 設定完全一致,並且所有的DNS 主機都能正常工作,如此方是一個上下層完整的授權關係
27-Feb-2014 09:01:25. 256 info: lame server resolving 'taiwanledlight 27-Feb-2014 09:01:25.256 info: lame server resolving 'taiwanledlight.com.tw' (in 'taiwanledlight.com.tw'?): 59.120.169.201#53 dig @192.83.166.9 taiwanledlight.com.tw ns +norec ;; AUTHORITY SECTION: taiwanledlight.com.tw. 86400 IN NS ypns1.chyp.com.tw. taiwanledlight.com.tw. 86400 IN NS ypns2.chyp.com.tw. ;; ADDITIONAL SECTION: ypns1.chyp.com.tw. 86400 IN A 59.120.169.201 ypns2.chyp.com.tw. 86400 IN A 59.120.169.200 dig @59.120.169.200 taiwanledlight.com.tw ns +norec ;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 …… ;; ANSWER SECTION: taiwanledlight.com.tw. 3600 IN NS ypns2.chyp.com.tw. ;; ADDITIONAL SECTION: ypns2.chyp.com.tw. 1500 IN A 59.120.169.200
dig @59.120.169.201 taiwanledlight.com.tw ns +norec ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 3 …. ;; AUTHORITY SECTION: . 3600 IN NS g.root-servers.net. . 3600 IN NS h.root-servers.net. . 3600 IN NS i.root-servers.net. . 3600 IN NS j.root-servers.net. . 3600 IN NS k.root-servers.net. . 3600 IN NS l.root-servers.net. . 3600 IN NS m.root-servers.net. . 3600 IN NS a.root-servers.net. . 3600 IN NS b.root-servers.net. . 3600 IN NS c.root-servers.net. . 3600 IN NS d.root-servers.net. . 3600 IN NS e.root-servers.net. . 3600 IN NS f.root-servers.net. ;; ADDITIONAL SECTION: g.root-servers.net. 3600 IN A 192.112.36.4 h.root-servers.net. 3600 IN A 128.63.2.53 i.root-servers.net. 3600 IN A 192.36.148.17
06-Mar-2014 12:55:19.656 info: lame server resolving 'boenilaexl.lllh.tp.edu.tw' (in 'lllh.tp.edu.tw'?): 163.21.249.166#53 dig @163.21.249.166 lssh.tp.edu.tw ns +norec ;; AUTHORITY SECTION: lllh.tp.edu.tw. 259200 IN NS dns.lllh.tp.edu.tw. ;; ADDITIONAL SECTION: dns.lllh.tp.edu.tw. 37178 IN A 163.21.2xx.2 dns.lllh.tp.edu.tw. 21507 IN AAAA 2001:288:12xx::1 dig @163.21.208.2 lllh.tp.edu.tw ns +norec ;; ANSWER SECTION: lllh.tp.edu.tw. 38400 IN NS dns.tp.edu.tw. lllh.tp.edu.tw. 38400 IN NS dns.lllh.tp.edu.tw. ;; ADDITIONAL SECTION: dns.lllh.tp.edu.tw. 38400 IN A 163.21.2xx.2 dns.lllh.tp.edu.tw. 38400 IN AAAA 2001:288:12xx::1
上層授權與下層宣告不一致 dig @163.21.249.166 cccs.tp.edu.tw ns +norec ;; AUTHORITY SECTION: cccs.tp.edu.tw. 259200 IN NS tpws132.cccs.tp.edu.tw. ;; ADDITIONAL SECTION: tpws132.cccs.tp.edu.tw. 259200 IN A 163.21.5x.5 tpws132.cccs.tp.edu.tw. 259200 IN AAAA 2001:288:12xx::1 dig @163.21.5x.5 cccs.tp.edu.tw ns +norec ;; ANSWER SECTION: cccs.tp.edu.tw. 3600 IN NS tpjh2008.cccs.tp.edu.tw. ;; ADDITIONAL SECTION: tpjh2008.cccs.tp.edu.tw. 3600 IN A 192.168.132.1 tpjh2008.cccs.tp.edu.tw. 3600 IN AAAA 2001:288:12xx:1::1 tpjh2008.cccs.tp.edu.tw. 3600 IN AAAA 2001:288:12xx:1:f82a:b58c:a649:afb1
dig @163.21.249.166 dees.tp.edu.tw ns +norec ;; AUTHORITY SECTION: dees.tp.edu.tw. 259200 IN NS deesdns.dees.tp.edu.tw. ;; ADDITIONAL SECTION: deesdns.dees.tp.edu.tw. 259200 IN A 163.21.2xx.6 deesdns.dees.tp.edu.tw. 259200 IN AAAA 2001:288:12xx::1 dig @163.21.201.6 dees.tp.edu.tw ns +norec ;; ANSWER SECTION: dees.tp.edu.tw. 3600 IN NS dns.v6.dees.tp.edu.tw. ;; ADDITIONAL SECTION: dns.v6.dees.tp.edu.tw. 3600 IN AAAA 2001:288:12xx::1
如何確認上層授權與學校宣告是否一致 dig @163.21.249.166 slhs.tp.edu.tw ns +norec ;; AUTHORITY SECTION: slhs.tp.edu.tw. 259200 IN NS netadm.slhs.tp.edu.tw. slhs.tp.edu.tw. 259200 IN NS dns.slhs.tp.edu.tw. ;; ADDITIONAL SECTION: dns.slhs.tp.edu.tw. 57267 IN A 203.72.185.1 dns.slhs.tp.edu.tw. 21211 IN AAAA 2001:288:1201::1 netadm.slhs.tp.edu.tw. 6811 IN A 203.72.185.15 netadm.slhs.tp.edu.tw. 35605 IN AAAA 2001:288:1201::15 dig @203.72.185.1 slhs.tp.edu.tw ns +norec ;; ANSWER SECTION: slhs.tp.edu.tw. 86400 IN NS dns.slhs.tp.edu.tw. slhs.tp.edu.tw. 86400 IN NS netadm.slhs.tp.edu.tw. ;; ADDITIONAL SECTION: dns.slhs.tp.edu.tw. 86400 IN A 203.72.185.1 dns.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::1 netadm.slhs.tp.edu.tw. 86400 IN A 203.72.185.15 netadm.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::15
如何確認市網授權與學校宣告是否一致 dig @163.21.249.166 slhs.tp.edu.tw ns +norec ;; AUTHORITY SECTION: slhs.tp.edu.tw. 259200 IN NS netadm.slhs.tp.edu.tw. slhs.tp.edu.tw. 259200 IN NS dns.slhs.tp.edu.tw. ;; ADDITIONAL SECTION: dns.slhs.tp.edu.tw. 57267 IN A 203.72.185.1 dns.slhs.tp.edu.tw. 21211 IN AAAA 2001:288:1201::1 netadm.slhs.tp.edu.tw. 6811 IN A 203.72.185.15 netadm.slhs.tp.edu.tw. 35605 IN AAAA 2001:288:1201::15 dig @203.72.185.15 slhs.tp.edu.tw ns +norec ;; ANSWER SECTION: slhs.tp.edu.tw. 86400 IN NS netadm.slhs.tp.edu.tw. slhs.tp.edu.tw. 86400 IN NS dns.slhs.tp.edu.tw. ;; ADDITIONAL SECTION: dns.slhs.tp.edu.tw. 86400 IN A 203.72.185.1 dns.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::1 netadm.slhs.tp.edu.tw. 86400 IN A 203.72.185.15 netadm.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::15
IPv4與IPv6都要測 dig @2001:288:1201::1 slhs.tp.edu.tw ns +norec ;; ANSWER SECTION: slhs.tp.edu.tw. 86400 IN NS netadm.slhs.tp.edu.tw. slhs.tp.edu.tw. 86400 IN NS dns.slhs.tp.edu.tw. ;; ADDITIONAL SECTION: dns.slhs.tp.edu.tw. 86400 IN A 203.72.185.1 dns.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::1 netadm.slhs.tp.edu.tw. 86400 IN A 203.72.185.15 netadm.slhs.tp.edu.tw. 86400 IN AAAA 2001:288:1201::15
Client的DNS設哪裡好呢? 設校外的DNS(Hinet, Google) 建議設離Client最近的DNS 學校DNS無法Cache校內常用的Domain (Facebook, Google, Yahoo…) 每一個Query都要透過學校對外線路與設備 吃掉對外頻寬 增加網路設備負擔 建議設離Client最近的DNS 學校 市網(163.21.249.166, 163.21.249.167)
關閉非自己 client 的 recursive 使用 BIND9 會比 BIND8 在查詢上嚴謹 留意 DNS 相關的系統漏洞或問題 避免或少用 168.95.1.1,主要其太多人用常有 timeout 情況發生 開啟 query/secutiry log 記錄查詢及安全方面相關訊息 網路有調整即檢視 acl 是否仍適當 版本隱藏 (options { version “abc”;}; ) 開啟 use-id-pool yes,增加 query id (2bytes) 的隨機性,且記錄 qid 與 IP 間的關係,以避免 spoof (會增加系統資源的使用) 可考慮 chroot 環境,以減少入侵後的風險