dynamic dns

28
Dynamic DNS 情情情情情情 情情情情情 情情 情

Upload: eilis

Post on 10-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Dynamic DNS. 情報工学専攻 谷口研究室 山本 淳. 発表手順. 1 . DNS の概要 2 . Dynamic DNS の概要 3 .実装( BIND ) 4 .動的更新ツール( nsupdate ). DNS ( Domain Name System ). ( 1 ) TCP/IP ネットワークにおける名前解決サービスを提供   ( A )正引き: ドメイン名 ー> IP アドレス   ( B )逆引き: IP アドレス ー> ドメイン名   ( C )クライアント / サーバ方式で動作 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Dynamic DNS

Dynamic DNS

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

Page 2: Dynamic DNS

No.2

発表手順

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

Page 3: Dynamic DNS

No.3

DNS ( Domain Name System )

( 1 ) TCP/IP ネットワークにおける名前解決サービスを提供  ( A )正引き: ドメイン名 ー> IP アドレス  ( B )逆引き: IP アドレス ー> ドメイン名  ( C )クライアント / サーバ方式で動作

( 2 )階層構造の分散データベース方式で名前空間を管理  ( A )ゾーン単位で情報を管理  ( B )ゾーン単位で管理を委任  ( C )ドメインとゾーンは不一致可

( 3 ) RFC1034 と RFC1035 で定義

Page 4: Dynamic DNS

No.4

名前空間(ドメインとゾーン)

. (root)

jp

ac

kyushu-u

csce

swlab

uk

co

<ドメイン!=ゾーンの例>・ csce.kyushu-u.ac.jp ドメイン・ csce.kyushu-u.ac.jp ゾーン

<ドメイン==ゾーンの例>・ st.csce.kyushu-u.ac.jp ドメイン・ st.csce.kyushu-u.ac.jp ゾーン

st

※ 各ゾーンごとに 1 台以上の DNS サーバが存在

Page 5: Dynamic DNS

No.5

DNS サーバの種類

( 1 )プライマリとセカンダリ  ( A )プライマリ: ゾーンファイルの原本から情報を取得  ( B )セカンダリ: ゾーンファイルの複製から情報を取得

( 2 )マスターとスレーブ  ( A )マスター: ゾーン転送における転送元  ( B )スレーブ: ゾーン転送における転送先

プライマリ

セカンダリ

マスター

スレーブゾーン転送

Page 6: Dynamic DNS

No.6

DNS の動作

DNS クライアント

ローカルの DNS サーバ

( 1 ) www.kyushu-u.ac.jp

.(root)DNS サーバ

jpDNS サーバ

ac.jpDNS サーバ

kyushu-u.ac.jpDNS サーバ

( 6 ) 133.5.1.2

( 2 )

( 3 )

( 4 )

( 5 )

recursive queryiterative query

Page 7: Dynamic DNS

No.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)”

Page 8: Dynamic DNS

No.8

差分ゾーン転送( RFC1995 )

( 1 )ゾーン転送  ・マスターがスレーブにゾーンファイルの内容を   転送すること

( 2 )転送方式  ( A )完全転送( AXFR )     ゾーンファイル内容の全体を転送  ( B )差分転送( IXFR )     ゾーンファイル内容の差分を転送     

ゾーン転送に伴う無駄なトラフィックの抑制

※ ゾーンファイルのバージョンは、 SOA RR の  serial フィールド値で管理

Page 9: Dynamic DNS

No.9

ゾーンの更新通知( RFC1996 )

( 1 )ゾーン転送の契機   スレーブからマスターへの転送要求の発行

( 2 )要求の発行契機  ( A )定期間隔     SOA RR の refresh フィールド値の間隔で要求を発行  ( B )更新通知     マスターからの更新通知により要求を発行

マスターとスレーブ間での情報一致の促進

Page 10: Dynamic DNS

No.10

DNS の動的更新( RFC2136 )

( 1 ) DNS のオリジナル設計  ( A )静的に構成されたデータベースの管理  ( B )更新はゾーンファイルの手動編集により実施

( 2 )動的更新の必要性  ( A )ゾーンファイルの管理コストの削減  ( B ) DHCP クライアントへの固定ドメイン名の割り当て

UPDATE 命令で指定ゾーンの RR の追加・削除を可能に

Page 11: Dynamic DNS

No.11

利用例( DHCP と Dynamic DNS )

DHCP Server

DHCP Client

DNS

1allocate IP

address

2send IP-Hostinfomation

Hw Address|

Host Nametable

3DNS update

[ 松澤ら , 2000]

Page 12: Dynamic DNS

No.12

DNS UPDATE パケットの構造

HeaderZone

PrerequisiteUpdate

Additional Data

specifies the zone to be updatedRRs or RRsets which must (not) preexistRRs or RRsets to be added or deletedadditional data

・ RR のエントリ( name, type, class, ttl, rdlength, rdata )のうち ( name, type, class )が同じ RR の集合

RRset:

Page 13: Dynamic DNS

No.13

Header セクション( 1 )

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15ID

QR Opcode Z RCODE ZOCOUNTPRCOUNTUPCOUNTADCOUNT

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

Page 14: Dynamic DNS

No.14

Header セクション( 2 )

RCODE: 応答コード

ZOCOUNT: Zone セクションに含まれる RR の数PRCOUNT: Prerequisite セクションに含まれる RR の数UPCOUNT: Update セクションに含まれる RR の数ADCOUNT: Additional Data セクションに含まれる RR の数

012345

6 7 8 910

NOERRORFORMERRSERVFAILNXDOMAINNOTIMPREFUSED

YXDOMAINYXRRSETNXRRSETNOTAUTHNOTZONE

Page 15: Dynamic DNS

No.15

Zone セクション

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

ZNAME

ZTYPEZCLASS

ZNAME : ゾーンの名前ZTYPE   : SOA でなければならないZCLASS : ゾーンのクラス

※ すべての更新は、同一ゾーンに対してでなければならない

・更新するゾーンを指定

Page 16: Dynamic DNS

No.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

※ttl はすべて 0  にセット

classANYANY

NONENONEzone

typeANYrrsetANYrrsetrrset

rdataemptyemptyemptyempty

rr

meaning( 4 )( 1 )( 5 )( 3 )( 2 )

<構文>

Page 17: Dynamic DNS

No.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

※ ( 1 )以外、 ttl は  すべて 0 にセット

classANYANY

NONEzone

typeANYrrsetrrsetrrset

rdataemptyempty

rrrr

meaning( 3 )( 2 )( 4 )( 1 )

<構文>

Page 18: Dynamic DNS

No.18

Server Behavior ( 1 )

プライマリ

セカンダリ

マスター

スレーブフォワード

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

DNS UPDATE パケットの処理

Page 19: Dynamic DNS

No.19

Server Behavior ( 2 )

<処理手順> ( 1 ) Zone セクション ( 2 ) Prerequisite セクション ( 3 ) Update セクション ( 4 ) Requestor への応答

( 1 )原子性( atomicity )  ( A )全必要条件を満足 ー> 全更新を反映  ( B )全必要条件を不満 ー> 全更新を取消( 2 )ゾーンのバージョン管理  ・更新を反映した場合、 SOA RR の serial フィールド値   をインクリメント

DNS UPDATE

Page 20: Dynamic DNS

No.20

Requestor Behavior前提: ・更新するゾーンの名前と当該ゾーンの DNS サーバ  (プライマリまたはセカンダリ)は既知

ID:Opcode:Zone zcount:Zone zname:Zone zclass:Zone type:Prerequisite Section:Update Section:Additional Data Section:

(new)UPDATE1(zone name)(zone class)T_SOA(see previous page)(see previous page)(empty)

DNS UPDATE パケット

Page 21: Dynamic DNS

No.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

Page 22: Dynamic DNS

No.22

ソースコード( 1 )$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; return (Finish); }

Page 23: Dynamic DNS

No.23

ソースコード( 2 )

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 */ ...

$DISTDIR/bind_src/src/bin/named/ns_update.c

Page 24: Dynamic DNS

No.24

動作テスト環境

BSD/OS 3.1 上で BIND8.2.5 ( named )を走行 <設定ファイル>  ( 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  <http://www.swlab.csce.kyushu-u.ac.jp/~yamamoto/ds/settings/>

・ BIND8.2.5 付属の動的更新ツール( nsupdate )を使用して、 A RR (正引き)の更新(削除・追加)

Page 25: Dynamic DNS

No.25

動作テスト結果( 1 )(fubuki)</etc/namedb>$ nslookupDefault Server: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

> tender.yamamoto.csce.kyushu-u.ac.jpServer: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

Name: tender.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.108> (Ctrl-D)

(fubuki)</etc/namedb>$ nsupdate> update delete tender.yamamoto.csce.kyushu-u.ac.jp IN A>> (Ctrl-D)

Page 26: Dynamic DNS

No.26

動作テスト結果( 2 )(fubuki)</etc/namedb>$ nslookupDefault Server: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

> tender.yamamoto.csce.kyushu-u.ac.jpServer: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

*** 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 133.5.22.105>> (Ctrl-D)

Page 27: Dynamic DNS

No.27

動作テスト結果( 3 )(fubuki)</etc/namedb>$ nslookupDefault Server: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

> tender.yamamoto.csce.kyushu-u.ac.jpServer: fubuki.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.115

Name: tender.yamamoto.csce.kyushu-u.ac.jpAddress: 133.5.22.105> (Ctrl-D)

※PTR RR (逆引き)は、別途更新(削除・追加)する必要あり

Page 28: Dynamic DNS

No.28

動作テスト結果( 4 )(fubuki)</etc/namedb>$ cat named.hosts.log;BIND LOG V8[DYNAMIC_UPDATE] id 31008 from [133.5.22.115].1038 at 1008069068 (named pid 75):zone: origin yamamoto.csce.kyushu-u.ac.jp class IN serial 2001121101update: {delete} tender.yamamoto.csce.kyushu-u.ac.jp. IN A

[INCR_SERIAL] from 2001121101 to 2001121102 Tue Dec 11 20:12:00 2001

[DYNAMIC_UPDATE] id 38668 from [133.5.22.115].1053 at 1008069281 (named pid 75):zone: origin yamamoto.csce.kyushu-u.ac.jp class IN serial 2001121102update: {add} tender.yamamoto.csce.kyushu-u.ac.jp. 1200 IN A 133.5.22.105

[INCR_SERIAL] from 2001121102 to 2001121103 Tue Dec 11 20:19:41 2001