このページでは固定IPアドレス一個で運用するDNSサーバーポートフォワーディングの動作確認についてビギナー向けに解説します。
サーバーのセットアップ
固定IPでDNSサーバー構築

固定IPでDNSサーバー構築

ブートファイルの基本設定

WAN用ゾーンファイルの作成

ポートフォワーディングの設定

WAN空間からのDNSチェック

スレーブDNSサーバーの設置

DNSサーバとドメイン名の登録

レコードの書き換えについて

スレーブDNSサーバーを設置する前の動作チェック

ルーター ポートフォワーディング の設定を行って、 WAN 空間からの 名前解決 が可能な状態になったら、スレーブDNSサーバーを設置したり 構築中のLinuxサーバー を正式なDNSサーバーとして登録したりする前に、 WAN側からの名前解決テストを行うようにします

自宅で複数の ISP とインターネット契約を行っていて、 構築中のLinuxサーバー の入っている サブネット とは別のサブネットからインターネット接続が可能な場合には、そこからアクセスして確認するのが簡単ですが、そういう通信環境がない場合は勤め先や学校、インターネットカフェなどから確認することになります。

テストの内容は名前解決ですから、テストを行う クライアント LinuxOS である必要はありません。

ルミカショップへようこそ
管理人がお手伝いしたサイトです。 一度お越しくださいね!。

Windows2000 以降の WindowsOS であれば、 コマンドプロンプト から nslookup コマンド が利用できますし、 MacOSX ターミナル が利用できればLinuxOSと同じように、更に host dig コマンドを利用することも出来ます。

ここではWindowsOSのコマンドプロンプト上で nslookup コマンド使った例を紹介しますが、同じコマンドでも OS によって使い方が微妙に異なりますので、詳しくはそれぞれのOSのコマンドリファレンスを参照してください。

DNSサーバーの構築に、
とても役に立った一冊です

また、「チェックだけのためにわざわざ外出したくない。」という方のためにこのパートの後半に お便利サーバーからチェックを行う スクリプト を設置していますので、よろしれけばご利用ください。

「権威ある回答」動作の確認

"/etc/named.conf" WAN 側用に追加した ゾーン名 WAN/LAN用ブートファイル/etc/named.confの作成 と、そのゾーンが指し示しているゾーンファイル WAN側用のゾーン設定 の内容が、WAN側から 「権威ある回答」 として 名前解決 されることを確認します。

この場合は nslookup コマンド に詳細表示のオプションスイッチを付けて、

nslookup -type=any [ゾーン名( ドメイン名 )] [自宅のWAN側 IPアドレス ]

と実行します。

もしも "211.183.111.3x" ISP から逆引きの FQDN が設定されていないときは、その代わりに ルートサーバー の情報が盛大に表示されます。もちろん異常ではありませんので驚かないでください。
C:\> nslookup -type=any obenri.com 211.183.111.3xEnter
Server:  ["211.183.111.3x"の逆引きのFQDN]
Address: 211.183.111.3x

obenri.com
    primary name server = web1.obenri.com
    responsible mail addr = dnsadmin.obenri.com
    serial = 2007022601
    refresh = 120 (2 mins)
    retry  = 900 (15 mins)
    expire = 604800 (7 days)
    default TTL = 120 (2 mins)
obenri.com   nameserver = web1.obenri.com
obenri.com   MX preference = 10, mail exchanger = mail.obenri.com
web1.obenri.com internet address = 211.183.111.3x
mail.obenri.com internet address = 211.183.111.3x


C:\>

このように、 WAN側用のゾーン設定 で設定した "/var/named/obenri.com.wan.zone" の内容が正しく返ってくればOKです。

ここでLAN側用のゾーンファイルの内容が表示されてしまうときは、 "/etc/named.conf" WAN/LAN用ブートファイル/etc/named.confの作成 "view" キーワードの記述方法に誤りがありますので修正が必要です。

また、現在も ダイナミックDNS を利用中でそのパラメータが表示されるときは、 "/etc/named.conf" WAN/LAN用ブートファイル/etc/named.confの作成 のWAN側用のゾーンの記述に誤りがあり、なおかつWAN側に対して DNSキャッシュ が有効になっていますのでこれらを修正してください。

さて、この方法で名前解決が正常に行わない場合には色々な原因が考えられます。

1. ポートフォワーディング が正しく設定されていない。

ルーター の設定を確認します ポートフォワーディングの設定 。これに間違いがあると、いくら 構築中のLinuxサーバー をいじっても状況は変わりませんので真っ先にチェックしましょう。

2. 構築中のLinuxサーバー 上にファイヤーウォールが設置されている。

この コンテンツ に従って WBEL CentOS インストール が行われていればファイヤーウォールは設置されていないはずですが ファイヤーウォールの設定(WBEL3) ファイヤーウォールの設定(CentOS3) ファイヤーウォールの設定(WBEL4) ファイヤーウォールの設定(CentOS4) ファイヤーウォールの設定(CentOS5) 、心当たりのある方(例えば他の ディストリビューション をご利用の方)はチェックが必要かもしれません。

3. named が稼動していない。

こういうウッカリミスもあるかもしれませんので確認してみましょう namedのコントロール

4."/etc/named.conf"の"view"キーワードの記述ミス。

WAN側と LAN 側のゾーン記述の振り分け方法を間違えると、WAN側には何のゾーンも提示されず、結果的にnamedは動作していない場合と同じ振る舞いをしますので、記述内容をきちんと確認します。

5."/etc/named.conf"の中に指定したゾーンファイル"/var/named/obenri.com.wan.zone"が実際は存在していない。

稀なケースかもしれませんが、こういう場合namedは「ゾーンが存在しない」と判断したうえでそのゾーン情報を無視して正常に稼動してしまいますので、意外にミスに気付きにくいものです。例えばゾーンファイルの作成の最初のテンプレート作成のときに WAN側用ゾーンファイルの作成 コピー先の パス やファイル名を間違えるとこういう状態になりますので、確認が必要かもしれません。

こういうケースでは問題点の切り分けが難しくなりますが、例えば意図的にWAN側でDNSキャッシュを有効に設定してみて recursionの設定 、次の DNSキャッシュ動作の確認 の確認を行ってみる、というのも一つの方法といえます。

DNSキャッシュ動作の確認

WAN側でのDNSキャッシュの動作について の説明のとおり、 構築中のLinuxサーバー WAN 側では DNSキャッシュ を動作させない設定を行ってるはずですから、 nslookup コマンド で、

nslookup [実在する適当な FQDN ] [自宅の グローバルIPアドレス ]

と実行します。

ここでは某国の国営放送のFQDNを拝借してます。
C:\> nslookup www.nhk.or.jp 211.183.111.3xEnter
Server:  ["211.183.111.3x"の逆引きのFQDN]
Address: 211.183.111.3x

*** ["211.183.111.3x"の逆引きのFQDN] www.nhk.or.jp: Non-existent domain
C:\>

このように、

「211.183.111.3xはFQDN(www.nhk.or.jp)を見つけられず、回答できない。」

という答えが返ってくればOKです。

もしも、

C:\> nslookup www.nhk.or.jp 211.183.111.3xEnter
Server:  ["211.183.111.3x"の逆引きのFQDN]
Address: 211.183.111.3x

Non-authoritative answer:
Name:  www.nhk.or.jp
Address: 202.214.202.101


C:\>

と言う具合に、

「Non-authoritative answer(権威のない回答=DNSキャッシュの回答)として、202.214.202.101に名前解決した。」

という答えが返ってくるときは、WAN側に対してDNSキャッシュが有効になっていることになりますので、もう一度 "/etc/named.conf" の内容を確認し、修正を行ってください WAN側でのDNSキャッシュの動作について

関連セクションへ 関連セクション・ 自宅内DNSサーバーの構築


このページの先頭へ↑

お便利サーバーから自宅DNSサーバーをチェック

このパートのスクリプトの利用はもちろん自由ですが、動作結果とそれに基づく設定などで生じたいかなる問題についても、当方は一切責任を負えませんので予めご了承ください(一応決まり文句なので)。

以下は、現在ご利用の サブネット WAN 側の ゲートウェイアドレス に対して、稼働中のお便利サーバー "web0.obenri.com" から、 host コマンド を実行するためのパートです。

出不精の方はここから自宅 サーバー に設置されている DNSサーバー のWAN側の動作をチェックすることができます。

「権威ある回答」動作の確認

[ゾーン名(ドメイン名)]を入力→

上の入力欄に、 WAN/LAN用ブートファイル/etc/named.confの作成 で設定している、「 WAN 側に 権威ある回答 をさせるゾーン名( ドメイン名 )」を入力し、 コマンドを実行 ボタンをクリックします。

すると、お便利サーバー "web0.obenri.com" 上(つまり WAN 側)から、あなたの自宅の サブネット のWAN側の ゲートウェイアドレス に対して、

[tanaka@web0 tanaka]$ host -a [ゾーン名(ドメイン名)] [自宅のWAN側IPアドレス]Enter

を実行し、その結果を表示します。

WAN側用ゾーンファイルの作成 で設定しているWAN側用のゾーンファイルの内容と見比べて、各パラメータが一致していればOKです。

ここでLAN側用のゾーンファイルの内容が表示されてしまうときは、 "/etc/named.conf" WAN/LAN用ブートファイル/etc/named.confの作成 "view" キーワードの記述方法に誤りがありますので修正が必要です。

また、現在も ダイナミックDNS を利用中でそのパラメータが表示されるときは、 "/etc/named.conf" WAN/LAN用ブートファイル/etc/named.confの作成 のWAN側用のゾーンの記述に誤りがあり、なおかつWAN側に対して DNSキャッシュ が有効になっていますのでこれらを修正してください。

さて、

”;; connection timed out; no servers could be reached”

と表示されるときは名前解決そのものが行われていないので、色々な原因が考えられます。

1. ポートフォワーディング が正しく設定されていない。

ルーター の設定を確認します ポートフォワーディングの設定 。これに間違いがあると、いくら 構築中のLinuxサーバー をいじっても状況は変わりませんので真っ先にチェックしましょう。

2. 構築中のLinuxサーバー 上にファイヤーウォールが設置されている。

この コンテンツ に従って WBEL CentOS インストール が行われていればファイヤーウォールは設置されていないはずですが ファイヤーウォールの設定(WBEL3) ファイヤーウォールの設定(CentOS3) ファイヤーウォールの設定(WBEL4) ファイヤーウォールの設定(CentOS4) ファイヤーウォールの設定(CentOS5) 、心当たりのある方(例えば他の ディストリビューション をご利用の方)はチェックが必要かもしれません。

3. named が稼動していない。

こういうウッカリミスもあるかもしれませんので確認してみましょう namedのコントロール

4."/etc/named.conf"の"view"キーワードの記述ミス。

WAN側と LAN 側のゾーン記述の振り分け方法を間違えると、WAN側には何のゾーンも提示されず、結果的にnamedは動作していない場合と同じ振る舞いをしますので、記述内容をきちんと確認します。

5."/etc/named.conf"の中に指定したゾーンファイル"/var/named/obenri.com.wan.zone"が実際は存在していない。

稀なケースかもしれませんが、こういう場合namedは「ゾーンが存在しない」と判断したうえでそのゾーン情報を無視して正常に稼動してしまいますので、意外にミスに気付きにくいものです。例えばゾーンファイルの作成の最初のテンプレート作成のときに WAN側用ゾーンファイルの作成 コピー先の パス やファイル名を間違えるとこういう状態になりますので、確認が必要かもしれません。

こういうケースでは問題点の切り分けが難しくなりますが、例えば意図的にWAN側でDNSキャッシュを有効に設定してみて recursionの設定 、次の DNSキャッシュ動作の確認 の確認を行ってみる、というのも一つの方法といえます。

DNSキャッシュ動作の確認

上のボタンをクリックすると、お便利サーバー "web0.obenri.com" 上(つまり WAN 側)から、あなたの自宅の サブネット のWAN側の ゲートウェイアドレス に対して、

[tanaka@web0 tanaka]$ host -a www.obenri.com [自宅のWAN側IPアドレス]Enter

を実行し、その結果を表示します。

Trying "www.nhk.or.jp"
;; connection timed out; no servers could be reached

と、名前解決結果が返ってこなければ正常ですが、もしも名前解決の結果が返ってくる場合にはWAN側でDNSキャッシュが有効になっていますので、もう一度 "/etc/named.conf" の内容を確認し、修正を行ってください WAN側でのDNSキャッシュの動作について

これらのスクリプトの動作についての捕捉説明

お便利サーバー.comは、現在は ダイナミックDNS を利用して運営していますので、非常に稀なケースですが実行のタイミングによっては正しい結果が返ってこない可能性があります。

そこで、思ったような 名前解決 結果が返ってこない場合には少し時間を置いてからもう一度実行してみてください。

また、無関係な用途による乱用を防止するため、名前解決を行わせる DNSサーバー は、アクセス元の サブネット WAN 側の グローバルIPアドレス が強制的に指定されるようになってます。

従って任意の IPアドレス を指定した方法でのDNSサーバーのテストを行うことはできませんし、自宅にWAN側からの問い合わせが可能なにDNSサーバーが設置されていない場合は、これらのスクリプトを実行しても意味がありません。

また、無意味な実行の繰り返しを防止するため、同じ ノード から一定時間内に非常識な回数のスクリプトの起動が行われると、一定期間内そのノードからの要求に応えなくなるようになりますので注意してください。

このパートでは固定IPアドレスでのDNSサーバー構築を前提に解説を行っていますが、これらの スクリプト は非固定IPアドレスでの通信環境からでも同様に実行可能です。

非固定IPアドレス契約ではWAN用のDNSサーバーの構築は事実上不可能ですが、将来的なDNSサーバーの設置を目指して、 BIND の設定の練習などに利用することもできます。

また、 「権威ある回答」動作の確認 のスクリプトでは、実際には任意の ドメイン名 を入力し、テストすることができます。

ただし、テストできるのは英名のドメイン名だけです。日本語ドメイン名などの2 バイト のドメイン名は扱えませんのでご了承ください。

関連セクションへ 関連セクション・ 自宅内DNSサーバーの構築


このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
Powered by White Box Enterprise Linux