レジストラで登録しているドメイン名で新規のホスト名name03での

DNSサーバを立てました。
そのホストでレジストラに3日前に登録を済ませまており、
/var/log/messagesには特にエラーメッセージも出力されていません。

"/var/named/chroot/etc/named.conf"の記述 (逆引きはなし)
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
recursion no;
notify no;
// hidden version
version "Unknown";

これ以下に外部向けの400くらいのzone設定をしています。

当該name03をDNSサーバに指定するとインターネット接続が出来ません。
digコマンド結果は以下のようになります
#dig @name03.hogehoge.jp ​www.hogehoge.jp
;; AUTHORITY SECTION: name03.hogehoge.jp.
;; ADDITIONAL SECTION: name03のIPアドレス

;; Query time: 27 msec
;; SERVER: name03のIP#53(***.***.**.***)
;; WHEN: Mon Nov 9 12:50:18 2009
;; MSG SIZE rcvd: 116
digコマンドではname03を認識してるようなんですが。。
外部からの問い合わせに答えるようにするにはどうすればよろしいでしょうか。
問い合わせに答えるには、viewの記述は必要でしょうか?
それ以外にどんな設定をすればよろしいでしょうか。

何卒、ご教授頂きたく思います。
よろしくお願い致します。

回答の条件
  • URL必須
  • 1人10回まで
  • 登録:
  • 終了:2009/11/17 03:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

当該name03をDNSサーバに指定するとインターネット接続が出来ません。

これをもうちょっと明確に。

DNSサーバの種類 - ニソラボ - NISOLABS -

どうもコンテンツサーバーとキャッシュサーバーの区別が付いてないように見えるが。


提示の設定だと以下の項目でキャッシュサーバーとしての機能は止めているので、

いわゆるインターネット接続時の DNS としては利用できない。

recursion no;

外部からの問い合わせに答えるようにするにはどうすればよろしいでしょうか。

問い合わせに答えるには、viewの記述は必要でしょうか?

それ以外にどんな設定をすればよろしいでしょうか。

今現在の設定とやりたいことがいまいち明確ではない。

まずはそれをはっきりさせることが必要かと。

id:takahiro-san

ご回答ありがとうございます。

マスターサーバ(コンテンツサーバ)として動作させたいと思っています。(スレーブでもいいのですが)

当該DNSサーバにzoneを持たせる場合には、recursion no;

とする設定と認識していますが、誤りでしょうか。

ちなみに、スレーブとして動作させる時はこの設定はどうなるのでしょうか。

ファイアウォールで当該サーバのセグメントは53ポートを送信元anyで開放しています。

iptabels設定はOSインストール時のままです。

ちなみに自宅サーバではありません。

何か解決に至る情報などありましたら、ご教示お願い致します。

よろしくお願い致します。

2009/11/10 10:34:52

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 goog20090901 637 548 17 2009-11-10 20:00:05
  • id:standard_one
    確認ですが
    ・自宅サーバ
    ・DNS用のポートは開いている(ルータ)
    ・DNS用のポートは開いている(iptables等)
    ということでよろしいですか?
  • id:takahiro-san
    ファイアウォールで当該サーバのセグメントは53ポートを送信元anyで開放しています。

    iptabels設定はOSインストール時のままです。
    特に拒否設定などしておりません。

    また、自宅サーバではありません。

    何か解決になる情報などありましたら
    ご教示くださいませ。

    よろしくお願い致します。
  • id:standard_one
    OSは何を使ってましょう?
  • id:takahiro-san
    ありがとうございます。

    CentOS4.7 finalです

    iptablesはデフォルト設定ですが、
    stopさせました。
  • id:b-wind
    > hogehoge.jp
    該当ドメインは実在するので example.com などサンプル用に予約されたドメイン名を使用してください

    > iptabels設定はOSインストール時のままです。
    初期設定で拒否になっている可能性もある。
    ちゃんと iptables -L の出力結果を確認しないと。

    > ファイアウォールで当該サーバのセグメントは53ポートを送信元anyで開放しています。
    帰りの UDP パケットが考慮されていない様に見える。
    TCP とちがって正確にコネクションが張られるわけではないので、
    src port 53 & src ip 該当サーバー なルールも追加しないとダメ。
    かつ DNS は TCP/UDP の両方を使用する。
    両方とも開けておかないとはまる。

    切り分けのために該当DNSサーバー自体から直接 dig コマンド等を発行してください。

    > 当該DNSサーバにzoneを持たせる場合には、recursion no;
    > とする設定と認識していますが、誤りでしょうか。
    正確に言うと少し違う。
    再帰的問い合わせを禁止するのはキャッシュサーバーとして使用できないようにするため。
    必ずしもコンテンツサーバーだからといって禁止しなければならないわけではない。

    ただ、セキュリティ上コンテンツサーバーとキャッシュサーバーの同居は好ましくない。
    この為結果的にはそのような設定をすること自体は間違っていない。
  • id:takahiro-san
    ありがとうございます

    ■iptables -L出力結果です
    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    ■src port 53 & src ip 該当サーバー なルールも追加ですが
     ファイアウォール設定では
     trust側 src:any 
     untrust側 des:any service:anyで作成してありました。


    optionsにallow-query { any; };を追加しまして
    iptableをstopさせています。
    その後にnamed reloadさせまして、
    数個のドメインに関しては、社内のPCから
    nslookup
    >set type=any
    >www.example.com
    としまして、
    example.com nameserver = name03.exaple.com
    example.com nameserver = name01.exaple.com
    example.com nameserver = name02.exaple.com
    とname03.exaple.comから応答が返ってきています。
    しかし、今のところ数個のドメインのみです
    現時点で整合性のために
    name01とname02のzoneファイルにIN NS name03.exaple.comを追加している途中です。


    ■該当DNSサーバー自体から直接 dig コマンド等を発行です

    #dig @name03.exaple.com

    ; <<>> DiG 9.2.4 <<>> @name03.exaple.com
    ; (1 server found)
    ;; global options: printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36484
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;. IN NS

    ;; AUTHORITY SECTION:
    . 3600000 IN NS D.ROOT-SERVERS.NET.
    . 3600000 IN NS E.ROOT-SERVERS.NET.
    . 3600000 IN NS F.ROOT-SERVERS.NET.
    . 3600000 IN NS G.ROOT-SERVERS.NET.
    . 3600000 IN NS H.ROOT-SERVERS.NET.
    . 3600000 IN NS I.ROOT-SERVERS.NET.
    . 3600000 IN NS J.ROOT-SERVERS.NET.
    . 3600000 IN NS K.ROOT-SERVERS.NET.
    . 3600000 IN NS L.ROOT-SERVERS.NET.
    . 3600000 IN NS M.ROOT-SERVERS.NET.
    . 3600000 IN NS A.ROOT-SERVERS.NET.
    . 3600000 IN NS B.ROOT-SERVERS.NET.
    . 3600000 IN NS C.ROOT-SERVERS.NET.

    ;; Query time: 3 msec
    ;; SERVER: ***.**.**.***#53(***.**.**.***)
    ;; WHEN: Tue Nov 10 15:52:33 2009
    ;; MSG SIZE rcvd: 228

    ## dig @name03.example.com. example.com

    ; <<>> DiG 9.2.4 <<>> @name03.example.com. example.com
    ; (1 server found)
    ;; global options: printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43049
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

    ;; QUESTION SECTION:
    ;example.com. IN A

    ;; ANSWER SECTION:
    example.com. 300 IN A ***.***.**.***

    ;; AUTHORITY SECTION:
    example.com. 300 IN NS name02.exaple.com.
    example.com. 300 IN NS name03.exaple.com.
    example.com. 300 IN NS name01.exaple.com.

    ;; ADDITIONAL SECTION:
    name01.exaple.com. 600 IN A name01のIPアドレス
    name02.exaple.com. 600 IN A name02のIPアドレス
    name03.exaple.com. 600 IN A name03のIPアドレス

    ;; Query time: 1 msec
    ;; SERVER: ***.**.**.***#53(***.**.**.***)
    ;; WHEN: Tue Nov 10 15:54:47 2009
    ;; MSG SIZE rcvd: 168

    何か解決につながる事など
    ありましたら、何卒ご教示頂ければと思います。
  • id:standard_one
    数個のドメインに関しては、社内のPCから

    しかし、今のところ数個のドメインのみです
    ---
    斜め読みで申し訳ないですが、DNSサーバの方のリゾルバはどうなってましょう?
  • id:takahiro-san
    ありがとうございます。

    技術評論から出てます「BIND9によりDNSサーバ構築」本の中に
    ”recursion no;” と設定した場合/etc/resolv.confには
    外部のDNSサーバをリゾルバとして指定するとありますので
    search exaple.com
    nameserver name01.exaple.comのIPアドレス
    nameserver name03.exaple.comのIPアドレス
    として、name03以外のものを優先するようにしています。
  • id:b-wind
    > しかし、今のところ数個のドメインのみです
    数個ってもうちょっと詳しく。
    数個であれ引けてるのであればそこの部分の設定は一応何とかなってるんだろ。
    他が引けないなら個別に設定が違うか設定ミスしかないだろうよ。
    エラーログには何か出てないの?
  • id:takahiro-san
    400ほどドメインがありますので
    全ては確認していません
    今のところ5個ほどです
    ですが、確認できたドメインでnslookupしますと
    name03.exaple.comの表示が消えていることもあります。

    /var/log/messagesは下記のようなものです

    Nov 10 17:38:36 ns03 named[25834]: received notify for zone '****.net'
    Nov 10 17:38:36 ns03 named[25834]: received notify for zone '****.net'
    Nov 10 17:38:36 ns03 named[25834]: received notify for zone '*****.net'
    Nov 10 17:38:36 ns03 named[25834]: received notify for zone '****-***.net'
    Nov 10 17:38:36 ns03 named[25834]: received notify for zone '*****.net'
    Nov 10 17:38:41 ns03 named[25834]: received notify for zone '******.com'
    Nov 10 17:38:41 ns03 named[25834]: received notify for zone '****.com'
    Nov 10 17:38:41 ns03 named[25834]: received notify for zone '******.com'
    Nov 10 17:48:13 ns03 named[25834]: loading configuration from '/etc/named.conf'
    Nov 10 17:48:13 ns03 named: named 再読み込み succeeded

    received notify for zoneはname01サーバにおいて当該ドメインゾーンに
    IN NS name03.exaple.com.を追記しています。
    それが転送されてるのかと思います。
    が、allow-transfer {
    none;
    };
    にしているのですが。。
    よく、わかりません。

    ログからはエラーらしきものは見当たらないと思います。

    よろしくお願い致します。
  • id:b-wind
    >よく、わかりません。
    結局のところどういう構成でどんな設定になっていて
    どういう風に確認したのかがさっぱりわかりませんのでこちらとしても答えようがありません。
  • id:takahiro-san
    確認方法は、ローカルPCで
    nslookup
    >set type=any
    >www.example.com

    確認は2009-11-10 16:09:01で上記の事は記載しています。

    どういう構成かは、
    既にマスターのDNSが2台稼働しています。
    そのうちの1台を潰しますのでname03を作った次第です。

    name03のサーバローカルでリゾルバをnameserver 127.0.0.1で
    yahooや自前管理ドメインを引く事は出来ます。

    また、追記します。
  • id:takahiro-san
    経過として、既に稼動しているname02のDNSサーバを
    レジストラから削除
    レジストラに登録したname03のDNSサーバを
    name02に変更。IPアドレスは未変更。

    ローカルから
    nslookup
    >set type=any
    >www.example.com
    で各ドメインでのnameサーバからの返答を確認しています。
    昨日と比較して返答できるドメインの数は多くなりました。

    DNSサーバローカル上でもwww.yahoo.co.jpとかして
    名前解決が出来ています。

    ですが、ローカルPCのTCP/IP設定から
    name03のDNSサーバを使用するに設定しまして
    インターネット接続出来るか確認しましたが、
    外へのアクセスは出来ませんでした。

    現段階は、name03が持ってるゾーンに対しては名前解決が出来ていると
    思われます。

    それ以外の外向けにアクセス出来ないのは
    named.confにどのような設定を入れればいいのでしょうか。
  • id:standard_one
    気持ち的には「あと一歩なんだから足りないところだけ教えてよ」なんじゃないかと思うんですが、ここはいっちょ落ち着いて最初から全部条件をリストアップするところからはじめてください。
    b-windさんの「結局のところどういう構成でどんな設定になっていて」が指すものは文字通りの意味で「ぱっと自分が気がついたとこだけ」説明してもらっても回答は難しいと思いますよ。
    まずはレジストラにはどんな風に登録されているのか、01がマスタで03がスレーブとか、01と03は全然関係ないDNSとか、もし03がスレーブだったら01の転送設定も直したのかetcetc
    よくよく調べてみたらレジストラに03のローカルIP登録してましたなんてオチは、上記の説明を見てても絶対に見えてこないですしね。
    可能性を列挙しだしたらキリがないので一度全部情報をまとめて仕切りなおした方が結局は早く解決すると思いますよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません