レジストリへの権威ネームサーバの登録と、名前解決に関するネットワークの設定


投稿日:2012年10月31日
  • 2
  • 4



名前解決に関する設定を一気に済ませます

BINDに続き、今回は名前解決に関連したネットワークの設定をします。具体的には、以下の流れになります。
1.レジストリに権威ネームサーバの情報を登録。
2.ローカル環境で名前解決するために「hosts」と「nsswitch.conf」の設定。
3.Linuxファイアウォールのポート開放。


レジストリのデータベースへ権威ネームサーバを登録

前回BINDでDNSサーバを構築しました。その際にルートネームサーバへ、構築したDNSサーバ(権威ネームサーバ)を登録すべく設定しましたが、これだけでは名前解決はできません。他にも、ドメインを管理する「レジストリ」と呼ばれる組織にも、権威ネームサーバの情報を登録する必要があります。

レジストリとレジストラ・登録代理業者の役割

DNSにおける「レジストリ」とは、登録されたドメイン名を一元管理する組織で、「comやjp」など「TLD(トップレベルドメイン)」ごとに存在します。レジストリには国ごとにルールの異なる「ccTLD(jpなど)」と、世界中で利用できる共通ルールの「gTLD(comやnetなど)」があります。具体例をいえば、jpドメインJPRScomドメインVeriSignが管理・運営しています。

レジストリ」はドメイン名とそれに属する情報のデータベースを管理し、専用のDNSサーバで情報を提供しています。名前解決をするには、このデータベースDNSサーバ(親の権威ネームサーバ)に、BINDで構築したDNSサーバ(子の権威ネームサーバ)の情報を登録する必要があります。

ちなみにレジストリのデータベースでは以下の情報を提供することが義務付けられています。

登録ドメイン名
レジストラ名
登録ドメイン名のプライマリおよびセカンダリネームサーバ
ドメイン名の登録年月日
ドメイン名の有効期限
ドメイン名登録者の名前および住所
技術的な連絡の担当者の名前、住所、電子メールアドレス、電話番号
登録に関する連絡の担当者の名前、住所、電子メールアドレス、電話番号

jpドメインを管理するJPRSでは、この他にも多くの情報を登録するルールになっています。

レジストリ」への登録作業は、ドメインの取得を代行する「レジストラ、もしくは代理店(登録代行業者)」を介して行われます。「レジストラ」は「SRS」というシステムを利用して直接レジストリのデータベースを編集できるため、登録や変更の反映が早いというメリットがあります。

レジストラとしては「お名前.com」、登録代行業者では「ムームードメイン」などが、よく知られています。


ムームードメインで権威ネームサーバの登録

今回はムームードメインを例に解説します。それぞれのレジストラ・代理店の仕様にならってください。

1.ムームードメインのコントロールパンネルにて、「ムームーID」と「ムームーパスワード」を入力し、「ログイン」ボタンをクリック。

 

2.ドメイン一覧でDNSサーバを設定するアドレスの「詳細:表示する」のテキストリンクをクリック。

 

3.ページ中程にある「ネームサーバの設定変更」にある「ネームサーバの設定変更」ボタンをクリック。

 

4.ページ下部に「取得したドメインで使用する」という項目があるのでチェックを入れて、「取得したドメインでネームサーバを登録する場合はこちらをご利用ください。」というテキストリンクをクリックします。

 

5.出てきたウィンドウに「ネームサーバ名(例:ns.example.com)」と「IPアドレス(例:192.168.0.1)」を入力し「新規登録」ボタンをクリック。

 

6.プライマリネームサーバ(ns.example.com)」と「セカンダリネームサーバ(2nd.example.com)」ともに設定したらページ下部の「ネームサーバ設定変更」ボタンをクリックします。

 

以上でムームードメインで、DNSサーバの指定することができました。
ムームードメインからレジストラ、レジストラからレジストリと書き換えを行うので、反映には数日かかる場合はあるようです。


hostsファイルでLinuxのネットワークを設定

ここでは「/etc/hosts」に当たるファイルを編集します。hostsファイルはLinuxのローカル環境で名前解決をするのに利用します。
ここで設定したhostsファイルの設定を、DNSサーバを利用したの名前解決より優先させることができます。そうすることで名前解決がLinuxローカルで完結するため、反応速度が早く、サーバへの負担も軽減できます。

Webminでhostsファイルを編集する方法

1.ネットワーク > ネットワーク設定」から「ホストアドレス」をクリック

テキストリンクの「新規のホスト アドレスを追加」をクリック

 

2.「IP アドレス」に「192.168.0.1(自分のサーバのIP)
ホスト名」にBINDで設定した「ホスト名を全て」追加。

例)
example.com
ns.example.com
2nd.example.com
mail.example.com
ftp.example.com
www.example.com

全て入力したら「作成」ボタンをクリック。

 

3.次にすでにある「127.0.0.1」に「localhost.example.com」を加えて保存。(example.comは自分のドメイン)

コマンドでhostsファイルを編集する方法

viで直接編集する場合は「/etc/hosts」を編集します。
hostsファイルの書式は「IPアドレス 正式ホスト名 別名 別名…」と記述します。

上記のWebminと同じ設定にする「/etc/hosts」の例

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1	localhost.localdomain localhost localhost.example.com
::1		localhost6.localdomain6 localhost6
192.168.0.1	localhost.localdomain localhost
192.168.0.1	example.com ns.example.com 2nd.example.com mail.example.com ftp.example.com www.example.com

nsswitch.confでLinux内部の「DNSクライアント」を設定

ここでは「/etc/nsswitch.conf」にあたるファイルを編集します。
ここで設定する「DNSクライアント」とは、Linuxのローカルで利用する名前解決の順序を指定します。
具体的には、先ほど作成したhostsファイルに設定がないか確認して、ない場合に外部のDNSサーバに問い合わせる。という指定をします。

1.ネットワーク設定画面」で「DNSサーバの設定」をクリック。

 

2.DNSクライアント画面」にて「ホスト名」に「example.com
解決順」は上から「Hosts file」「NIS+」「NIS」「DNS」の順番でプルダウンを選んでください。NISは複数のサーバを構築した際の名前解決の仕組みなので、今回はあまり関係ありませんが、せっかくなので追加しておきます。
DNS サーバ」に「127.0.0.1」と入力

以上の設定が終わったら「保存」ボタンをクリック

 

3.ネットワークに加えた変更を有効にするために、再び「ネットワーク設定」画面に戻り「変更を適用する」ボタンをクリック。

viでDNSクライアントを設定

viで直接編集する場合は「/etc/nsswitch.conf」を編集します。

38行目当たりにある「hosts」の項目を編集します。上の例と同じ設定は以下のとおりです。

hosts:  files nisplus nis dns

それぞれ
files」が「Hosts file」、
nisplus」が「NIS+」、
nis」が「NIS」、
dns」が「DNS」を指します。
先頭に書いたものが優先順位が上になります。項目はスペース区切りで記述します。


DNSサーバ用にポート53番を開放

最後にBINDで構築したDNSサーバのために「ポート53番を開放」します。

通常サーバでは、通信を許可するかどかを「ファイアウォール」というソフトで制御しています。「ファイアウォール」で許可しない通信を遮断することを、「パケットフィルタリング」といいます。
基本的に全ての通信を「パケットフィルタリング」して、特定のポート番号だけ通信を許可します。この、特定のポート番号を許可することを「ポート開放」といいます。

ファイアウォールのイメージ

特定の通信で利用されるポート番号は予め予約されています。
ウィキペディアの一般的に利用されるポート番号の一覧

それではWebminでファイアウォールを設定します

ネットワーク > Linux ファイアウォール」をクリックして、「ルールを追加する」ボタンをクリックします。

 

DNSサーバのUDP用に以下のルールを追加します。
DNSサーバのUDP用ルール

ルールのコメント DNS UDP
実行するアクション 許可
ネットワークプロトコル 等しい UDP
宛先の TCP または UDP ポート 等しい 53

 

同じように今度は、TCP用のルールを追加してください。
DNSサーバのTCP用ルール

ルールのコメント DNS TCP
実行するアクション 許可
ネットワークプロトコル 等しい TCP
宛先の TCP または UDP ポート 等しい 53

ファイアウォールに加えた変更を有効にします

Linuxファイアウォール画面」の下部にある「設定を有効にする」ボタンをクリックしてください。

vi等でポート開放する場合

Linux ファイアウォール」の設定は「/etc/sysconfig/iptables」で行います。
上で設定したのと同じようにするには、viで開いて以下のように追加してください。

# DNS UDP
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
# DNS TCP
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

そしてコマンドでファイアウォールを再起動してポート開放の設定を有効にします。

※コマンドラインの見方
コマンド」「引数、その他」「コメント」「#(rootユーザ)」「$(一般ユーザ)」

# /etc/init.d/iptables restart

本来ならついでに他のソフト用にポートを開放したいところですが、1度に解説しすぎても混乱の元なので、今回はDNS用のポートだけ開放しておきます。


お疲れ様でした。
これで名前解決に関するLinuxサーバの設定が完了しました。初めての方は覚えることも多く、大変だったのではないでしょうか?

Webサービスを提供する場合は、必ずと言っていいほどDNSサーバを構築します。そのためDNSは身近な技術ですが、同時に奥の深い技術でもあります。大規模なDNSサーバの構築など、興味のある方は挑戦してみてください。

また、コマンドでの編集方法も併記しましたが、GUIであるWebminでの操作に比べて、簡潔に設定できることに気がついたでしょうか?設定に関する基本的な知識を持ち合わせている場合は、CUIでの解説・設定のほうが断然作業が少なく、短時間で設定できます。

CUIでの操作も意識して慣れるようにすると、結果的に作業時間の短縮につながります。

次回は「BINDで構築したDNSサーバと、各種ネットワークの動作確認」です。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。