Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dynamic DNS 情報工学専攻 谷口研究室 山本 淳.

Similar presentations


Presentation on theme: "Dynamic DNS 情報工学専攻 谷口研究室 山本 淳."— Presentation transcript:

1 Dynamic DNS 情報工学専攻 谷口研究室 山本 淳

2 発表手順 1.DNSの概要 2.Dynamic DNSの概要 3.実装(BIND) 4.動的更新ツール(nsupdate)

3 DNS(Domain Name System)
(1)TCP/IPネットワークにおける名前解決サービスを提供   (A)正引き: ドメイン名 ー> IPアドレス   (B)逆引き: IPアドレス ー> ドメイン名   (C)クライアント/サーバ方式で動作 (2)階層構造の分散データベース方式で名前空間を管理   (A)ゾーン単位で情報を管理   (B)ゾーン単位で管理を委任   (C)ドメインとゾーンは不一致可 (3)RFC1034とRFC1035で定義

4 名前空間(ドメインとゾーン) . (root) jp uk ac co kyushu-u <ドメイン!=ゾーンの例>
・csce.kyushu-u.ac.jpドメイン ・csce.kyushu-u.ac.jpゾーン <ドメイン==ゾーンの例> ・st.csce.kyushu-u.ac.jpドメイン ・st.csce.kyushu-u.ac.jpゾーン csce swlab st ※各ゾーンごとに1台以上のDNSサーバが存在

5 DNSサーバの種類 (1)プライマリとセカンダリ (A)プライマリ: ゾーンファイルの原本から情報を取得
  (B)セカンダリ: ゾーンファイルの複製から情報を取得 (2)マスターとスレーブ   (A)マスター: ゾーン転送における転送元   (B)スレーブ: ゾーン転送における転送先 プライマリ マスター ゾーン転送 セカンダリ スレーブ

6 DNSの動作 recursive query .(root) iterative query DNSサーバ (2) jp
(3) (4) (1) (6) ac.jp DNSサーバ (5) DNSクライアント kyushu-u.ac.jp DNSサーバ

7 DNSの拡張 (1)差分ゾーン転送 RFC1995, “Incremental Zone Transfer in DNS”
(2)ゾーンの更新通知    RFC1996, “A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY)” (3)DNSの動的更新    RFC2136, “Dynamic Updates in the Domain Name System (DNS UPDATE)”

8 差分ゾーン転送(RFC1995) (1)ゾーン転送 ・マスターがスレーブにゾーンファイルの内容を 転送すること (2)転送方式
  ・マスターがスレーブにゾーンファイルの内容を    転送すること (2)転送方式   (A)完全転送(AXFR)      ゾーンファイル内容の全体を転送   (B)差分転送(IXFR)      ゾーンファイル内容の差分を転送      ゾーン転送に伴う無駄なトラフィックの抑制 ※ゾーンファイルのバージョンは、SOA RRの   serialフィールド値で管理

9 ゾーンの更新通知(RFC1996) (1)ゾーン転送の契機 スレーブからマスターへの転送要求の発行 (2)要求の発行契機 (A)定期間隔
   スレーブからマスターへの転送要求の発行 (2)要求の発行契機   (A)定期間隔      SOA RRのrefreshフィールド値の間隔で要求を発行   (B)更新通知      マスターからの更新通知により要求を発行 マスターとスレーブ間での情報一致の促進

10 DNSの動的更新(RFC2136) (1)DNSのオリジナル設計 (A)静的に構成されたデータベースの管理
  (B)更新はゾーンファイルの手動編集により実施 (2)動的更新の必要性   (A)ゾーンファイルの管理コストの削減   (B)DHCPクライアントへの固定ドメイン名の割り当て UPDATE命令で指定ゾーンのRRの追加・削除を可能に

11 利用例(DHCPとDynamic DNS)
Hw Address | Host Name table DHCP Server DNS 2 send IP-Host infomation 3 DNS update 1 allocate IP address DHCP Client [松澤ら, 2000]

12 DNS UPDATEパケットの構造 Header Zone Prerequisite Update Additional Data
specifies the zone to be updated RRs or RRsets which must (not) preexist RRs or RRsets to be added or deleted additional data RRset: ・RRのエントリ(name, type, class, ttl, rdlength, rdata)のうち (name, type, class)が同じRRの集合

13 Headerセクション(1) ID QR Opcode Z RCODE ZOCOUNT PRCOUNT UPCOUNT ADCOUNT ID: 要求を行うプログラムによって割り当てられる識別子 QR: 要求(0)、応答(1) Opcode: 要求の種類、UPDATE(5) Z: 予約、すべて0にセット

14 Headerセクション(2) RCODE: 応答コード NOERROR FORMERR SERVFAIL NXDOMAIN NOTIMP
REFUSED 1 2 3 4 5 YXDOMAIN YXRRSET NXRRSET NOTAUTH NOTZONE 6 7 8 9 10 ZOCOUNT: Zoneセクションに含まれるRRの数 PRCOUNT: Prerequisiteセクションに含まれるRRの数 UPCOUNT: Updateセクションに含まれるRRの数 ADCOUNT: Additional Dataセクションに含まれるRRの数

15 Zoneセクション ・更新するゾーンを指定 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
ZNAME ZTYPE ZCLASS ZNAME : ゾーンの名前 ZTYPE  : SOAでなければならない ZCLASS : ゾーンのクラス ※すべての更新は、同一ゾーンに対してでなければならない

16 Prerequisiteセクション ・更新するための必要条件を指定 (1)RRset exists (value independent)
 (2)RRset exists (value dependent)  (3)RRset dose not exist  (4)Name is in use  (5)Name is not in use <構文> class ANY NONE zone type ANY rrset rdata empty rr meaning (4) (1) (5) (3) (2) ※ttlはすべて0   にセット

17 Updateセクション ・更新(追加・削除)するRRまたはRRsetを指定 (1)Add RRs to an RRset
 (2)Delete an RRset  (3)Delete all RRsets from a name  (4)Delete an RR from an RRset <構文> class ANY NONE zone type ANY rrset rdata empty rr meaning (3) (2) (4) (1) ※(1)以外、ttlは   すべて0にセット

18 Server Behavior(1) DNS UPDATEパケットの処理 (1)プライマリ DNS UPDATEパケットの各セクションを処理
(2)セカンダリ   ・DNS UPDATEパケットをプライマリに向かって    フォワード プライマリ マスター フォワード セカンダリ スレーブ

19 Server Behavior(2) <処理手順> (1)Zoneセクション (2)Prerequisiteセクション
 (3)Updateセクション  (4)Requestorへの応答 DNS UPDATE (1)原子性(atomicity)   (A)全必要条件を満足 ー> 全更新を反映   (B)全必要条件を不満 ー> 全更新を取消 (2)ゾーンのバージョン管理   ・更新を反映した場合、SOA RRのserialフィールド値    をインクリメント

20 Requestor Behavior 前提: ・更新するゾーンの名前と当該ゾーンのDNSサーバ (プライマリまたはセカンダリ)は既知
  (プライマリまたはセカンダリ)は既知 DNS UPDATEパケット ID: Opcode: Zone zcount: Zone zname: Zone zclass: Zone type: Prerequisite Section: Update Section: Additional Data Section: (new) UPDATE 1 (zone name) (zone class) T_SOA (see previous page) (empty)

21 実装(BIND) BIND(Berkeley Internet Name Domain) (1)DNSのリファレンス実装
 (2)ISC(Internet Software Consortium)により開発・配布  (3)BIND4系、BIND8系、BIND9系が存在  (4)Dynamic DNSはBIND8系とBIND9系でサポート    (A)BIND8系の最新版は8.2.5    (B)BIND9系の最新版は9.2.0

22 ソースコード(1) /* Process zone section. */
$DISTDIR/bind_src/src/bin/named/ns_update.c /* Process zone section. */ ... if (zocount != 1 || type != T_SOA) { hp->rcode = FORMERR; return (Finish); } /* we should be authoritative */ if (!(zp->z_flags & Z_AUTH)) { hp->rcode = NOTAUTH;

23 ソースコード(2) if (zp->z_type == Z_SECONDARY) {
$DISTDIR/bind_src/src/bin/named/ns_update.c if (zp->z_type == Z_SECONDARY) { /* * XXX The code below is broken. * Until fixed, we just return NOTIMPL. */ #if 1 hp->rcode = ns_r_notimpl; return (Finish); #else /* We are a slave for this zone, forward it to the master. */ ... #endif } * We are the primary master server for this zone, * proceed further and process update packet

24 動作テスト環境 BSD/OS 3.1上でBIND8.2.5(named)を走行 <設定ファイル> (1)/etc/named.conf
 <設定ファイル>   (1)/etc/named.conf   (2)/etc/namedb/localhost.rev   (3)/etc/namedb/named.hosts   (4)/etc/namedb/named.rev   (5)/etc/namedb/named.root   (6)/etc/resolv.conf  < ・BIND8.2.5付属の動的更新ツール(nsupdate)を使用して、 A RR(正引き)の更新(削除・追加)

25 動作テスト結果(1) (fubuki)</etc/namedb>$ nslookup
Default Server: fubuki.yamamoto.csce.kyushu-u.ac.jp Address: > tender.yamamoto.csce.kyushu-u.ac.jp Server: fubuki.yamamoto.csce.kyushu-u.ac.jp Name: tender.yamamoto.csce.kyushu-u.ac.jp Address: > (Ctrl-D) (fubuki)</etc/namedb>$ nsupdate > update delete tender.yamamoto.csce.kyushu-u.ac.jp IN A >

26 動作テスト結果(2) (fubuki)</etc/namedb>$ nslookup
Default Server: fubuki.yamamoto.csce.kyushu-u.ac.jp Address: > tender.yamamoto.csce.kyushu-u.ac.jp Server: fubuki.yamamoto.csce.kyushu-u.ac.jp *** fubuki.yamamoto.csce.kyushu-u.ac.jp can't find tender.yamamoto.csce.kyushu-u.ac.jp: Non-existent host/domain > (Ctrl-D) (fubuki)</etc/namedb>$ nsupdate > update add tender.yamamoto.csce.kyushu-u.ac.jp 1200 IN A >

27 動作テスト結果(3) ※PTR RR(逆引き)は、別途更新(削除・追加)する必要あり
(fubuki)</etc/namedb>$ nslookup Default Server: fubuki.yamamoto.csce.kyushu-u.ac.jp Address: > tender.yamamoto.csce.kyushu-u.ac.jp Server: fubuki.yamamoto.csce.kyushu-u.ac.jp Name: tender.yamamoto.csce.kyushu-u.ac.jp Address: > (Ctrl-D) ※PTR RR(逆引き)は、別途更新(削除・追加)する必要あり

28 動作テスト結果(4) (fubuki)</etc/namedb>$ cat named.hosts.log
;BIND LOG V8 [DYNAMIC_UPDATE] id from [ ].1038 at (named pid 75): zone: origin yamamoto.csce.kyushu-u.ac.jp class IN serial update: {delete} tender.yamamoto.csce.kyushu-u.ac.jp. IN A [INCR_SERIAL] from to Tue Dec 11 20:12: [DYNAMIC_UPDATE] id from [ ].1053 at zone: origin yamamoto.csce.kyushu-u.ac.jp class IN serial update: {add} tender.yamamoto.csce.kyushu-u.ac.jp IN A [INCR_SERIAL] from to Tue Dec 11 20:19:


Download ppt "Dynamic DNS 情報工学専攻 谷口研究室 山本 淳."

Similar presentations


Ads by Google