Presentation is loading. Please wait.

Presentation is loading. Please wait.

台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw DNS建置與維護 台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw 2018/9/20.

Similar presentations


Presentation on theme: "台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw DNS建置與維護 台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw 2018/9/20."— Presentation transcript:

1 台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw
DNS建置與維護 台灣大學計資中心 邵喻美 2018/9/20

2 Outline DNS概念 BIND介紹 實例解說

3 Part I DNS 概念

4 DNS概念 DNS簡介 DNS運作原理 DNS建置與規劃

5 Domian Name Service IP位址 vs. 主機名稱 應用程式與底層網路間的middleware 最基本的網路應用程式
user-friendly vs. router-friendly

6 DNS簡介 DNS的前身—hosts.txt—not scalable Hierarchical vs. Flat name space

7

8 DNS架構 大型分散式資料庫 主從式架構 結構類似於Unix檔案系統 複製與快取 名稱伺服器(domain name server)
解析程式(resolver) 結構類似於Unix檔案系統 Inverted tree

9

10

11 DNS運作原理 Domain Name Space Domain Name The inverted tree
Internet Domain Name Space – gTLD (generic Top-Level Domain) Domain Name The path of an inverted tree : from leaf to root Fully Qualified Domain Name (FQDN)

12 com 商業組織,如IBM(ibm.com) edu 教育組織,如柏克萊大學(berkeley.edu) gov 政府單位,如NASA(nasa.gov)及國家科學基金會(nsf.gov) mil 軍事單位,如美國陸軍(army.mil)及海軍(navy.mil) net 網路組織,如NSFNET(nsf.net) org 非營利性組織,如美國國家公園(nationalpark.org) int 國際性組織,如NATO(nato.int)

13 coop 企業或公司( biz 商業用途(已於6/21/2001正式啟用, aero 航空運輸業(已於3/18/2002開始服務, museum 博物館( 所有使用者(已於6/21/2001正式啟用, pro 專門職業( name 供個人名稱之用,如筆名( Info

14 Domain A subtree in domain name space 包含所有領域名稱屬於該領域的主機 一個領域名稱可屬於多個領域

15

16 授權(Delegate) Zone 將domain劃分為sub-domain並將管理權責交給其他組織
Name server管理domain name space中某部分的完整資訊 以授權劃分範圍

17

18

19

20 名稱伺服器的種類 Primary server Secondary server Caching-only server
從檔案讀取zone data Authoritative for zones in charge Secondary server 從另一個負責該zone的name server取得zone data Caching-only server lookuping up data and caching them Not authoritative for any domains (except in-addr.arpa) zone transfer

21 Name Resolution Name server除了回答負責區域內的資料外,也可在整個domain name space中找尋其他區域的資料 Recursive resolution Server必須提供查詢結果 Iterative resolution Server只提供已知的最佳答案

22

23

24 Reverse Query Mapping addresses to names
Domain name space以domain name為index in-addr.arpa domain : 以address為node label

25

26 Caching機制 在name resolution過程中得知的zone authorization資訊會被cache下來
Negative caching Zone data的TTL

27 DNS建置與規劃 軟體架設平台 硬體配置 記憶體 網路卡 配合網路架構架設DNS 多台DNS供backup

28 Part II BIND介紹

29 BIND介紹 ISC BIND (Berkeley Internet Name Domain) BIND安裝 BIND設定
DNS Resource Records

30 BIND安裝 下載BIND 安裝BIND 從http://www.isc.org/products/BIND/下載
ISC Bind最新版是9.2.1(released on May 1, 2002),但BIND 8仍被廣泛使用(最新版是8.3.2, released on June 19, 2002) 支援中文的dns : 安裝BIND 解壓縮 zcat bind-src.tar.gz | tar xf – Compile : ./configure make 啟動 /usr/sbin/named(通常設定檔預設位置是/etc/named.conf) 啟動時指定設定檔位置 /usr/sbin/named –c /somewhereelse/named.conf

31 BIND設定 設定檔 named.conf 定義負責區域(zone)及運作設定 設定行及註解 access control list
categorized logging Options can applied to zones selectively 設定行及註解 設定行以分號結束 註解以#或//為行首

32 設定行選項 acl logging options zone 定義一個IP位址表列,用於存取控制及其他用途
指定name server將記錄何種資訊,以及儲存於何處 options 控制全面性的server設定選項,並設定其他控制行的預設值 zone 定義zone data

33 # A simple BIND 8 configuration
logging { channel SEC_log { file “/var/log/dns-security.log” versions 3 size 10m; severity info; }; category security { SEC_log; }; category lame-servers { null; }; acl NTU-Campus { localhost; /16; } options { directory "/var/named"; allow-query { NTU-Campus; }; allow-recursion { NTU-Campus; }; // for BIND 9 allow-transfer { none; };

34 zone "ntu.edu.tw" in { type master; file "master/dns.ntu"; allow-query { any; }; allow-transfer { …; }; // 可能是其他secondary name server }; zone "cc.ntu.edu.tw” in { type slave; file "slave/dns.ntu.cc"; masters { ; }; zone "." in { type hint; file "named.cache"; zone " in-addr.arpa" in { file "master/ ";

35 DNS Resource Records SOA records Start Of Authority
DNS資料檔中的第一筆資料,也是唯一一筆SOA record Example: ntu.edu.tw. IN SOA dns1.ntu.edu.tw. root.ccms.ntu.edu.tw. ( ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day * 時間若無指定單位則以秒計,亦可指定M(分), H(時), D(日), W(週)等單位

36 NS records Name Server 設定zone的name server Example:
ntu.edu.tw. IN NS dns1.ntu.edu.tw. ntu.edu.tw IN NS dns2.ntu.edu.tw.

37 A records CNAME records Address Alias
host1.ntu.edu.tw. IN A host2.ntu.edu.tw. IN A host2.ntu.edu.tw. IN A host5.ntu.edu.tw. IN CNAME host1.ntu.edu.tw.

38 PTR records Address-to-name mapping 每個address只能指向一個正式名稱
in-addr.arpa IN PTR host1.ntu.edu.tw. in-addr.arpa IN PTR host2.ntu.edu.tw.

39 MX Records 用來控制email傳遞順序 MX record中包含domain name和priority
Priority 較低者優先,若多筆MX records的priority相同,則隨機選擇 Example: example.com. IN MX 10 mail.example.com. IN MX 10 mail2.example.com. IN MX 20 mail.backup.org. mail.example.com. IN A mail2.example.com. IN A

40 Loopback address 代表loopback network的反解檔案
Loopback network is , loopback host is in-addr.arpa. IN SOA dns.ntu.edu.tw. root.ccms.ntu.edu.tw. ( ; serial 86400; refresh 3600; retry 870000; expire ) ; minimum in-addr.arpa. IN NS dns.ntu.edu.tw. in-addr.arpa. IN PTR localhost.

41 Root Cache Data The name server of root domain
IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET A NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET A NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET A NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET A NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET A NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET A NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET A NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET A NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET A NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET A NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET A NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET A NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET A

42 Maintaining BIND Reload name server Updating db files
kill –HUP <named-pid> Updating db files Increase SOA serial numbers Starting over with a new serial number synchronizing the serial number at zero clean up zone data on slave server, then restart Keeping root cache data current Check root cache file every month or two . ns > db.cache

43 BIND logging channel categories 指定loggin資料存放處:syslog, file, or stderr
message severity:critical, error, warning, notice, info, debug [level], dynamic categories 指定將log何種資料 每個category的資料可被送往一或多個channel

44 logging { channel my_syslog { syslog daemon; severity info; }; channel my_file { file “log.msgs”; severity dynamic; category default { null; }; category statistics { my_syslog; my_file; }; category queries { my_file; };

45 容易發生的錯誤 忘記增加serial number Update name server後忘記reload
Slave server無法載入zone data 資料庫檔案中加入名稱,但忘記加上PTR record 設定檔或DNS資料庫檔案文法錯誤

46 DNS資料庫檔案中,名稱最後忘記加上句點
忘了放上cache data 網路連接中斷 遺漏子領域授權 錯誤的子領域授權

47 BIND進階設定 利用address match list和ACL控制存取權限 Zone Change Notify
acl “NTU-Campus” { { /16; }; }; Zone Change Notify notify no also-notify DNS dynamic update allow-update

48 維護name server的安全性 更新BIND 版本並隨時修補漏洞 利用Access Control List設定存取權限 限制查詢
allow-query 避免未經授權的zone transfer allow-transfer 設定提供服務的程度 recursion yes/no allow-recursion -> available on bind 9 拒絕提供服務 blackhole

49 acl bogusnets { /8; /8; /24; }; acl out-nets { /16; Options { …. allow-query { our-nets; }; allow-transfer { none; }; allow-recursion { our-nets; }; blackhole { bogusnets; }; ….. Zone “ntu.edu.tw” { type master; file “ntu.db”; allow-query { any; }; allow-transfer { ; };

50 Troubleshooting name server
從log file找線索 例如:/var/adm/messages 利用nslookup或dig query-type domain.name A nslookup – iterative or non-iterative 查詢不同的資料型態 set q=xxx (xxx=A, PTR, NS) 透過其他name server 查詢 Server <name server> Zone transfer ls <domain> 檢視查詢和回應的封包 set debug

51 taurus% dig @dns.ntu.edu.tw A www.ntu.edu.tw
;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46127 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ; IN A ;; ANSWER SECTION: IN CNAME w3.cc.ntu.edu.tw. w3.cc.ntu.edu.tw IN A ;; AUTHORITY SECTION: cc.ntu.edu.tw IN NS dns.ntu.edu.tw. cc.ntu.edu.tw IN NS ntu3.ntu.edu.tw. ;; ADDITIONAL SECTION: dns.ntu.edu.tw IN A ntu3.ntu.edu.tw IN A ;; Query time: 29 msec ;; SERVER: #53(dns.ntu.edu.tw) ;; WHEN: Mon Jul 1 21:51: ;; MSG SIZE rcvd: 137

52 Part III 實例講解

53 Example I Caching-only nameserver
only authoritative for in-addr.arpa domain Provides query answers for restricted domains

54 // 在acl中設定允許查詢的subnets
acl “campusnets” { /24; /24; } options { directory “/etc/namedb”; // working directory pid-file “named.pid”; // put pid-file in working directory allow-query { “campusnets”; }; }; // root server hints zone “.” { type hint ; file  ”root.hint” ; // Provides a reverse mapping for the loopback address zone “ in-addr.arpa” { type master; file “localhost.rev”; notify no;

55 Example II Authoritative-only nameserver
Authoritative for “ntu.edu.tw” and “eng.ntu.edu.tw” domain Master server for ntu.edu.tw domain Slave server for eng.ntu.edu.tw

56 Options { Directory “/etc/namedb”; Pid-file “named.pid”; Allow-query { any; }; Recursion no; }; zone “.” { // Root server hints type hint ; file “root.hint”; zone “ in-addr.arpa” { // Provide a reverse mapping for the loopback address type master; file “localhost.rev”; notify no; zone “ntu.edu.tw” { // We are the master server for ntu.edu.tw domain type master ; file “ntu.edu.tw.db”; allow-transfer { // IP addresses of slave servers allowed to transfer ntu.edu.tw ; ; zone “eng.example.com” {  // We are a slave server for eng.ntu.edu.tw domain type slave ; file “eng.ntu.edu.tw.bk”; masters { ; }; // IP address of eng.ntu.edu.tw master server

57 Example III Class C以下DNS反解委任之劃分 一般DNS反解委任以一段class C為劃分範圍
適用於多單位共用一段class C IP,且各單位希望自行管理DNS

58 // in named.conf on dns.ntu.edu.tw
zone “ in-addr.arpa" { type master; file "dns.rev.172"; allow-update { none; }; allow-query { any; }; allow-transfer { none; }; }; // in named.conf on ntuns.ntu.edu.tw Zone “ in-addr.arpa” { file “dns.rev.44”;

59 $ORIGIN IN-ADDR.ARPA. @ IN SOA dns.ntu.edu.tw root.dns.ntu.edu.tw. ( H 30M 1W 1D ) IN NS dns.ntu.edu.tw. IN PTR server-sw.cc.ntu.edu.tw. IN PTR router cc.ntu.edu.tw. in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN CNAME in-addr.arpa. ……. in-addr.arpa. IN CNAME in-addr.arpa in-addr.arpa. IN CNAME in-addr.arpa in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN NS ms3.cpatch.org. in-addr.arpa. IN NS ns1.cpatch.org. in-addr.arpa. IN NS router.cpatch.org.

60 // in dns.rev.44 $ORIGIN in-addr.arpa. @ IN SOA ntuns.ntu.edu.tw. root.ntuns.ntu.edu.tw. ( ) IN NS ntuns.ntu.edu.tw. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. …… IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. ….. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. IN CNAME in-addr.arpa. in-addr.arpa. IN NS w5.me.ntu.edu.tw. in-addr.arpa. IN NS main.phys.ntu.edu.tw.

61 $ORIGIN in-addr.arpa. @ IN SOA w5.me.ntu.edu.tw. chiao.w3.me.ntu.edu.tw. ( ) IN PTR Eileem.me.ntu.edu.tw. IN PTR JJLee-4.me.ntu.edu.tw. IN PTR JJLee-5.me.ntu.edu.tw. IN PTR TA5.me.ntu.edu.tw. IN PTR TA3.me.ntu.edu.tw. IN PTR r2.me.ntu.edu.tw. IN PTR r6.me.ntu.edu.tw. IN PTR TA4.me.ntu.edu.tw. IN PTR MAC.me.ntu.edu.tw. IN PTR r4.me.ntu.edu.tw. IN PTR TA1.me.ntu.edu.tw. IN PTR TA2.me.ntu.edu.tw. IN PTR Tin.me.ntu.edu.tw. IN PTR r9.me.ntu.edu.tw.

62 ntuns% nslookup Default Server: dns.ntu.edu.tw Address: > set type=ns > in-addr.arpa Server: dns.ntu.edu.tw Non-authoritative answer: in-addr.arpa nameserver = ntuns.ntu.edu.tw Authoritative answers can be found from: ntuns.ntu.edu.tw internet address = > in-addr.arpa. in-addr.arpa nameserver = w5.me.ntu.edu.tw w5.me.ntu.edu.tw internet address =

63 > set type=ptr > Server: ntu3.ntu.edu.tw Address: Non-authoritative answer: in-addr.arpa canonical name = in-addr.arpa in-addr.arpa name = JJLee-4.me.ntu.edu.tw in-addr.arpa nameserver = w5.me.ntu.edu.tw w5.me.ntu.edu.tw internet address =

64 [root@aquarius]2:46pm</var/named>nslookup
Default Server: localhost Address: > set type=ptr > Server: localhost Non-authoritative answer: in-addr.arpa canonical name = in-addr.arpa in-addr.arpa name = input.cpatch.org Authoritative answers can be found from: in-addr.arpa nameserver = ms3.cpatch.org in-addr.arpa nameserver = ns1.cpatch.org in-addr.arpa nameserver = router.cpatch.org ms3.cpatch.org internet address = ns1.cpatch.org internet address =

65 運作原理 當查詢 ( in-addr.arpa)時,會發現 in-addr.arpa其實是 in-addr.arpa的CNAME 從父系DNS中的設定得知, in-addr.arpa的NS為ms3.cpatch.org,便會到ms3.cpatch.org查詢,並得知該IP的hostname為input.cpatch.org


Download ppt "台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw DNS建置與維護 台灣大學計資中心 邵喻美 madeline@ccms.ntu.edu.tw 2018/9/20."

Similar presentations


Ads by Google