Bind失敗記録2-成功

前回Bindの失敗を書きました。その続きを今回は書きたいと思います。Bind失敗記録1では、ログをはって送信ができていたのでzoneファイルやconfファイルが原因でサイトが見れなかったわけではなかったでした。では一体なにが原因でみれなかったのか?そこを書いてみたいと思います。そして同時にそれを変えたとたんサイトの閲覧ができるようになりました。

新しくBind設定公開の記事でconfファイル等ダウンロードできるようにしてあります。

ファイルは問題なかった

僕はBindの事が書いてあるサイトを見てBindは起動しているけどサイトが閲覧できない=zoneファイルに問題がある。どこかでこう決めつけていたと思います。そのため、ファイルを書き直したりしていました。何が外引きで何が内引き(逆引き)かもわかんないくらいで最終的にはzoneファイルが足りないのかな?っても思いました。

けれども、結果論ではありますがzoneファイルには問題なかったのでした。問題ないとわかるのはdigコマンドで何回やっても正引きも逆引きもできていたからというのもありました。視野がせまかったのがいけなかったと反省をしています。

hostsファイル?resolv.confファイル?

Bindをやるうえで必要なのはhostsファイルと/etc/resolve.conf ファイルの記述です。調べていてわかったのがここの二つに記述を忘れるというケースがあるというのでした。hostsファイルにローカルホストのIPとクライアントのIPを記述しないといけないとか、hostsファイルには書き込んではいけないとか色々ありました。

素人の僕からすればどっちが正しいのかはわかりません。おそらくどっちも正しいのかもしれません。ただhostsファイルには書き込まない方がよいというのはあるかもしれないですが、かかなくてもできるならそれは嬉しいです。

僕は自分のサーバーを確認したら以下のようになっていました。

  • hostsファイル:ローカルホストのIP、グローバルIPが記述されていた
  • resolv.conf:別のグローバルIPアドレスが二つ記述されていて、サーバーのローカルホストのIP、グローバルIPは記述されていない

そこで、最終的にhostsファイルはローカルホストのIPアドレス127.0.0.1だけを残してグローバルIPはコメントアウトしました。次にresolv.conf ファイルには自分のグローバルIPをいれました。
※resolv.conf ファイルに自サーバーのグローバルIPアドレスをいれるのはDNSの検索対象にするためです。
※試行錯誤の結果いまのようにしたのであってそれまでは色々書いたり消したりしていました。

それでも見れないサイト

記述をしてもみれなかったです。何が違うのだろうと思いました。ファイヤーウォールでTCPの53番もあいていて、他のドメインだと空いている確認もとれていました。それでもみれませんでした。

原因はポートにあった

調べていてあるサイトをみていたらこんな一言がありました。

TCPポートはあいていたのですがUDPポートが開いていますか?

この一言を見て自分はあれ?そうえば僕のとこは両方あいているのかな?って思いました。すぐに確認をしてみたらTCPの許可しかない。webminの画面でみたら宛先がTCPだったら許可みたいな文言がみえました。もしかしてUDPが開いていない?開いていない可能性があるのか。そうおもってUDP53をあけたらサイトの閲覧ができました!

まとめ

  • hostsファイルはローカルホスト127.0.0.1の設定だけを書く
  • resolv.confファイルに自分のグローバルIPアドレスを記入しておく
  • TCPとUDPの53番をあけておく。

digコマンドやnslookupで正引き、逆引きができていたときはべつのとこを気をつけてみればもっと早く解決するかもしれないですね。そう思いました。いい経験になりました。

Bind設定公開に設定ファイルを公開

logwで使っているBindの設定ファイルをダウンロードできるようにしておきました。是非参考程度にしてください。当サイトはサーバー初期化後はchrootを導入しています。