DNS 各種問題之探討與觀念介紹

Download Report

Transcript DNS 各種問題之探討與觀念介紹

DNS 簡介
Dennis
2011/7/21
1
Outline
為什麼需要DNS?
 DNS 基礎概念
 什麼是DDNS
 實習

 查詢網域名稱
 架設網域名稱伺服器(DNS
Server)
Master / Slave
 Dynamic

2
為什麼需要DNS?
www.google.com
64.233.183.99
2404:6800:8002::93
www.facebook.com
 69.171.224.12
2620:0:1cfe:face:b00c::3
tw.yahoo.com
 119.160.246.241
在瀏覽器上輸入以上網址就可以到達該網
 如果是換成IPv4大概就記不了多久了
就更難記了
站,這是因為有DNS幫忙轉換
 就算記得可能也不知道是哪個網站的
 如果是IPv6呢?

3
為什麼需要DNS?
由以上的觀察發現
 網域名稱比 IP 好記憶
 而且也比較具有代表性

4
DNS基礎概念
5
DNS 背景介紹
Domain Name System (DNS)
 DNS 的歷史

 IP
Network 的興起,網網互連
 愈來愈多的主機,hosts 檔的出現
主機名稱的衝突
 資訊的一致性
 資料的管理


1984年Paul Mockapetris 建立了第一個
DNS 的規範(RFC1034, RFC1035)
 1985
年隨即出現了第一個網域名稱
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
6
域名與Internet相關服務之關係

名稱解析服務為 Internet 服務最基礎的一環
 TWNIC

名稱解析提供機器名稱與 IP 位址雙向對映的機
制
 WWW
 MAIL


被列為國內20最重要的資安單位
www.hinet.net <-> 168.95.1.82
msa.hinet.net <-> 168.95.4.211
網域名稱比 IP 容易記, 且具代表意義
使用網域名稱讓系統更具移值性,當 IP 變動,
只需更改 DNS 設定即可,程式 網頁等不需更改
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
7
DNS 運作模式


名稱查詢之服務
分散式






自己的資料由自己維護,而其他人的資料則分散在全球
沒有一台電腦會有全部的DNS資料
全球最大的分散式資料庫系統
以樹狀結構的方式找到目的位址(每個結點需要授權)
http://www.root-servers.org/ 目前 Root Server 分布情形
穩定
負載平衡:可由 Master 主機自由的複製到 Slave 主機
 備援:一個網域名稱可有多台主機共同服務(輸流查詢)


樹狀結構
經由全球唯一的 Root Server 達到正確搜尋的目的
 Root Server 共十三部,每一部可能都有許多 Mirror (如 f.rootservers.net 有二三十部)


效率
使用 UDP 封包
 查詢速度基本上都在 100 msec 內
 經由 Cache 來加快 DNS 的查詢

* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
8
DNS 名稱表示法
Fully Qualified Domain Name (FQDN)
注意結尾的點
WWW.EP.NET.
 每一個名稱間以 . 隔開



一個 FQDN 可以對應到不同的位置或服務


一個名稱對應到多個 IP 稱為 Round Robin
一個名稱對應到不同的服務如 MX



最多 127 層
每個分支最長63 字元 (a-z, 0-9, -)
總長 255 字元
每個 FQDN 如同 IP 一般皆具有唯一性
其限制
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
9
域名之分類

分類: 在區分不同的屬性
 Top
Level Domain (TLD) 頂級域名
 gTLDs:
 com/net/org/gov/edu/…
共18類
 ccTLDs:
 tw/cn/jp/us 共 248 個
 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

TWNIC 於2005/11/1 開放泛英(xxx.tw) 申請
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
10
DNS 樹狀結構
Root
tw
cn com net
biz arpa
com net gov …
in-addr ip6 e164
IPv6 反解
211
IPv4 反解
72
twnic
www whois cdns Zone1
host1 host1
…
210
211
為網域名稱或機器名稱
為上一層與下一層的委任關係
註 DNS 的搜尋由上往下
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
11
運作原理 圖示
是否屬於自己的 DN ? 是則回應結果
是否有 Cache 資料 ? 是則回應結果
詢問 .tw在哪 ?
root
皆非則向 root “.” 詢問--->
得到的 DNS 資料及主機資料都會
Cache 以備下一次資料被查詢時使用
回應.tw 位址
詢問 net.tw在哪 ?
.tw
回應 net.tw 位址
Recursive
Non-Recusive
www.twnic.net.tw
回
應
結
果
查
詢
詢問 twnic.net.tw 在哪 ?
net.tw
回應 twnic.net.tw 位址
詢問 www.twnic.net.tw 到底在哪 ?
twnic.net.tw
回應 210.17.9.228
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
12
運作原理(1)

當被詢問到有關本域名之內的主機名稱的時候,
DNS伺服器會直接做出回答(此一答案稱為權威回
答(Authoritative Answer),此一主機稱為權威
主機)

如果所查詢的主機名稱屬於其它域名的話,會檢
查快取(Cache),看看有沒有相關資料

如果沒有發現,則會轉向root伺服器查詢,然後
root伺服器會將該域名之授權(authoritative)
伺服器(可能會超過一台)的地址告知
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
13
運作原理(2)

本地伺服器然後會向其中的一台伺服器查詢,
並將這些伺服器名單存到記憶體中,以備將
來之需(省卻再向root查詢的步驟)

遠方伺服器回應查詢

將查詢結果回應給客戶,並同時將結果儲存
一個備份在自己的快取記憶裡面

如果Cache資料的時間尚未過期之前再接到相
同的查詢,則以存放於快取記憶裡面的資料
來做回應
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
14
DNS 的平台

UNIX






常見為ISC BIND
共約發行四五十個版本 ( 4.X~9.X)
最新版本 4.9.11, 8.4.7, 9.3.2 (2006/06/27)
建議使用 9.2.2 以上版本
穩定,可靠,最多人使用
Windows





可見於 Windows Server 級的版本
簡單設定是其優點
GUI 設定
根據 BIND 4.x 修改而來,並持續更新
Bind 可於 Widnows 上運作
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
15
名稱伺服器類型

權威主機(Authoritative)
可管理或回答其網域名稱之答案
Master 主機指 DNS 所管轄的資料是從檔案 ( Zone
File) 中而來 (twnic.net.tw)
 Slave 主機指 DNS 所管轄的資料是以轄區傳送(Zone
Transfer) 從 Master 而來 (ns.twnic.tw)



Cache-Only 主機 (168.95.1.1)

即沒有管理任何的網域名稱,接受查詢與回應並將其快
取以備使用
轄區傳送
slave
Internet
Zone File
master
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
轄區傳送
slave
16
正解/反解之意義與原理


正解 (forward domain): 由機器名稱對應至 IP
反解 (reverse domain): 由 IP 對應至網域名稱
 反解的
DNS Query 遠比正解高出許多
 向 ISP 提出 IP 建立反解的需求

正反解一致有其必要性
 雖然多數的系統不強求正反解一致性,但少數的公司或學
校對此仍有要求
 由來源 IP 查反解名稱,依結果再查正解,並檢驗其結
果
 有部分的Mail Server也會使用正反解確認的機制來減少
SPAM的問題
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
17
正解:什麼是資源記錄

資源記錄(RR, Resource Record)









名稱(FQDN)
快取時間 ( TTL,Time to Live )
網路類別(class),
資料類型(type)
答案(rdata)
TTL 是此一筆資料被別的 DNS Cache 的時間值
IN 即是 Internet
資料類型分許多種
下列為一筆資源紀錄的內容
www.xxx.com.tw.
FQDN
3600
TTL
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
IN
class
A
10.10.10.2
type
rdata
18
正解:資源記錄範例
xxx.ncnu.info. 38400 IN SOA ns1.xxx.ncnu.info.
abelyang.twnic.net.tw. (
2011072101
; Serial
43200
; Refresh 12 hours
14400
; Retry 4 hours
345600
; Expire 4 days
7200
; Negative cache 2 hours
)
xxx.ncnu.info.
86400
IN
NS
ns1.xxx.ncnu.info.
xxx.ncnu.info.
86400
IN
NS
ns2.xxx.ncnu.info.
ns1.xxxncnu.info.
86400
IN
A
211.72.211.1
ns2.xxx.ncnu.info.
86400
IN
A
211.72.211.2
;以下略
資源記錄的 TYPE 有許多不同類型
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
19
SOA RR
網域名稱,可用 @ 代替
xxx.ncnu.info
(
2011072101
43200
14400
345600
172800
)


SOA 記錄
1D IN SOA
Master 主機名稱
網域管理 Email,原 @ 用 . 代替
ns1.xxx.ncnu.info root.xxx.ncnu.info.
TTL = 一天
;serial
;refresh
;retry
;expire
;negative cache
SOA (Start Of Authority) 記錄用於DNS自身,代表其為
權威主機
SOA 提供此一 Zone 之基本資料及更新時間參數供 Slave
DNS 更新使用
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
20
NS/A/AAAA RR
xxx.ncnu.info.
xxx.ncnu.info.
ns1.xxx.ncnu.info.
ns2.xxx.ncnu.info.









IN
IN
IN
IN
NS
NS
A
AAAA
ns1.xxx.ncnu.info.
ns2.xxx.ncnu.info.
211.72.211.1
2001:e10:6840:409::2
NS (Name Server) 用於 DNS 的搜尋
每個 Zone File 如同 SOA 一般,皆要有 NS RR,且接於 SOA 之後NS 記
錄之 RDATA 若屬同一個zone以內者需接一 A (Address) RR,以標明其
IP Address
您在TWNIC 的指定內容(DNS 模式)需反應在這個 NS 記錄上,意即上下層
的 NS 記錄要一致
NS 記錄說明了那些主機管理此一網域名稱 (權威主機),需與上層 (如
TWNIC) 的指定一致
NS 記錄之 RDATA 需接一 FQDN 記錄,不可用 IP ,也不可接到一 CNAME
記錄 ( RFC 規範)
NS 記錄的取用順序是隨機決定的,而非取用第一筆
A 記錄為指出某一 FQDN 其 IP 為何
NS 記錄對 DNS 解析影響極大,其作用如樹狀結構中之支幹
NS 記錄所指之 IP 不能是 Private/loopbak/multi-cast 等 IP
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
21
CNAME RR
www.xxx.ncnu.info.
ftp.xxx.ncnu.info.
3600
3600
IN A
IN CNAME
211.72.211.80
www.xxx.ncnu.info.

CNAME 用於機器別名,如查詢 FTP ,則會查到 WWW 位址

當有多台機器都是同一個IP時用CNAME可以減少之後更改IP時的力氣

建議使用 A 記錄來替 CNAME,以避免 NS/MX 等出現問題

最好只使用一層 CNAME 就好要不然會有 CNAME Chain 問題,雖沒
有禁止使用,但會導致效率變差甚至錯誤

aaa.xxx.ncnu.info. IN CNAME bbb.xxx.ncnu.info.
bbb.xxx.ncnu.info. IN CNAME ccc.xxx.ncnu.info.
ccc.xxx.ncnu.info. IN A 1.1.1.1


* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
22
MX RR
@
IN MX 10 mail
@
IN MX 20 imap
mail IN A
211.72.211.25
imap IN A
211.72.211.143
; 此時不可用如 mail IN CNAME www 語法




MX (Mail eXchange) 記錄為 SMTP 服務所使用,其中
的 10,20 表示郵件交換時的優先順序(數字小者優先)
亦可使用 A 記錄來代 MX使用 (即 DN=FQDN),但如此
僅能使用一部機器當 Mail Server
@
IN
A
211.72.211.25
有些mail server沒有查到對方的mx紀錄是不會寄信的
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
23
檢測工具: nslookup/host/dig

nslookup
 UNIX
及 Windows 平台皆有
 可使用命令模式與交談模式
 資訊較簡略
host
 dig

 僅有命令模式
 資訊完整
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
24
nslookup相關參數


nslookup [要查詢的網域] [查詢時使用的server]
查詢時使用的 server 是可選的不一定輸入



參數
-q:查詢的類型,預設為 A 記錄


nslookup –q=aaaa www.ncnu.edu.tw
-class:查詢的類別 預設是IN


nslookup ncnu.info //會使用系統預設的去查
nslookup –class=chaos –q=txt version.bind
[nameserver] //查詢bind的版本
在互動模式中可以使用set來設定以上參數
25
dig 相關參數
dig [name] [type(default A)] [class]
 參數

@
[查詢時使用的server]
 +tarce 可以顯示整個DNS的查詢流程
 -x 反解網域
dig @163.22.3.30 ncnu.info AAAA IN
 dig @127.0.0.1 version.bind txt chaos

26
何謂DDNS
DDNS就是Dynamic DNS的縮寫
 目的是讓使用者可以隨時更新DNS Server
上的紀錄
 可以用來解決浮動IP架站或是不能擁有固
定域名的問題
 也可以讓 非DNS Server管理者 管理部份
網域

27
DDNS相關問題


bind 8 後支援動態更新
bind 動態更新可以只認 IP 或是使用 key
認
IP 簡單而實用
 認 key 需使用 tsig
 nsupdate 後會在 directory 產生日誌檔 (.jnl)
 nsupdate 後日誌檔用於 zone transfer,及稽核使用
 nsupdate 會直接對 zone file 進行內容修改,及對巳
載入 run-time 資料一併修改,以維持其一致性
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
28
DDNS相關問題

兩個 DNS Server, 需要同時更新兩部 ?
 只需要
update master 即可
 nsupdate 不需要處理 SOA serial 值 ,系統會自
動加1
 zone transfer


增量區域傳送 (IXFR,incremental zone transfer )的
資料同步全部 DNS (只傳改變的部份)
Bind 8 與 Bind9 間的動態更新支援情形
 8.2.3
前版本只能傳全部(AXFR)
 8.3.0 後版本可支援傳部份(IXFR)
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
29
DNS設定介紹
用
BIND 還是用 Windows DNS ?
設定檔 named.conf
根伺服器介紹與設定
zone file基本設定
正解設定
負載平衡功能 (Round Robin)
安裝DNS
主要(master)/次要(slave)伺服器的
關係及設定
DDNS設定
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
30
用 BIND 還是用 Windows DNS ?
操作
效率
Windows
BIND
GUI的設定方式入門容易
設定以文字編輯進行
可用
Windows 其他服務結
合 ( WINS/AD)
入門時,文字工作較易出錯
查詢數字無非官方統計資料
每秒可處理上萬次查詢
Unix
環境為一般人所不熟悉
Multi-thread/SSL
穩定性
視
OS 表現
穩定性佳
基本上可符合一般企業需求 版本更新速度較快
安全性
隨系統版本更新而更新版本
可從設定面加強安全性
較能預防DNS
佔有率
其他
在台灣兩者相當
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
Spoofing
在全世界佔大宗
Root
Server 皆以 BIND 為主
31
設定檔: named.conf

路徑
 /etc/named.conf


BIND (named) 環境之主要設定檔
作用
 定義
named 的全域功能
( options )
 定義 root server 位置
( zone )
 定義所管轄之網域名稱
( zone )
 定義反解
( zone )
 其他,如系統記錄/存取控制列表等…
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
32
named.conf: options
#/etc/named.conf //檔案所放的位址
options {
directory
“/var/named”;
// zone file 檔案存放位置
pid-file
“/var/named/named.pid”; // DNS 啟動時記錄行程代號(PID)
之檔案
listen-on-v6 { any; }; //啟動IPv6
allow-transfer { none; }; //定義那些 IP 可以取得此部 DNS 上的Zone資料
};

常犯錯誤
 options 忘了加 “s”,前後以 {} 括住
 有關檔案或路徑名稱皆要加 “” 號
 每一個描述 (statement) 的結尾需有 “;” 號
 有關 IP 等設定項目亦需加 ; 號
 pid-file 所指路徑的權限問題要注意
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
33
在named.conf設定根伺服器
zone “.” {
type hint;
file “named.root”;
};






所有的 DNS 伺服器皆需要知道根伺服器位罝
根伺服器為所有 DNS 查詢之起源
根伺服器列表可由
ftp://ftp.internic.net/domain/named.cache 取得
hint 字面為暗示之意,即向 DNS 表示如果你沒有資
料,可以到根伺服器詢問
一部 DNS 僅能有一 hint type
幾年前的中美海灠斷線造成往 . 的線路不通
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
34
在named.conf設定正解網域
zone “xxx.ncnu.info” {
type master;
file “named.lug”;
allow-transfer { slave ip; }; //允許轉送zone資料給哪個IP位址
};






此一域名需上層授權(ncnu.info) 後別人方可查得到
若您有多個網域名稱即添加類似設定即可
此例為 master 主機設定,slave 主機設定於後述
file 未定路徑即表參照 directory 參數
注意 ; 號問題
此處的 allow-transfer 僅對此網域有效,而
options 中的 allow-transfer 則對此部 DNS 有效
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
35
在named.conf設定反解網域
zone “0.0.127.in-addr.apra” {
type master;
file “named.local”;
};
zone “210.72.211.in-addr.arpa” {
type master;
file “211.72.210.rev”;
};
 DNS 搜尋由後往前(後序),故原 127.0.0.x 及
211.72.210.x 之 IP 要反寫
 in-addr 為 Internet Address 之意,用於 IPv4 之
反解,IPv6 則使用 ip6
 apra 為反解起源之 TLD,其他諸如與”數字”有關之
解析多以 arpa 為 TLD
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
36
named.conf 回顧






options/root server /正解/反解 為基本設定
若欲為 Cache-Only 主機則可拿掉 正解/反解設
定即可 (即保留 options/root/localhost)
語法及 ; {} “” 等問題需注意 (初學常犯)
可使用工具程式幫您做語法檢查
named-checkconf [filename]
named-checkzone [zonename] [filename]
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
37
正解檔完整內容範例
xxx.ncnu.info.
86400 IN SOA
ns1.xxx.ncnu.info.
root.xxx.ncnu.info. (
2002021301
; serial
1D
; refresh
1H
; retry
1W
; expiry
2D
; negative cache
)
xxx.ncnu.info.
86400
IN
NS
ns1.xxx.ncnu.info.
@
86400
IN
NS
ns2
xxx.ncnu.info.
86400
IN
A
211.72.211.1
@
86400
IN
A
211.72.211.2
www
86400
IN
A
211.72.211.80
ftp
86400
IN
CNAME www
@
86400
IN
MX 10 mail
@
86400
IN
MX 20 imap
mail
86400
IN
A
211.72.211.25
imap
86400
IN
A
211.72.211.143
test.kyo
86400
IN
A
163.22.2.5
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
38
以 $TTL/$ORIGIN 來簡化設定
$TTL
86400 ; 預設 TTL 值,原來每筆 RR 之 TTL 值可以此值代替
$ORIGIN xxx.ncnu.info. ; 預設附加字尾如同該 zone 則可不寫
@
IN
SOA
ns1 root.xxx.ncnu.info. (
2002021301 ; serial
1D
; refresh
1H
; retry
1W
; expiry
2D
; negative cache
)
IN
NS
ns1
IN
NS
ns2
IN
MX
10
mail
IN
MX
20
imap
ns1
IN
A
211.72.211.1
ns2
IN
A
211.72.211.2
www
IN
A
211.72.211.80
ftp
IN
CNAME www
mail
IN
A
211.72.211.25
imap
IN
A
211.72.211.143
$ORIGIN kyo.xxx.ncnu.info
test
IN
A
163.22.2.5
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
39
負載平衡功能 (Round Robin)
www
www
pc1
pc2



IN
IN
IN
IN
A
A
A
A
211.72.211.80
211.72.211.81
211.72.211.80
211.72.211.81
如上資料,一個 FQDN 有兩個以上之 IP 位址是允許的
回答的答案基本上是循環的,不過在 BIND 9.X 中是以
有些回答的依據設定 (rrset),不過一般是較少用到
DNS 僅做名稱之負載平衡,如 www/mail 或他類型的服
務之負載平衡要取決其他技術(ex:Level 4 switch)
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
40
架設網域名稱伺服器(DNS Server)

以於CentOS5.6安裝BIND 9為例
 yum

install bind
設定防火牆
 Setup
-> Firewall Configuration
 關閉 SELinux (須重新啟動系統)
 開放 53 port
41
架設網域名稱伺服器(DNS Server)

關閉SELinux

Setup -> Firewall Configuration
1
2

將SELinux關閉 之後請重新開機 如果之前已經關閉請看下一頁
42
架設網域名稱伺服器(DNS Server)
設定IPv4防火牆
 vim /etc/sysconfig/iptables


在-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT行之下
加入
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

/etc/init.d/iptables restart


43
架設網域名稱伺服器(DNS Server)
設定IPv6防火牆
 vim /etc/sysconfig/ip6tables


在-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT行之下加
入
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m udp -p udp --dport 53 -j ACCEPT

/etc/init.d/ip6tables restart


44
架設網域名稱伺服器(DNS Server)

BIND 使用範例檔案 (課程提供)




cd /
wget http://voip.com.ncnu.edu.tw/Summer2011/DNS/2011dnssample.tar.gz
tar zxvf 2011dns-sample.tar.gz
修改設定


vim /etc/named.lug.zones
vim /var/named/named.lug
45
架設網域名稱伺服器(DNS Server)

named.lug.zones
zone “xxx.ncnu.info” { //請將xxx改成你的域名
type master;
file “named.lug";
allow-query { any; };
allow-update { none; };
allow-transfer { none; } //加入這一行
};
46
架設網域名稱伺服器(DNS Server)

named.lug
$TTL 600
@
IN SOA xxx.ncnu.info. root.xxx.ncnu.info. (
2011072103 ; serial
12H
; refresh 12 hour
1H
; retry 1 hour
1W
; expirt 1 weeks
1H
; negative ttl 1 hour
)
IN
NS
ns.xxx.ncnu.info.
IN
MX 0
ms.xxx.ncnu.info.
IN
A
163.22.21.252
ns
IN
A
163.22.21.252
ms
IN
A
163.22.21.82
dennis
IN
A
163.22.21.82
dennis
IN
TXT
"This is Dennis's computer!"
dennis
IN
HINFO "Core(TM) i5-2400" "Linux"
47
Bind啟動與停止








啟動 DNS
/etc/rc.d/init.d/named start
named 啟動狀況會寫到 syslog (/var/log/messages) 中,只要
查看log 檔即知啟動狀況
要停止 named
/etc/rc.d/init.d/named stop
重新啟動
/etc/rc.d/init.d/named restart
重新載入
/etc/rc.d/init.d/named restart
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
48
Master/Slave 如何實現
ns1.xxx.ncnu.info
zone “xxx.ncnu.info” {
type master;
file “named.xxx.ncnu.info”;
allow-transfer {
211.72.211.2;
};
};
ns2.xxx.ncnu.info
zone “xxx.ncnu.info” {
type slave;
file “named.xxx.ncnu.info”;
masters { 211.72.211.1;};
allow-transfer {none;};
};
 一般而言 Slave 主機應不允許 zone transfer
 Slave 主機啟動後即會和 Master 同步資料,而之後資
料的同步即是參考 SOA 資訊
 Master 主機更改了資料請務必記得序號需加大,否則
即使時間到了 Slave 不會同步資料
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
49
Master/Slave 的同步問題

Zone transfer 只有一個方向,由 Slave 向 Master 發出要求
如果 Master 更改了資料,以上述 Zone File 的範例而言,
最長要一天後 Slave 才會更新,顯然不夠即時

解決方法



降低 Refresh 之值:或可改善但仍會有時間差
使用 Bind 8.x/9.x 之 notify 功能
 當 Master 重新啟動時,即會送出 notify 訊息至所有 Zone File
中的 NS RR,告知這些機器進行 AXFR
 這個功能在 Bind 9.x 中預設即巳啟動,若欲關閉
options { ….
notify no;
};
* 摘自 TWNIC 97年度 DNS 安全教育訓練 / TWNIC 技術組編撰
50
Master/Slave 實作

修改named.lug.zones 為
zone “xxx.ncnu.info" {
type master;
file “named.lug";
allow-transfer { 163.22.221.81; };
allow-query { any; };
allow-update { none; };
};
zone “xxx.ncnu.info" {
type slave;
file “named.lug.slave";
masters { 163.22.21.81; };
allow-query { any; };
allow-update { none; };
notify no;
};
xxx 自己的域名
xxx 對方的域名
163.22.21.81 對方DNS的IP
51
Master/Slave 實作








在named.lug設定檔中找到
IN
NS
ns.xxx.ncnu.info.
在下方新增
xxx 自己的域名
IN
NS
ns.xxx.ncnu.info. xxx 對方的域名
記得要將 serial number +1
存檔
請伯岡在上層的DNS設定檔中新增一筆NS紀錄
像是xxx.ncnu.info. IN NS ns.xxx.ncnu.info.
52
Master/Slave 實作
重新啟動DNS Server
 /etc/init.d/named restart
 查看log檔
 vim /var/log/message
 是否有出現類似這樣的訊息


transfer of 'twipv6.com/IN' from 163.22.21.81#53: connected using 163.22.21.252#59593
zone twipv6.com/IN: transferred serial 2011072001
transfer of 'twipv6.com/IN' from 163.22.21.81#53: end of transfer

這樣就表示成功了


53
DDNS相關設定 – 參數意義

目前的要開啟 Dynamic Update 有兩種方法

allow-update {要接受的IP或網段;};
allow-update {要接受的Key;};
這種方法無法限制可更新的範圍






update-policy {
grant|deny <key> name|subdomain <hostname> <type>;
};
可以限制可更新的範圍,但是必需要使用Key
54
DDNS相關設定 – 產生鑰匙

切換目錄


cd /etc
產生鑰匙


dnssec-keygen -a HMAC-MD5 -b 512 -n HOST [key]
會產生出類似的兩個檔案
K[key].+157+60597.key
K[key].+157+60597.private

cat K[key].+157+60058.key

kyo. IN KEY 512 3 157 Gr0j4Gv+PyQAngQxWdqp0NRjVixqPqK0VbKgOKy6PoUTjoRwHw

將以下資料加入named.lug.zones最前面


key “[key]" {
algorithm hmac-md5;
secret "Gr0j4Gv+PyQAngQxWdqp0NRjVixqP..";

}; //其中secret的值用之前cat出來的紅色部分取代

55
DDNS相關設定 – 設定權限











在named.lug.zones裡修改type為master的zone
zone “xxx.ncnu.info" {
type master;
file "named.lug";
allow-query { any; };
allow-update { none; };
刪除
update-policy {
新增
grant [key] name xxx.ncnu.info A;
}; //上面的name換成subdomain就可以控制
xxx.ncnu.info以下的所有subdomain的A紀錄
};
存檔後重新啟動DNS Server
56
DDNS相關工具 - nsupdate
$>nsupdate //–k Key 如果要使用key
> server localhost
#設定要更新的 Server
>zone www.xxx.ncnu.info
#更新那個 zone file
>update delete www.xxx.ncnu.info A
#刪除 A 記錄
>update add www.xxx.ncnu.info 600 A 9.9.9.9
#加一筆 ttl=600 的 A 記錄
>show
#顯示目前nsupdate 情形
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:
0
;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
www.xxx.ncnu.info.
0
ANY A
www.xxx.ncnu.info.
600 IN A
9.9.9.9
>send
#送出更新指令(未送不會生效)
>quit
註: 可以把上述指令寫在文字檔中,以 nsupdate Filename 一次處理完,nsupdate 若封包大於
512 bytes,則屬 truncate 模式,會改以 53/tcp 傳送此一 update 請求
57
使用DDNS



切換到/etc
產生一個指令檔 update
vim update 將以下的內容寫入(不含註解)

server 127.0.0.1 or DNS_IP
zone xxx.ncnu.info
update delete xxx.ncnu.info A
update add xxx.ncnu.info 600 A 目的IP
send

使用nsupdate –k K[key].+157+60058.key update 來更新IP




#設定要更新的 Server
#更新那個 zone file
#先刪除 A 記錄
#再新增紀錄
#最後送出
58
使用DDNS









成功的話不會出現任何提示
在/var/log/massage檔裡會看到
client 127.0.0.1#31281: updating zone 'kyo.ncnu.info/IN': deleting rrset at
'kyo.ncnu.info' A
client 127.0.0.1#31281: updating zone 'kyo.ncnu.info/IN': adding an RR at
'kyo.ncnu.info' A
第一次使用時會出現 journal file named.lug.jnl does not exist, creating it
會自動建立.jnl檔 如果有看到,jnl檔表示剛剛的更新還是寫在,jnl檔裡
這時候不能手動修改named.lug因為剛剛更動沒有寫進去 修改的話會
造成不同步
可以執行 rndc freeze xxx.ncnu.info 凍結這zone的動態更新並且將.jnl的
資料寫進去 這時候就可以修改了
修改完再執行rndc thaw xxx.ncnu.info 就可以了
59
DDNS and Master/Slave
序號+1
notify
動態更新
要求傳送zone資料
user
master
slave
60
免費資源

免費網域名稱
 台灣BBS聯盟
(提供免費 *.twbbs.org 域名)
 DynDNS (提供 *.dyndns.org 等域名與 DDNS)
 No-IP

DNS代管 (域名需自備)
 Hurricane
Electric Hosted DNS
 Sitelutions
 Godaddy
61
Reference
DNS資源紀錄(Resource Record)介紹
 Secure dynamic DNS howto
 DNS Dynamic Update
 TWNIC 97年度 DNS 安全教育訓練 /
TWNIC 技術組編撰

62