このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

OS X 10.3のBINDについて

発言者:SAT
( Date Tuesday, October 05, 2004 01:26:50 )


OS X v10.3に標準インストールされているBIND9ですが、単なるDNSキャッシュサーバとして
動作させてみたところ、スムーズに名前解決をしてくれない現象が多々ありまして、
その原因が分からずに困っています。
具体的な症状は以下の通りです。

 ・WebブラウザでWebページにアクセスを試みるも、”サーバが見つかりません”の類いのダイアログが表示される
 ・続けてもう一度リクエストを送ると名前解決が出来るのか、普通にページが表示される
  (多くの場合、2度目のリクエストでアクセス出来ますが、3、4度リクエストを送らないとアクセス出来ない場合もある)
 ・一度アクセスに成功すればキャッシュに登録されますので、キャッシュが残っているあいだは問題なくアクセス出来る

基本的にnamed.confなどの設定ファイルはインストール時のままのものを使用、単にBINDを起動した状態で、
クライアント(というか、サーバ自身をクライアントとして検証)のDNSサーバ指定を127.0.0.1にしての動作です。

また、PowerMacG5(OS X 10.3)、PowerMacG4(OS X  Server10.3.5)、PowerBookG4(OS X 10.3.5)などで試しましたが、
どれも同じ現象でした。

ちなみに同じ条件でOS X 10.2(BIND8)では特に問題なくアクセス出来ますので、BIND9においては
何らかの設定が必要なのかな?と思うのですが、何が問題か見当がつきますでしょうか?

分かる方が居られましたらよろしくおねがいします。

森下 さんからのコメント
( Tuesday, October 05, 2004 08:12:02 )

回答ではないですが、何となく、クライアント側の問題のような気がします。
うちでは、別建てのRhapsody ServerでBIND9が動いており、
そこに、Mac OS XのSafariから名前解決させると、たまに同じような症状になるのですが、
WinのIEから名前解決させた場合、今までのところそのような症状は出ていません。
ご参考までに。

万作 さんからのコメント
( Tuesday, October 05, 2004 10:22:24 )

私のところでもSATさんと同じ症状に悩まされています。
iMac266(5色)上のOS X  Server10.3.5でデフォルトの
BIND9を動かし、LAN内からの名前解決用に使っていますが、
Safariからだとまったく同じ状態になります。

アップルのサイトのディスカッションボードにも、Safariの項目に
「リンクで「サーバが見つかりません」」というタイトルで同様の症状に
悩んでいる人からの投稿があります。
2ちゃんでも似たような話を見た記憶があります。

また森下さんと同様にWinのIEからだと何の問題もありません。

あまりちゃんと検証はしていませんが、クライアントのOS X 10.3.5からだと
IEやモジラ、シイラやカミーノでも同じ症状が頻発します。

ハッキリとは覚えていないのですが、何回か前の
セキュリティ・アップデートをかけてから症状が悪化したような気がします。
やはりBINDの問題ではなく、クライアントとしてのMacOS X 10のせいなのでしょうか?

SAT さんからのコメント
( Tuesday, October 05, 2004 17:44:11 )

森下 さん、万作 さん、情報をありがとうございます。

私以外の環境でも似たような現象が怒り得るようで・・。
少し違うかもしれないのは、私の環境ですと、かなり頻繁に問題の症状が起こる事です。
”たまに”ではなく、通常の使用に於いて不便を感じるくらいの頻度(体感で6割以上?)で、
とても実用には堪えられません。
あと、WinのIEでチェックしてみたところ、アクセスは出来ますが、名前の解決に時間が
かかるようで(4〜5秒くらい)、非常にストレスを感じます。
なので、WinのIEからは問題が起きないというお二方とは微妙に原因が異なるのかな?と思ったりもしています。
あと、OS X のClassic環境から、標準インストールされているネスケでアクセスしてみたところ、
アクセスは出来るものの、WinのIEと同じく、名前解決に時間がかかりました。


OS X 10.3.x の場合、IEでもSafariでも同様に問題の症状が起こります。
メールサーバへのアクセスも同じです。

BINDのログを見てみましたが、4度程リクエストを送っているようですので、その間に名前解決が
出来ないとエラーになるのかな?という感じです。
WinのIE、Classic環境のネスケからのアクセスログでは、5度程リクエストを送ったところで名前解決に成功しているようです。
(正確なログの見方を把握していないので間違えがあるかもしれませんが・・)

念のための確認なのですが、万作さんのところでは、WinのIEからですとアクセスに時間がかかったり
という現象はないということですよね?

万作 さんからのコメント
( Tuesday, October 05, 2004 23:15:21 )

>念のための確認なのですが、万作さんのところでは、
>WinのIEからですとアクセスに時間がかかったり
>という現象はないということですよね?

SAT さん、スミマセン。ちゃんと検証してみたら、うちもやはりWin98のIE6からの名前解決に
手間取っているようです(3〜4秒)。自分では普段Mac OS Xしか使っていないのと
Win IEは結局タイムアウトしないでつながるのでこれまで気がつきませんでした。
(Win XPについてはいま手もとにないので明日以降に試してみます)

ちなみにWin IEからのログはたとえば次のようになっていますが、
これは名前解決に「3度目の正直」で成功し、その間4秒ほどかかっていると
いうことでしょうか?(私も詳しくないのでよくわかりませんが)
Oct 05 21:15:53.391 createfetch: www.××××××.com A
Oct 05 21:15:54.896 createfetch: www.××××××.com A
Oct 05 21:15:57.400 createfetch: www.××××××.com A

次はMac OS XのSafariからアクセスした時のログのサンプルです。
こちらは「みつかりませんでした」という結果に終わっています。

Oct 05 21:11:10.078 createfetch: www.××××××.or.jp A
Oct 05 21:11:11.488 createfetch: www.××××××.or.jp A
Oct 05 21:11:12.900 createfetch: www.××××××.or.jp A
Oct 05 21:11:14.310 createfetch: www.××××××.or.jp A
Oct 05 21:11:16.533 createfetch: www.××××××.or.jp A
Oct 05 21:11:17.950 createfetch: www.××××××.or.jp A
Oct 05 21:11:18.232 createfetch: www.××××××.or.jp AAAA

ところで、あてどなくgoogleっていたら、いくつか似たような状況を発見しました。
どうもIPv6が絡んでいるようなのですが、私たちが突き当たっている問題とそれらが
はたして同じや否や、私の能力ではお手上げです。

○The Unofficial Fedora FAQ 日本語版
「いくつかのウェブサイトの表示が遅い」
http://yanbaru.dyndns.org/linux/fedora2faq.html#mozillaipv6

○candyさんの「びーえすでぃー日誌」
「のろいの bind9!! の巻」(9月27日)「のろいの bind9 (解決編)!! の巻」(9月30日)
http://www.bsddiary.net/d/news.html?09101429

SAT さんからのコメント
( Wednesday, October 06, 2004 04:30:13 )

万作 さん、有用な情報ありがとうございます。

どうもIPv6絡みというのが怪しい気がします・・・。
ご紹介いただいたリンク先に書かれている動作に"comドメインなどは問題なく、
jpドメインで問題が起きる"といった記述がありますが、確かにcomドメインの
URLですとほぼ問題なくアクセスできるようです。
(日本企業などが所有するcomドメインですと、jpドメイン同様の問題が起きるようですが)
まだザッと確認してみただけですので定かではありませんが、また明日以降、何か気づきましたら
お知らせいたします。


SAT さんからのコメント
( Thursday, October 07, 2004 19:22:21 )

いろいろ手間取って検証が遅くなりました。

結局、ご紹介いただいた、candyさんの「びーえすでぃー日誌」にある現象と
同じだということがわかりました。
試しに、bind9.2.2を再インストールし、インストール時に
configure --disable-ipv6
とすることで問題の症状は起こらなくなりました。やはりIPv6が原因のようですね。

ただ、UNIXに関して、まだまだ勉強不足な私としては、標準インストールされているものを
差し替えるのは危険かな…という思いがありまして(特にOSXServerの場合)、
このまま運用するかどうかは検討中です。
(そもそも再インストール関連の手順が正しいか微妙だったりなもので…)

インストール済みのbind9に対して設定変更する事で対応出来ればいいんですが、
bind9のIPv6の有効無効(?)はインストール時にしか設定出来ないんでしょうかね。
探した限りでは見つかりませんでしたが…。
システム環境設定でIPv6を切にすることで対応できないかとも思いましたがこれはダメでした。

何にせよ、情報をいただいたおかげで原因がわかり、助かりました。
ありがとうございました。



SYN さんからのコメント
( Friday, October 08, 2004 09:25:46 )

初めて投稿します。

私は Mac OS X 10.2.8 上のBIND8をキャッシュサーバとして使っていて同じような問題がでるので、ここを参考にさせて頂きました。
クライアント機は Mac OS X 10.3.5 なので、ネットワーク環境設定でIPv6を無効にしてみましたが、これでは解決出来ませんでした。

ターミナル上で dig を使うと、
Truncated, retrying in TCP mode.
となった後にタイムアウトします。

そこで、サーバマシンのファイアウォール設定でTCPの53番ポートを開けたところ、正しく応答が返って来るようになりました。
その後、一晩使っていますが、問題ないようです。

あちこち調べてみると、DNSの応答がUDPのパケットサイズを超える時にこの問題が出るらしい気配がしました。
確かに、www.google.com などのように AUTHORITY SECTION や ADDITIONAL SECTION が特別多くあるドメインで起こっている気がします。

というわけで、他の方に当てはまるかわりませんが、私のところはこれで解決しましたのでご報告まで。

竹内 さんからのコメント
( Wednesday, November 10, 2004 07:44:06 )

わたしも同様の現象に非常に悩まされていたんですが、
Mac OS X Server 10.3.5のBIND9.2.2を
./configure --disable-ipv6
でビルドしなおしたBIND9.3.0に入れ替えることで完璧に解決しました。
BINDのバージョンをあげたのは、せっかくだからということで別に意味はありません。

しかし、Software Updateでまた入れ替わったりしそうなので、ちょっと面倒ですね...。

万作 さんからのコメント
( Tuesday, June 21, 2005 11:55:30 )

根本的な解決策ではありませんが、X server10.3.9 の BIND9.2.2 で
named.conf の options に forwarders を指定(プロバイダのネーム
サーバ)することで、とりあえず回避できました。
(体感だけで未検証ですが・・・)

options {
    (略)
      forward only;
      forwarders { xxx.xxx.xxx.xxx; };
};

(xxx.xxx.xxx.xxxはプロバイダのネームサーバのIP)

ところで、Tiger Server ではどうなっているんでしょうかねえ?