BIND9: 2006年4月アーカイブ

viewステートメントの使い方

|

どうも、上からアドレスマッピングをしていくらしく、 一番上のviewに "any" をやってしまうと、それがすべて有効になってしまう。

view "internal" {
        match-clients { 192.168.0.0/24; 127.0.0.1; };

zone "localhost" IN { type master; file "localhost.zone"; };

zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; };

zone "." IN { type hint; file "named.ca"; };

zone "example.local" IN { type master; file "data/db.example.local.internal"; }; };

view "external" { match-clients { any; }; recursion no;

zone "example.local" IN { type master; file "data/db.example.local"; }; };

DynamicDNS

|

■ダイナミックゾーン

・動的にメンテナンスするゾーンは他の方法でメンテナンス出来ない。
 ファイルを手作業で更新するのではない。

①named.conf で allow-update と notify をゾーンに設定する
zone "dyn.example.local" {
   type master;
   file "data/db.dyn.example.local";
   allow-update {
         192.168.100.1;  // DHCPサーバも兼ねる場合、自分自身のアドレスを設定
       };
   notify;               // 更新をすぐにセカンダリに通知する
};
②zoneファイルの設定
TTL    1m
serial   1
refresh  5m
retry   2m
expire   6h
minimum  1m

■クライアント

DNS更新クライアントとなり得るのは、DHCPサーバ、
またはPPPやDHCPサーバから動的にIPアドレスを割り当てられたコンピューターである。

■nsupdateツールを使用する

【ゾーンデータベースへの追加】

※TTLが必須である

> nsupdate
> update add new.dyn.example.local. 600 IN A 172.16.1.2
> (空行が必要)

【ゾーンデータベースからの削除】

> nsupdate
> update delete new.dyn.example.local. IN A
> (空行が必要)

BINDのログを設定するには

|
■bind9のデフォルトロギング
logging {
  category default { default_syslog; default_debug; }; 
};
が設定されている(見えないけど) このため、特に設定をしなくても、syslogにinfoが出力され、 また、traceコマンドをnamedに送れば、named.runにdebugが出力される。 ■全てのログを出力したい
logging {
	channel my_file {
		file "named.log";
		severity debug;
		print-category yes;
		print-severity yes;
		print-time yes;
	};
	
	category debug { my_file; };
	category queries { my_file; };
	category general { my_file; };
};

■channel
ログの出力先を設定する。
その際、メッセージの重要度にフィルタをかけられる(severity)
severityのレベルは、critical/error/warning/notice/info/debug[level]/dynamic

デフォルトのchannelは4種類定義されている(見えないけど)
channel default_syslog { syslog daemon; severity info; }; 
channel default_debug { file "named.run"; severity dynamic; }; 
channel default_stderr { stderr; severity info; }; 
channel null { null; };
■category ログデータの種類を指定する
default  分類可能なカテゴリについて全てを含む   
general  分類不可能なものもを含む
database/security/config/resolver/xfer-in/xfer-out/notify/client/network
update/queries/dispatch/dnssec/lame-servers

  

ラウンドロビンDNS

|

■ラウンドロビンDNSは、DNSサーバの正引き用のゾーン設定ファイルに、
1つのホスト名に対して、複数のAレコードを設定するだけです。
 以下に、www.example.localの設定例を示します。

db.example.localの内容
  $ORIGIN	example.local.
  ----------------------
  www	IN	A	192.168.0.1
  www	IN	A	192.168.0.2


■ラウンドロビンDNSの注意点
 ダウンしたサーバがあると、サイト全体がダウンしていると思われてしまいます。
 そのため、障害時は、ipaliasなどで、すべてのIPでアクセスできるようにする必要があります。
 また、負荷状況を見ていないため、サーバの負荷を見ながら分散するわけではありません。

■ラウンドロビンDNSを設定するには?
options {
   rrset-order { class ANY type ANY name "*" order fixed ; }; 
};
class   INかANY
type    A,NS,CNAME,ANY
name    *で全部の名前をあらわせるが、"www.example.local"というのもあり。
order   fixed,random,cyclic

BINDの設定例

|

■/etc/named.conf の設定例

options {
	directory "/var/named";
	// query-source address * port 53;
};

zone "." IN { type hint; file "named.ca"; };

zone "example.local" IN { type master; file "db.example.local"; };

zone "0.168.192.in-addr.arpa" IN { type master; file "db.192.168.0"; };

・「IN」はQClassがインターネットクラスなのを指しています(省略可能)
・ typeの引数は、hint,master,slave,stub,forward
・ fileはoptionsで指定したディレクトリからの相対パスで記述

■正引きマスターゾーンファイル /var/named/db.example.local の設定例

;
; db.example.local
;

; #キャッシュTTL(世の中のキャッシュDNSサーバがこのゾーンのデータをキャッシュする時間) $TTL 3600

; # 「@」はnamed.confのzone"~"の、「~」の部分の省略形です。 ; # ここから"example.local."の定義の開始になります。 ; # ; # SOAの後に続いているのは ; # MNAMEフィールド(このゾーンのmasterネームサーバ) ; # RNAMEフィールド(このゾーンの管理者のメールアドレス) @ IN SOA dns1.example.local. root.dns1.example.local. ( ; # シリアル番号(設定変更したら増加させる) 2002120401 ; # リフレッシュ(slaveサーバがmasterのシリアル番号をチェックする間隔) 3600 ; # リトライ(slaveサーバがにシリアルのチェックに失敗したときに再試行する間隔) 300 ; # 期限切れ(slaveサーバがmasterのシリアルをチェックできないときにこのゾーンを保持する最大の時間) 360000 ; #ネガティブキャッシュTTL(世の中のキャッシュDNSサーバがこのゾーンの否定応答をキャッシュする時間) 1200 )

; # "example.local."に対して権威を持つネームサーバを記述します。 IN NS dns1.example.local. IN NS dns2.example.local.

; # @example.local宛のメールを受け取るホストを記述します。 IN MX 10 mail.example.local.

; # ここまで"example.local."の定義です。

; # 「hoge」の最後に「.」ドットがないので".example.local."が付加され、 ; # "hoge"は"hoge.example.local."と同じ意味になります。 hoge IN A 192.168.0.254

dns1 IN A 192.168.0.1 dns2 IN A 192.168.0.2

mail IN A 192.168.0.8

www IN CNAME hoge

■逆引きマスターゾーンファイル /var/named/db.192.168.0 の設定例

;
; db.192.168.0
;
$TTL 3600

; # "@" = "0.168.192.in-addr.arpa"です @ IN SOA dns1.example.local. root.dns1.example.local. ( 2002120401 ;Serial 3600 ;Refresh 300 ;Retry 360000 ;Expire 1200 ;Minimum )

IN NS dns1.example.local. IN NS dns2.example.local.

; # ここが逆引きゾーンファイルの特徴

; # "0.168.192.in-addr.arpa"の名前は"example.local"であると ; # PTRレコードで定義しています。 IN PTR example.local.

; # サブネットマスクが255.255.255.0であることはAレコードで定義します。 IN A 255.255.255.0

; # 「.」で終わってないものは"0.168.192.in-addr.arpa"が付加されます。 1 IN PTR dns1.example.local. 2 IN PTR dns2.example.local. 8 IN PTR mail.example.local. 254 IN PTR hoge.example.local.

  

digとnslookupとwhois

|

■digとnslookupの使い方

■Bind9用digの使い方
dig [@global-server] [domain] [q-type] [q-class] {q-opt}
        {global-d-opt} host [@local-server] {local-d-opt}
        [ host [@local-server] {local-d-opt} [...]] .
■Windows用nslookupの使い方
nslookup NAME1 -set type=mx 
       set OPTION      - set an option
           all                 - print options, current server and host
           domain=NAME         - set default domain name to NAME
           retry=X             - set number of retries to X
           timeout=X           - set initial time-out interval to X seconds
           type=X              - set query type (ex. A,ANY,CNAME,MX,NS,PTR,SOA,SRV)
           querytype=X         - same as type
           class=X             - set query class (ex. IN (Internet), ANY)
       server NAME     - set default server to NAME, using current default server
■query type を検索するには? (SOA や A や SRV 等も同様)
# dig example.local mx
> nslookup www.example.local
> nslookup
> set type=mx
> example.local
■再帰をオフにするには?
# dig www.example.local +norec (オンにするには、+rec)
> nslookup
> set norecuse
■問い合わせるネームサーバーを指定するには?
# dig @[サーバー名] www.example.local A +norec
> nslookup www.example.local [DNSサーバー]
> nslookup
> server [DNSサーバー]
> www.example.local
■再起問い合わせの状況を全部見るには
dig +trace www.example.local

■whoisの使い方

whoisの基本書式
$ whois -h WHOIS_SERVER DOMAIN
WHOIS_SERVER whoisサーバーを指定する。 DOMAIN 調べたいドメイン名を指定する。 ドメイン別whoisサーバーの一覧 http://www.domaininformation.de/whoisserver_list.html
  jp whois.jp
  kr whois.krnic.net
  アジア whois.apnic.net
  ヨーロッパ whois.ripe.net
  アメリカ rs.internic.net
・com、net、org、eduドメインの場合の検索例 多分、whoisサーバーを指定しなくても検索できる。 下記のコマンドを実行するとaol.comの情報を検索する。
$ whois aol.com
・jpドメインの場合の検索例 下記のコマンドを実行するとexample.jpの情報を検索する。
$ whois -h whois.jp example.jp

■Windowsでdigを使う

※参照http://pigtail.net/LRP/dig/ windows用のbindを全部インストールする必要はない。 1.C:\windows\system32 に
host.exe 
dig.exe  
libdns.dll  
libeay32.dll  
libisc.dll  
libbind9.dll  
libisccfg.dll  
liblwres.dll
を置く。

ダウンロードするところはここ
ftp://ftp.isc.org/isc/bind/contrib/

2.C:\WINDOWS\system32\drivers\etc\resolv.confを作成し、
nameserver 192.168.0.1
など、所定の記述をする。

3.コマンドラインから、digが使えるようになっているはず。

C:\Documents and Settings\kuwa.BUG_HQ>dig --help
Invalid option: --help
Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
            {global-d-opt} host [@local-server] {local-d-opt}
            [ host [@local-server] {local-d-opt} [...]]

Use "dig -h" (or "dig -h | more") for complete list of options

+traceとかが使えないのは痛い。。。

  

このアーカイブについて

このページには、2006年4月以降に書かれたブログ記事のうちBIND9カテゴリに属しているものが含まれています。

次のアーカイブはBIND9: 2006年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

BIND9: 2006年4月: 月別アーカイブ

Powered by Movable Type 4.1