内向けのDNSを立てたはいいがフォワーダに困っている
[EL6]BIND 9.8による内部向けDNSの構築
3連休で暇なので、主にここら辺を見ながらBINDを建てました。
chrootによるファイル移動*1とchown named:named、SELinuxによるchconが本当にうざかった。設定終わってからが長いんだこれ。named起動してmessagesをtailして「permissionなんたら」。named落として修正しての繰り返し。chrootとかrndcとか面倒くさい時代になったなぁと。とにかくchrootのせいでパスが冗長になってウザイの何のって。
最近の流行なのか何なのか、ゾーンファイルに.zoneとか.revとか使わないのね。.dbとか違和感ありまくり。
Selinuxで、bindのログをchrootの下に置く: BlueEyesBlue
そうそう、SELinuxによる制限解除のためのchconはこの辺のサイトにお世話になりました。
SELinuxのログはこんな感じで出力して、messagesとauditで弾かれてる箇所を見つけて、named_cache_tに置き換えました。
tail /var/log/audit/audit.log | grep denied
The SELinux named policy defines these SELinux contexts for named:
named_zone_t : for zone database files - $ROOTDIR/var/named/*
BIND9のFAQより
named_conf_t : for named configuration files - $ROOTDIR/etc/{named,rndc}.*
named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,data}}
まぁいろいろあって、無事エラーなしのnamed正常起動まで漕ぎ着けました。んで、内向けの権威兼キャッシュDNSではありますが、インターネット抜けしてくれなくては、クライアントを自前のDNSに向ける意味がありません。そのためのフォワーダなんだけど、うまく動いてくれない。
間違いなくnamed.confに書いたこれの問題ではあるけど、たかだかお試しに立ててみたDNSのインターネット抜けに「例の13台のDNS」に聞くとか誠に恐れ多い話なので、どうしよっかなーと。ルータは普通に知ってるけどフォワーダとして機能してくれないし、ISPのDNSは全く相手にしてくれない模様。
//フォワーダの応答がない場合、ルートに聞きにいかない。
forward only;
[root]# dig +norec @ルータの内部アドレス www.google.co.jp ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> +norec @ルータの内部アドレス www.google.co.jp ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46742 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.google.co.jp. IN A ;; ANSWER SECTION: www.google.co.jp. 193 IN A googleのグローバルアドレス1 www.google.co.jp. 193 IN A googleのグローバルアドレス2 www.google.co.jp. 193 IN A googleのグローバルアドレス3 www.google.co.jp. 193 IN A googleのグローバルアドレス4 ;; Query time: 16 msec ;; SERVER: ルータの内部アドレス#53(ルータの内部アドレス) ;; WHEN: Sun Jul 20 13:44:35 2014 ;; MSG SIZE rcvd: 98
[root]# dig +norec @ISPのDNS www.google.co.jp ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> +norec @ISPのDNS www.google.co.jp ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 112 ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.google.co.jp. IN A ;; Query time: 14 msec ;; SERVER: ISPのDNS#53(ISPのDNS) ;; WHEN: Sun Jul 20 13:35:14 2014 ;; MSG SIZE rcvd: 34
むーん。おっちゃんが趣味でいじるには、この辺が潮時かなぁ。
FESSよりはいじりがいがあったけど、ルータ・ネットワーク・サービスコンテンツをもっと自由にいじれる環境じゃないと、面白さ半減ですわ、これ。実環境だと胃が痛くなるような部類のお仕事ではありますがw
お次はLDAPあたりなんだろうけど、LDAP立てるほどのユーザも資源もないので、またxcodeでもいじっときますか。
後日、解決しました。
自宅ルータがフォワーダとして機能しなかったのはdnssec-validationの罠でした - せでぃのブログ
参考)
初心者のためのDNS運用入門
http://dnsops.jp/event/20130719/20130719-dns-beginners-guide-mizuno-2.pdf
外向けを作る場合。
内向けDNSと外向けDNSの構築
キャッシュDNSのチューニング。
DNSキャッシュサーバ チューニングの勘所
*1:etc/named.iscdlv.key, named.rfc1912.zonesファイルやらnamed/data, dynamicディレクトリやら