UDP Source Portの再利用について

このQ&Aのポイント
  • フルサービスリゾルバからコンテンツサーバへの問合せに使用されるUDP Source Portは再利用されるのか?
  • Clientからフルサービスリゾルバに再帰問合せを行い、そのフルサービスリゾルバが、目的のゾーンを管理しているコンテンツサーバへの問合せを行う際に使用されるUDP Source Portは、リユーズされるのでしょうか。
  • 実際にパケットをキャプチャして、何度も確認しましたが、同一の結果です。これはBINDの仕様なのでしょうか。(BIND9.2.2を使用しています。)
回答を見る
  • ベストアンサー

フルサービスリゾルバからコンテンツサーバへの問合せに使用されるUDP Source Port

どなたかご回答頂ければ幸いです。 Clientからフルサービスリゾルバに再帰問合せを行い、そのフルサービスリゾルバが、目的のゾーンを管理しているコンテンツサーバへの問合せを行う際に使用されるUDP Source Portは、リユーズされるのでしょうか。 具体的には、 [Client]--->[リゾルバ]--->[DNS Server] ・リゾルバ・・・ac.jpドメインを管理。 ・DNS Server・・・test.ac.jpのサブドメインを管理。 という単純な構成で、 【初回問合せ】 1、Clientからwww.test.ac.jpの問合せをリゾルバへ行う。 2、リゾルバの内部にNSレコードでtest.ac.jpドメインはDNS Serverへ振っているので、リゾルバがUDP Portを1025を使用してDNS Serverへ問合せを行いました。 【二回目の問合せ】 1、Clientから、今度はftp.test.ac.jpの問合せをリゾルバへ行う。 2、繰り返しますがリゾルバの内部にNSレコードでtest.ac.jpドメインはDNS Serverへ振っているので、リゾルバがDNS Serverへ問合せを行いますが、このときUDP Portを、先程の初回と同じ1025を使用してDNS Serverへ問合せを行いました。 実際にパケットをキャプチャして、何度も確認しましたが、同一の結果です。これはBINDの仕様なのでしょうか。(BIND9.2.2を使用しています。) 是非、ご回答のほど宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • suzui
  • ベストアンサー率67% (199/297)
回答No.1

googleで、bind source udp portで検索したところ、 それらしい結果に、 http://www.oreillynet.com/pub/a/network/excerpt/dnsbindcook_ch07/ http://www.bind9.net/BIND-FAQ が引っかかりました。 一つ目のほうには、以下の記述があります。 Normally, BIND name servers choose a source port to use for outbound queries when they start, which means you must allow DNS messages from any unprivileged port. 起動時にクエリー用のソースポートが決まるという動作がデフォルトだということですね。 いちいちクエリーごとに別のポートを使ったりはしないようです。 ポートを特定のものに設定することもできるようです。 options { directory "/var/named"; query-source address * port 1053; }; この例の場合、ポート1053に固定していますね。

参考URL:
http://www.oreillynet.com/pub/a/network/excerpt/dnsbindcook_ch07/

その他の回答 (1)

  • suzui
  • ベストアンサー率67% (199/297)
回答No.2

先の回答で、クエリー用のポートを固定できるという内容のコメントをしましたが、推奨しているわけではないので念のため補足します。 そもそも、セキュリティの観点からはクエリーに特定のポートを使い続けるような実装は薦められません。 できれば、BIND以外のキャッシュサーバ(dnscacheなど)をお使いになったほうがいいです。 それから、最悪、BINDを使い続けるとしても、キャッシュとネームサーバは分離したほうがいいです。 すでにご存知でしたらすみません。蛇足でした。

参考URL:
http://djbdns.qmail.jp/djbdns/forgery.html,http://djbdns.qmail.jp/djbdns/separation.html
icehorn
質問者

お礼

suzui様 No.1、No.2のご回答誠にありがとうございます。 正直、回答が付かないかも。。。と思っていましたが、 まさに『ビビビビビッ!!!』というくらいビンゴなご回答を頂きました。 本当に助かりました。 ありがとうございます。

関連するQ&A

  • BINDのNSレコードに指定するDNSサーバについて

    お世話になります。 現在運用しているDNSサーバ(BIND9)で、新たなドメインを管理する予定なのですが、 そのドメインのゾーンファイルに記載するNSレコードについて質問です。 なお、レジストラにてそのドメインは取得済みで、DNSの登録はまだの状態です。 ゾーンファイルのNSレコードに記載したDNSサーバと同じものを登録するべきかと 考えていますので…。  DNSサーバ:ns.example.co.jp   (example.co.jpは自社で既に運用しているドメインです)  新たに管理するドメイン:newdomain.com とした場合、newdomain.comのゾーンファイルには、NSレコードとして      IN   NS   ns.example.co.jp.  (方法Aとします) と記載するものと考えていました。 しかし他の人から、「この書き方の方が、newdomain.comを管理するDNSサーバは どこか問い合わせがきた場合、回答が効率良く行われる」 と言われ以下の書き方を進められました。      IN   NS   ns.newdomain.com   ns  IN   A    [ns.example.co.jpのIPアドレス]  (方法Bとします) ここで質問なのですが、方法A,Bでnewdomain.comを管理するDNSサーバを回答するまでの 流れが変わるのでしょうか。 レジストラにDNSを登録するので、どちらの方法でルートサーバから辿っていっても、 最終的にレジストラに登録したDNSサーバが回答されると思うのですが、方法Bのほうが 効率が良いというのが理解できません。 NSレコードでDNSサーバを指定する場合、管理するドメインと同じドメインのホストで あるほうが良いものなのでしょうか。 ご存知の方が居られましたら、ご教示いただけますでしょうか。 よろしくお願いいたします。

  • 外部DNSの情報取得

    外部に公開しているDNSサーバでわからないことがあります。 例えば、web.test.comドメインがあったとして その配下に、 ns1.web.test.com(DNSサーバ) web1.web.test.com(web1サーバ) web2.web.test.com(web2サーバ) mail1.web.test.com(mai1サーバ) 設定がbindで行われているとします。 ns1.web.test.comサーバにて ns1=NSレコード web1=INレコード web2=INレコード mail1=MXレコード という設定になるかな とおもっています。 このとき、web.test.comドメインで管理している INレコードをインターネット上の端末から 取得することは出来ないのが普通なのでしょうか?(取得できる=セキュリティが良くない?) (set type=MX | NS とすればMXまたはNSレコードが取得できるのは知っているのですが。) Windowsのnslookupで取得できないか考えております。 ご教授よろしくお願いします。

  • bind9のNSレコードを返す設定について

    DNSサーバ(bind9)のNSレコードを返す設定について質問させて下さいませ。 DNSサーバ#0と、DNSサーバ#1の、2つのDNSサーバがあったとします。 DNSクライアントが、DNSサーバ#0にexample.comのAレコードを問い合わせたとき、DNSサーバ#0がDNSサーバ#1のNSレコード(ns.dnsserver1.com)を返す設定をご教示願います。 現在、DNSサーバ#0に下記のようにzone設定を入れたところ、DNSサーバ#0はNSレコードを返さずに standard query respnse, No such nameを返してしまいます。 //named.conf.default.zone zone "." { type master; file "/etc/bind/all.zone"; }; //"/etc/bind/all.zone" $TTL 3600 @ IN SOA ns.dnsserver0.com. root.dnsserver0.com. ( 2000091801 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS ns.dnsserver1.com. ns.dnsserver1.com IN A aaa.aaa.aaa.aaa(IPアドレス) 宜しくお願い致します。

  • コンテンツサーバにおけるDNSSECの必要性

    webサイト運営用に専用サーバーをたてています。
 
サブドメインなどの管理する為の、権威ネームサーバーをBIND9.8で設定しているのですが、
DNSSECの必要性をお教えいただけませんか?

 コンテンツサーバーのみを立て、キャッシュサーバーは立てません。

 サブドメインなど、自分の管理するゾーン情報のみに答え、再帰的問合せを許可しない、(recursion no;)。このようなコンテンツサーバーです。 

いろいろと検索して調べているのですが、
キャッシュポイズニングは、キャッシュサーバーに仕掛ける攻撃なので、
再帰的問合せを無効にした、キャッシュサーバーとしての機能がなければ、DNSキャッシュポイズニング攻撃そのものを回避できる(DNSSEC不要)と書かれているものがあれば、コンテンツサーバーにもDNSSECは必要であるという記事も多く見ます。 

コンテンツサーバーのDNSSEC設定は少し難しそうですし、サイトを稼働しながらのKSK、ZSKの更新など、不安要素があるので、できることなら避けて通りたいのが正直なところです。 
※もちろん必要であれば設定しますが。 

どなたかご教授いただけませんでしょうか。

  • サブドメインの追加方法

    windows2000server + bind8.3で example.comというドメインのDNSサーバー ns.example.comをたてているとして、 Red Hat Linux 9 + bind9.2で aaa.example.comというサブドメインのDNSサーバー ns.aaa.example.comを構築しているのですが、うまくいきません。 クライアントでDNSをns.example.comに指定すると aaa.example.comが見付かりません。 でも、DNSをns.aaa.example.comにすると 問題ないので、ns.aaa.example.com側の設定はあっていると思います。 一つ気になるのが 親サーバー側の設定でaaaというホストを 設定してるだけなので これが違っているんじゃないかなとは思っているんですが。 よろしくお願い致します。

  • Linux UDPサーバーに対するクライアント数

    CentOS release 4.6(カーネル 2.6.9-67)上でUDPサーバーを開発していますが、同一ポートに対して複数クライアントからの通信を確認しています。250クライアント位までは同時通信してもパケットロスはほとんど発生しないのですが、250クライアント以上で同時通信を行うと、最大250クライアント位まで通信可能ですが、残りのクライアントについてクライアントからのパケットロスが発生します。 UDPなので多少のパケットロスしかたないのですが、なぜ最大250クライアント位までしか同時通信ができないかを調べています。 UDPサーバー側の送受信バッファはソケットオプションで大きめに設定しています。 カーネルパラメータやソケットオプションなどで、同一ポートに対しての同時通信が可能なクライアントを制限するようなパラメータはあるのでしょうか? 有識者の方がいましたらご教示下さい。 宜しくお願いいたします。

  • 特定ホストの名前解決を移譲したい

    example.co.jp ドメインに属するホスト www1 の名前解決を、example.co.jp の DNSサーバから別の DNS サーバに委譲する事は可能でしょうか。 example.co.jp ドメインの管理を ns1.example.co.jp で管理しているとします。 (セカンダリは、割愛します) この時、特定の ホスト www1.example.co.jp の名前解決を他の DNSサーバ(ns2.some_service.com)に移譲する事は出来るでしょうか。 ns1 への www1 に関する問い合わせを ns2 にフォワードし、ns2 からクライアントへ解決結果を返すというイメージを期待しています。 有る重要なサービスを提供するホストの名前解決をよりサービスレベルの高い DNS サービスに委譲し、災害時等にそのサービスにてレコード情報を変更して DR サイトの IP アドレスを返す。 と言ったことをやりたいために、この様な事が実現できないかをご教示ください。

  • 独自ドメイン構築時の設定

    独自ドメインを作成し、外に公開する練習をしたいと思っております。 ただ、DDNS使用時と異なり、「必要な機器に対する設定内容」がわからないのです。 【独自ドメインによる設定したいこと】 1.独自ドメインを取得 2.DMZネットワーク、「192.168.100.0/24」を作成。 3.DMZネットワークにDNS1サーバ、Web1サーバを設置 4.外部DNSに、WebサーバのAレコードの設定 というのを流れを考えております。 設置するDNS1、web1サーバは、 「DNS1:192.168.100.1/32」 「Web1:192.168.100.2/32」 のプライベートアドレス、「192.168.100.0/24ネットワーク」に設置しようと考えております。 ルーターは、Aterm8700 を使用しております。 【1.DDNS使用時のサーバー設定】 1.DynamicDNS(Dynamic.DO!様)に、使用したいドメインを登録。  ⇒test.ddo.jp とします。 2.webサーバーを設置。(pop3、smtpの設定をしているとします。) 3.クライアントからwebサーバーへのアクセス。「http://test.ddo.jp」を設定。 【DDNSの時のパケットの流れ】 流れ1.クライアントからブラウザによるアクセス。 流れ2.Dynamic.DO!による名前解決 流れ3.Aterm8700のグローバルIP 流れ4.AtermによるグローバルIP:80番宛のパケット ⇒ 内部のwebサーバーへの変換(ポートマッピング設定) 流れ5.Webサーバーへのパケット到達。 流れ6.クライアントに、index.htmlの表示 という流れで、理解できているので、 【DDNS使用時の必要な設定は】 1.「Aterm8700のポートマッピング設定で、80番宛のデータは、内部のwebサーバーへ転送する。 (=ポートマッピング設定) 」 ⇒使用するアプリケーションから問い合わせるポート番号を、該当するサーバIPに紐づける。 と理解できるのですが、 独自ドメイン構築時の設定はどうしたらいいのでしょうか? 【2.考えている独自ドメインの流れ?】 例えば、「test.info」とムームードメイン様で取得した場合 クライアントから「web1.test.info」とアクセスする際、 流れ1.ムームードメイン様で、「web1.test.info」の名前解決 ⇒名前解決のためAterm8700のグローバルIPが返る? 流れ2.Aterm8700で、ポートマッピング設定で、「53番ポートに対しての問い合わせ」は、「DNS1サーバ1:192.168.100.1/32」のIPを返すように設定する? 流れ3.クライアントが、「DNS1.test.info」サーバにアクセスしてくる? 流れ4.DNS1サーバが、web1サーバの「Web1:192.168.100.2/32」アドレスを返す? 流れ5.クライアントがweb1サーバにアクセスして、index.htmlが表示される? と考えております。、 流れ4まで、クライアントがアクセスしてきて、web1の名前解決をしても応答されるアドレスが 「Web1:192.168.100.2/32」 になり、インターネットからweb1サーバーにアクセスできないのではないか?と思っております。 【独自ドメインを取得後、必要な設定は何になるのでしょうか?】 必要手順1.Aterm8700のグローバルIPには、test.infoの名前解決53番のパケットだけが来る? ⇒よって、53番宛は、DNS1サーバに送信するよう、「グローバルIP:53→DNS1サーバ:53」へのポートマッピング設定を行う。 必要手順2.Web1サーバの問い合わせによる、DNS1サーバの応答:プライベートアドレス 「Web1:192.168.100.2/24」に問題はないのか? ⇒この設定で、普通にインターネットからアクセスできるものなのでしょうか? 【質問】 1.Aterm8700に設定するポートマッピング設定は、UDP53番に対するアドレス変換だけで  事足りますでしょうか?  ⇒Web1サーバアクセス時のTCP80番ポートは開けておく必要もいると思っているのですが…。   そうなると、メールサーバを今後追加した時も、SMTP25や110も開けておく必要がありますか。 2.DNS1サーバーが返すWeb1サーバのアドレスは、グローバルIPでないとダメな物なのでしょうか?  プライベートのDMZは使えないのでしょうか? ご教授よろしくお願いします。

  • DNSサーバー問い合わせ時のルーターまでのプロセス

    使用している家庭用のルーターには、LANポートが複数あり それぞれのLANポートにパソコンをつないでいます。 そのポートの内の1つにつないでいるパソコンAは、DHCPサーバーとして機能しているルーターから プライベートIPアドレス(192.168.100.2/24) を与えられ DNSサーバー(192.168.100.1) の情報も与えられています。 ルーターのプライベートIPアドレスは 192.168.100.1 です。 パソコンAは、ARPテーブルで 192.168.100.1 のMACアドレスを知っているとします。 あるネット上のサーバーのIPアドレスを知るために パソコンAからDNSサーバー(192.168.100.1)へ問い合わせをする時、 そのパソコンAからルーターまでのプロセスについてですが 1 パソコンAのDNSリゾルバキャッシュに そのサーバーのドメインのIPアドレス情報があるかをまず調べる。 2 なければ、DHCPサーバーとして機能しているルーターから与えられたDNSサーバー情報に基づいて DNSサーバーのIPアドレスが192.168.100.1であると分かる。 3 そのIPアドレス(192.168.100.1)に基づいてパソコンAのARPテーブルからDNSサーバー(192.168.100.1)のMACアドレスを割り出し そのMACアドレスを含んだMACフレームを送信する。 その時のIPヘッダの送信先IPアドレスは192.168.100.1。 4 ルーターはMACフレーム内の送信先MACアドレスがルーター自身のMACアドレスであることから 自身で担当すべきMACフレームであると判断し、そのフレームの処理を引き受ける。 以上で正しいでしょうか?

  • 個人DNSサーバーを使用した運営について

    先日、玄箱(非HG)を購入し、bind8を導入して自宅にてDNSサーバーを運用することが出来たのですが、そのDNSサーバーを使用したウェブサーバーの運用で困っています。 お名前.comにてドメインを取得し、DNSサーバーのホスト名、及びIPアドレスを登録していざ自分のホームページにアクセスしようとすると、「ページが表示されません。」とエラーが返されます。サーバーが存在するネットワークでは正常に自分のホームページが表示されるので、もしかすると、自宅で使用しているADSLのルーターが邪魔をしているのではないかと思いました。ポートの開き方は色々な本を調べて分かったのですが、DNSを使用するときはどこのポートを開けば、ルーター外部からルーター内部のDNSサーバーに接続する事が出来るのでしょうか? ご教授頂けると幸いです。宜しくお願いします。 尚、DNSサーバー、及びウェブサーバーが正常に動作していることは確認済みです。