named (bind) の 微調整を行う まず確認しておきたいのは ”ip address は 192.168.0.8 nyan.bcnet.ne.jp nyan ”の条件である。 途中 で nyan.bcnet.ne.jp が ”192.168.0.5”や ”192.168.0.8”の場合があっ たように見受けられるが、今回の場合は ”192.168.0.8”での場合を前提にする。 通常の運用状態は、下記の条件で外部と内部の名前解決得を計ると、
nyan:/etc# cat resolv.conf
domain bcnet.ne.jp
nameserver 192.168.0.8
nameserver 127.0.0.1
nameserver 192.168.0.1
==============================
nyan:/etc# ps ax | grep named
18090 ? S 0:00 /usr/sbin/named
18133 pts/0 S 0:00 grep named
nyan:/etc# kill 18090
nyan:/etc# ps ax | grep named
18135 pts/0 S 0:00 grep named
nyan:/etc# /usr/sbin/named
nyan:/etc# ps ax | grep named
18137 ? S 0:00 /usr/sbin/named
18140 pts/0 S 0:00 grep named
=====================
nyan:/etc# nslookup nyanta.no-ip.info
Server: 192.168.0.8
Address: 192.168.0.8#53
Non-authoritative answer:
Name: nyanta.no-ip.info
Address: 9999.3333.p09.123
==================
tcpdump -i eth0
tcpdump: listening on eth0
10:40:24.535438 nyan.bcnet.ne.jp.33839 > adsl.bcnet.ne.jp.domain: \
28333+ [1au][|domain] (DF)
10:40:24.535603 nyan.bcnet.ne.jp.33839 > adsl.bcnet.ne.jp.domain: \
32063+ [1au] NS? . (28) (DF)
10:40:24.535780 nyan.bcnet.ne.jp.33839 > adsl.bcnet.ne.jp.domain: \
36292+ [1au][|domain] (DF)
10:40:24.536038 nyan.bcnet.ne.jp.33842 > adsl.bcnet.ne.jp.domain: \
56659+[|domain] (DF)
10:40:24.538705 nyan.bcnet.ne.jp.33839 > adsl.bcnet.ne.jp.domain: \
50914+ [1au] NS? . (28) (DF)
10:40:24.539838 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33839: \
32063- 13/0/0[|domain]
10:40:24.546319 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33839: \
50914- 13/0/0[|domain]
10:40:24.703058 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33839: \
28333*[|domain]
10:40:24.707256 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33839: \
36292*[|domain]
10:40:24.710962 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33842: \
56659*[|domain]
10:40:24.711115 nyan.bcnet.ne.jp > adsl.bcnet.ne.jp: icmp: \
nyan.bcnet.ne.jp udp port 33842 unreachable [tos 0xc0]
10:40:29.535184 arp who-has adsl.bcnet.ne.jp tell nyan.bcnet.ne.jp
10:40:29.535631 arp reply adsl.bcnet.ne.jp is-at 0:0:4c:bc:15:b8
================================================
nyan:/etc# nslookup www.bcnet.ne.jp
Server: 192.168.0.8
Address: 192.168.0.8#53
www.bcnet.ne.jp canonical name = lx.bcnet.ne.jp.
Name: lx.bcnet.ne.jp
Address: 192.168.0.5
tcpdump -i eth0
tcpdump: listening on eth0
注目;tcpdump の 出力なし 内部のみで処理と 思われる。
条件変更 resolv.conf を 入れ換え named の 再起動後名前解決を行うと、
nyan:/etc# cat resolv.conf
nameserver 192.168.0.1
======================
nyan:/etc# nslookup nyanta.no-ip.info
Server: 192.168.0.1
Address: 192.168.0.1#53
Name: nyanta.no-ip.info
Address: 9999.3333.p09.123
tcpdump -i eth0
tcpdump: listening on eth0
10:50:26.841628 nyan.bcnet.ne.jp.33844 > 192.168.0.1.domain: \
57109+[|domain] (DF)
10:50:26.843969 nyan.bcnet.ne.jp.33846 > 192.168.0.1.domain: \
21071+[|domain] (DF)
10:50:26.846583 192.168.0.1.domain > nyan.bcnet.ne.jp.33846: \
21071 NXDomain[|domain]
10:50:27.046082 192.168.0.1.domain > nyan.bcnet.ne.jp.33844: \
57109*[|domain]
10:50:31.835184 arp who-has 192.168.0.1 tell nyan.bcnet.ne.jp
10:50:31.835627 arp reply 192.168.0.1 is-at 0:0:4c:bc:15:b8
==================
nyan:/etc# nslookup www.bcnet.ne.jp
Server: 192.168.0.1
Address: 192.168.0.1#53
** server can't find www.bcnet.ne.jp: NXDOMAIN
tcpdump -i eth0
tcpdump: listening on eth0
10:52:15.450763 nyan.bcnet.ne.jp.33846 > 192.168.0.1.domain: \
33807+[|domain] (DF)
10:52:15.453116 nyan.bcnet.ne.jp.33847 > 192.168.0.1.domain: \
27329+[|domain] (DF)
10:52:15.455545 192.168.0.1.domain > nyan.bcnet.ne.jp.33847: \
27329 NXDomain[|domain]
10:52:15.511358 192.168.0.1.domain > nyan.bcnet.ne.jp.33846: \
33807 NXDomain[|domain]
10:52:20.445184 arp who-has 192.168.0.1 tell nyan.bcnet.ne.jp
10:52:20.445622 arp reply 192.168.0.1 is-at 0:0:4c:bc:15:b8
プライベートの ネットワークにも かかわらず問い合わせをしている。
条件変更 resolv.conf を 入れ換え named の 再起動後
nyan:/etc# cat resolv.conf
nameserver 127.0.0.1
===============
nyan:/etc# nslookup nyanta.no-ip.info
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: nyanta.no-ip.info
Address: 9999.3333.p09.123
==============================
tcpdump -i eth0
tcpdump: listening on eth0
11:08:00.645446 nyan.bcnet.ne.jp.33847 > adsl.bcnet.ne.jp.domain: \
10060+ [1au][|domain] (DF)
11:08:00.645616 nyan.bcnet.ne.jp.33847 > adsl.bcnet.ne.jp.domain: \
5030+ [1au][|domain] (DF)
11:08:00.645765 nyan.bcnet.ne.jp.33847 > adsl.bcnet.ne.jp.domain: \
35283+ [1au] NS? . (28) (DF)
11:08:00.645908 nyan.bcnet.ne.jp.33847 > adsl.bcnet.ne.jp.domain: \
14108+ [1au] NS? . (28) (DF)
11:08:00.652247 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33847: \
35283- 13/0/0[|domain]
11:08:00.653919 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33847: \
14108- 13/0/0[|domain]
11:08:00.859644 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33847: \
10060*[|domain]
11:08:00.861400 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33847: \
5030*[|domain]
11:08:05.645184 arp who-has adsl.bcnet.ne.jp tell nyan.bcnet.ne.jp
11:08:05.645634 arp reply adsl.bcnet.ne.jp is-at 0:0:4c:bc:15:b8
=============================================
nyan:/etc# nslookup www.bcnet.ne.jp
Server: 127.0.0.1
Address: 127.0.0.1#53
www.bcnet.ne.jp canonical name = lx.bcnet.ne.jp.
Name: lx.bcnet.ne.jp
Address: 192.168.0.5
注目 プライベートアドレスの場合 内部で処理のため
外部には問い合わせはしないようだ ”tcpdump: listening on eth0”の 出力なし。これらからわかる事は、内部の処理をしてない場合、外部に問い合わせにゆくように
しないとタメなようである。次に /etc/resolv.conf を 下記のようにして
nyan:/etc# cat /etc/resolv.conf
search bcnet.ne.jp
nameserver 192.168.0.8
nameserver 127.0.0.1
nameserver 192.168.0.1
==================================================
18211 ? S 0:00 /usr/sbin/named
18235 pts/0 S 0:00 grep named
nyan:/etc# kill 18211
nyan:/etc# ps ax | grep named
18237 pts/0 S 0:00 grep named
nyan:/etc# /usr/sbin/named
nyan:/etc# ps ax | grep named
18239 ? S 0:00 /usr/sbin/named
18242 pts/0 S 0:00 grep named
named の 再起動後 再確認
nyan:/etc# nslookup nyanta.no-ip.info
Server: 192.168.0.8
Address: 192.168.0.8#53
Non-authoritative answer:
Name: nyanta.no-ip.info
Address: 9999.3333.p09.123
===== tcpdump -i eth0
tcpdump: listening on eth0
11:25:17.695445 nyan.bcnet.ne.jp.33851 > adsl.bcnet.ne.jp.domain: \
44715+ [1au][|domain] (DF)
11:25:17.695617 nyan.bcnet.ne.jp.33851 > adsl.bcnet.ne.jp.domain: \
28493+ [1au][|domain] (DF)
11:25:17.695798 nyan.bcnet.ne.jp.33851 > adsl.bcnet.ne.jp.domain: \
63885+ [1au] NS? . (28) (DF)
11:25:17.695946 nyan.bcnet.ne.jp.33851 > adsl.bcnet.ne.jp.domain: \
28490+ [1au] NS? . (28) (DF)
11:25:17.696256 nyan.bcnet.ne.jp.33854 > adsl.bcnet.ne.jp.domain: \
28481+[|domain] (DF)
11:25:17.702269 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33851: \
63885- 13/0/0[|domain]
11:25:17.703938 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33851: \
28490- 13/0/0[|domain]
11:25:17.874273 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33851: \
44715*[|domain]
11:25:17.876018 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33851: \
28493*[|domain]
11:25:17.877748 adsl.bcnet.ne.jp.domain > nyan.bcnet.ne.jp.33854: \
28481*[|domain]
11:25:22.695184 arp who-has adsl.bcnet.ne.jp tell nyan.bcnet.ne.jp
11:25:22.695625 arp reply adsl.bcnet.ne.jp is-at 0:0:4c:bc:15:b8
=====================================
nyan:/etc# nslookup www.bcnet.ne.jp
Server: 192.168.0.8
Address: 192.168.0.8#53
www.bcnet.ne.jp canonical name = lx.bcnet.ne.jp.
Name: lx.bcnet.ne.jp
Address: 192.168.0.5
=============================
この場合 tcpdump -i eth0 の 出力は何もなくて待機状態と同じである。 ”tcpdump: listening on eth0” 出力がないのは内部のみのやりとりで 外部の問い合わせは無しと考えられる。 プロバイダーの ネームサーバーが あればそれを追記しておくとよいであろう 192.168.0.1 からの外の世界はわからないが、もし この状態で外部に問い合わせを かけてる場合、実際は ”192.168.0.1 ”から 何処へいってるか?が問題である そこで、もしこの場合一々ルートネームサーバーに 行ってるのであれば、プロバイダーのネームサーバーの 情報が得られる場合 ”named.conf” の 現状は
forwarders {
127.0.0.1;
192.168.0.1;
};
いる 項目を 以下のように 変更してみる 価値があるだろう
forward first;
forwarders {
1234.5678.9012.3456; 注意 これは存在しません
7890.1234.5678.9012;
};
こうすれば 一々ルートネームサーバー迄の問い合わせを避けて プロバイダーのネームサービスで解決するのであれば そのところで、問い合わせは終了するので余分な事はしなくてもよくなる。プロバイダーの ネームサーバーが情報を持ってない場合は同じ様になるので意味は無いかもしれないが、最終的にはこれで置き換えておこう まとめると 、”resolv.conf”と ”named.conf”の 該当する箇所を変更してみる。 最終はこうしてみた。まず 、”resolv.conf” はプロバイダーのネームサーバーの IPアドレスを追加 してみた。但し、番号は差障りがあるので変更している。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc# cat resolv.conf
search bcnet.ne.jp
nameserver 192.168.0.8
nameserver 127.0.0.1
nameserver *123.#456.%789.$012 注意 これは存在しません
nameserver *123.#456.%789.$015 注意 これも存在しません
nameserver 192.168.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
次は”named.conf”を 修正する。
nyan:/etc# diff -s named.conf 007_named.conf_rec_yes
39,40c39
< # ここは 以下のように改める。再度変更をかける
< forward first;
---
> # ここは 以下のように改める。
42,48c41,43
< *123.#456.%789.$012; 注意 これは存在しません
< *123.#456.%789.$015; 注意 これも存在しません
< };
< #forwarders {
< # 127.0.0.1;
< # 192.168.0.1;
< #};
---
> 127.0.0.1;
> 192.168.0.1;
> };
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc# tail -59 named.conf | head -6
# ここは 以下のように改める。再度変更をかける
forward first;
forwarders {
&&23.342.761.98;
&&23.342.761.96;
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
の ように変更をかけた、これで再度試験をする。
nyan:/etc# ps ax | grep named
18239 ? S 0:00 /usr/sbin/named
18394 pts/0 S 0:00 grep named
nyan:/etc# kill 18239
nyan:/etc# ps ax | grep named
18396 pts/0 S 0:00 grep named
nyan:/etc# /usr/sbin/named
nyan:/etc# ps ax | grep named
18399 ? S 0:00 /usr/sbin/named
18402 pts/0 S 0:00 grep named
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc# nslookup nyanta.no-ip.info
Server: 192.168.0.8
Address: 192.168.0.8#53
Non-authoritative answer:
Name: nyanta.no-ip.info
Address: 9999.3333.p09.123
=====================================
tcpdump -i eth0
13:13:23.320916 arp who-has adsl.bcnet.ne.jp tell nyan.bcnet.ne.jp
13:13:23.321336 arp reply adsl.bcnet.ne.jp is-at 0:0:4c:bc:15:b8
13:13:23.321360 nyan.bcnet.ne.jp.33862 > dnss34.cricrinet.bt.jp.domain: \
50188+ [1au][|domain] (DF)
13:13:23.321367 nyan.bcnet.ne.jp.33862 > dnss34.cricrinet.bt.jp.domain: \
25094+ [1au] NS? . (28) (DF)
13:13:23.326267 nyan.bcnet.ne.jp.33862 > dnss34.cricrinet.bt.jp.domain: \
45315+ [1au][|domain] (DF)
13:13:23.391860 dnss34.cricrinet.bt.jp.domain > nyan.bcnet.ne.jp.33862: \
25094% 13/0/14[|domain]
13:13:23.393600 dnss34.cricrinet.bt.jp.domain > nyan.bcnet.ne.jp.33862: \
45315%[|domain]
13:13:23.504626 dnss34.cricrinet.bt.jp.domain > nyan.bcnet.ne.jp.33862: \
50188*[|domain]
====================================
なんとなく早くなってるようである。にゃんたろうはそう感じた。真偽はこれ以上わからない、データーを 持っていたら早くなるだろうしそうでなければ時間はかかるであろう 応答時間を見たところであまり意味は無いと考えられる。
nyan:/etc# nslookup www.bcnet.ne.jp
Server: 192.168.0.8
Address: 192.168.0.8#53
www.bcnet.ne.jp canonical name = lx.bcnet.ne.jp.
Name: lx.bcnet.ne.jp
Address: 192.168.0.5
================================
tcpdump -i eth0
========================
この場合当然ながら 外部の問い合わせは発生しないようだ。したがって当分の 間にゃんたろうはこの条件にて運用する。次の chroot の方法で運用するまで。ここで参考迄 に蛇足を書いておきます、一々 named の 再起動を 掛けているのはそうしない とデーターが蓄積されて外部に問い合わせる場合の動作をしなくなるのでクリヤー する目的で行っているのであって正常な使いかたではありません本来一度問い合 わせをすればある有効期限の間はそのデーターを使用するのが本来の使用方法で あるのでこれは動作試験の場合のみ行うということです。拝!