|
自宅内DNSサーバーの構築
|
DNSサーバーの構築hostsファイルの設定BINDについて(〜9.3.x)BINDについて(9.7.x〜)named.confの設定(〜9.3.x)named.confの設定(9.7.x〜)ゾーンファイルの書式ゾーンファイルの省略方法既存のゾーンファイル(〜9.3.x)既存のゾーンファイル(9.7.x〜)正引きゾーンファイルの作成逆引きゾーンファイルの作成設定ファイルの書式チェックnamedの起動とコントロールnamedの動作確認ルーターとホストの設定DNSSECについて |
hostsファイルについてhostsファイル はその名前のとおり、 FQDN と IPアドレス との対照を記述した テキスト ファイルです。 hostsファイルの内容は、通常は外部の名前解決サーバー( DNSサーバー など)よりも先に参照されますから、これを適切に設定することで、 ホスト機 ごとに独自の名前解決結果を与えることが可能になります。 hostsファイルは OS の種類によって場所も書式もまちまちです。 またhostsファイルを直接エディタで書き換えずに、hostsファイルの設定のツールを使う MacOSX のようなパターンもあります。 LinuxOS の場合、hostsファイルの書式自体はほとんどの ディストリビューション が WBEL や CentOS と同じです。 ただ、ディストリビューションによっては、 GUI で予め準備されている設定ツールを利用できるものもあります。 もちろん、どちらを利用しても構いませんが、 名前解決 の意味さえわかっていれば、わざわざツールを使うよりも直接hostsファイルを編集したほうが簡単で確実ですから、可能な限り直接書き換えで設定することをおすすめします。
LinuxOSのhostsファイルの書き換えについては、
"web1.obenri.com"のhostsファイルまず、 サーバー機 自身の hostsファイル の修正を行います。 現在 構築中のLinuxサーバー は、 ダイナミックDNS で、 と名前解決されるように登録していますから、これらの FQDN をそのままhostsファイルに設定します。
これらのFQDNはサーバー機にとっては 自分自身を示すもの ですから、必ずしも"192.168.100.11"に対応させる必要はなく、 ループバックアドレス に対応させても構いません。
説明が重複しますので、
WBEL
や
CentOS
のhostsファイル設定の書式などについては、
また、設定を書き換えたら、
|
|||||||||||||||||||
WindowsOSのhostsファイルWindowsOS の hostsファイル は "hosts" というファイル名で所定のディレクトリに存在しなければなりません。 |
||||||||||||||||||||
|
ただしその場所はOSの種類によって様々です。 Windows7 、 WindowsVista 、 WindowsXP (Home,Professional, Server2003 , Server2008 )の場合
"c:\windows\system32\drivers\etc\hosts"
Windows2000 の場合
"c:\winnt\system32\drivers\etc\hosts"
"c:\windows\hosts"
ただし、先頭の 赤 で示した部分はWindowsOSが インストール されたときに指定された デフォルト の パス 名です。従って、WindowsOSをインストールしたときに別のパスを指定した場合には、この部分は異なってきます。 もしも "c:\windows" や "c:\winnt" というディレクトリが見当たらないとき、あるいはhostsファイルを書き換えても設定が変わらないときは、この"Windowsのインストールパス"がデフォルトとは異なっているかもしれません。 このインストールパスは、WindowsOS上の 環境変数 "windir" として設定されていますから、うまく行かないときはその値を調べる必要があります。 そこでまずスタートメニューから ファイル名を指定して実行(R) を開き、 "cmd"(WindowsMe,98,95の場合は"command") とタイプしてから OK ボタンをクリックし、 コマンドプロンプト を開きます。もちろん、コマンドプロンプトはメニューから開いても構いません。 コマンドプロンプトの画面が開いたら、
echo %windir%
Enter
とタイプしてください。 環境変数"windir"を表示する このとき表示される文字列(この場合は"C:\WINDOWS")が環境変数"windir"の値、すなわち前に 赤 で示した部分になります。 |
|||||||||||||||||||
DNSサーバーの構築に、
とても役に立った一冊です ↓ |
またhostsファイルには拡張子を 付けてはいけません が、WindowsOSのほとんどは、 「登録されている拡張子は表示しない」 がデフォルトの表示設定になっています。 従って、自分では"hosts"を編集したつもりが、拡張子が表示されていないことに気付かずに"hosts.txt"を編集してしまい、設定がうまくいかない原因が解らずに悩んでしまうことがあります。 hostsファイルの編集に限らず、 サーバー の設定作業にWindowsOSを使う場合は、「登録されている拡張子は表示しない」になっていると何かと不都合がありますから、WindowsOSの "フォルダオプション" から、この設定を無効にしておきましょう。
WindowsOSのhostsファイルは、外部の
DNSサーバー
よりも先に参照されますから、
WBEL
や
CentOS
の
"/etc/host.conf"
hostsファイルの所在がわかったら、それを 「メモ帳」 や 「ワードパッド」 などで開いてください。OSの種類や使用環境で異なりますが、例えばWindowsXPの場合、hostsファイルは次のような内容になっているはずです。 |
|||||||||||||||||||
WindowsOS用の
アプリケーション
の中には、hostsファイルに設定を書き込むものがありますから、必ずしも内容はこのとおりではありません。
既に書かれている内容については、アプリケーションが独自に参照して使用しますので、不用意に消さないようにしてください。 |
WindowsXPのデフォルトのhostsファイル また、WindowsMe,98,95の場合は、所定の場所にhostsファイルが存在せず、代わりに "hosts.sam" というファイルが見つかることがあります。 これはhostsの設定のための説明文が書かれているだけの サンプルファイル ですから、これを同じディレクトリ内にコピーして名前を"hosts"に書き換えて使ってもかまいませんし、同じ場所に新規に"hosts"を作成してもかまいません。 です。 |
|||||||||||||||||||
行の先頭から最初のスペースまたはTABまでが
IPアドレス
と解釈されます。
また、改行コードまでが一つの設定とみなされますから、hostsファイルの最後の行は必ず改行で終わってください。 |
左側のパラメータである IPアドレス と、右側のパラメータである ホスト名 はスペースまたはTABで区切って、一つの設定を一行で記述します。ホスト名はスペースまたはTABで区切って複数指定することが可能です。 記述は何行でも可能です。 参照は必ず上の行から順に行われますが、名前解決ができたところで参照は終了し、それ以降の行の設定は無視されます。つまり、
のように異なる行に 同じFQDNの記述 を行った場合、下の行の設定は無効になる点に注意してください。 また "#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。 |
|||||||||||||||||||
|
例えばこのファイルに "192.168.100.11 web1.obenri.com" と記述した場合には、 web1.obenri.com → 192.168.100.11 と名前解決されます。 そこで、例えば以下のように設定を追加します。 WindowsOS用hostsファイルの設定例1 もちろん、次のように記述しても構いません。 WindowsOS用hostsファイルの設定例2 hostsファイルの記述は、先頭に "#" を付けると無効にすることができますから、設定例2のように記述するとFQDNに対して個別に有効/無効が設定できますから、どちらかといえばこちらの記述方法をお勧めします。 記述が終わったらhostsファイルを保存してください。 hostsファイルの記述はhostsファイルが保存されるとすぐに反映されますから、設定後に再起動などの操作は不要です。
|
|||||||||||||||||||
MacOSXのhostsファイルは設定不可MacOSX の場合、システム上に WBEL や CentOS と同じく "/etc/hosts" が存在しますが、これを同じように編集しても機能しません。 |
||||||||||||||||||||
簡単操作がウリのはずの MacintoshOS ですが、どういう訳だかこのNetInfoマネージャだけは恐ろしくわかり難いツールです。 |
MacOSXで DNSサーバー より優先して 名前解決 される FQDN を設定するには、 "NetInfoマネージャ" というツールを使用して設定を行うか、予めhostsファイルを作成しておいて "ターミナル" から コマンド 入力でNetInfoのデータベースに登録するか、そのどちらかの方法で行いますが、ここでは後者の方法で説明します。 まず、 "テキストエディット" などで以下のような テキスト ファイルを、作業中のユーザーのホームディレクトリに作成します。 |
|||||||||||||||||||
IPアドレス とFQDNの間は"TAB"で区切ります。 |
MacOSX用hostsファイル |
|||||||||||||||||||
この作業はMacOSX独自のものですから、詳細は説明しません。呪文のようなものだと思ってください。 |
"localhost" と "broadcasthost" の記述は、 ループバックアドレス とそれに対する ブロードキャストアドレス の デフォルト の名前解決の設定です。 |
|||||||||||||||||||
|
一度設定した内容を修正するときは、元の "hosts.txt" を書き直してからもう一度上の作業を行います。 設定は直ぐに反映されますが注意点があります。 実はこの方法で修正できるのは FQDNに対するIPアドレスの値 だけです。例えばFQDNの名前を間違えて登録した場合や、設定そのものを削除したい場合は "NetInfoマネージャ" で行う必要があります。 NetInfoマネージャは、通常は起動ディスクの中の "アプリケーション"→"ユーティリティ" の中にありますから、これをダブルクリックして開きます。 NetInfoマネージャの初期画面 次に、内容を修正可能な権限を得るために、鍵マークをクリックします。すると、ユーザー名とパスワードを入力する ダイアログ が開きますので、管理者ユーザーのユーザー名とパスワードを入力して OK ボタンをクリックします。 ユーザー認証のダイアログ 鍵マークが開いた形になって、内容の修正ができるようになったら、 "machines" をクリックします。 すると、対象となるFQDNが表示されますから、削除したいFQDNを選んで 削除 ボタンをクリックしてください。 FQDNの名前解決の設定を削除
これで、とりあえず
hostsファイル
の役割を担う設定はできましたが、実はMacOSXは、デフォルトではこの設定よりもDNSサーバーの参照のほうが優先されてしまいますから、WBELやCentOSの
"/etc/host.conf"
これは、以下のようにコマンド入力で設定します。 |
|||||||||||||||||||
これは、ホスト機の
DNSキャッシュ
、hostsファイル、NetInfoの設定、外部のDNSサーバー、...という順序で参照する、という設定です。
また、この参照順序の設定を反映させるには再起動が必要です。 |
MacOSXの場合はこのように操作が非常にわかり難いので、特に慎重に作業を行ってください。
|
|||||||||||||||||||
OldMacはhostsファイルで設定MacOS9 及びそれ以前の MacintoshOS は、 WindowsOS と同じように hostsファイル で設定を行います。また、 MacOSX と違って デフォルト でhostsファイルが DNSサーバー よりも先に参照されますから面倒がありません。 まず、任意の場所に(システムフォルダ内がいいと思います)、以下のようにhostsファイルを作成します(ファイル名は適当でかまいません)。 |
||||||||||||||||||||
実は、このOldMacの記述法が、DNSサーバー アプリケーション である BIND の記述方法に一番近かったりします。 |
OldMacのhostsファイルの設定 FQDN と IPアドレス の間にある "A" は 「アドレス」 で、「左の名前が指し示すのは右のアドレス」という意味を表します。
ちなみに、
ダイナミックDNS
に登録した内容
OldMacのhostsファイルの別の記述法 となります。ここで使われている "CNAME" は 「本名"canonical name"」 で、「左の名前の本当の名前は右の名前」という意味を表します。 もちろん、どちらの記述方法も結果的には同じ名前解決結果になりますからどちらでも構いません。 |
|||||||||||||||||||
どちらにせよ、この程度の記述内容であれば、大した手間ではありませんが。 |
ただ、CNAMEによる記述法は、 WindowsOS のhostsファイル設定で「複数のFQDNを一行にまとめて指定する場合」と同じく、一度にまとめてIPアドレスを変更したい場合には便利ですが、個別にIPアドレスを変更したい場合には逆に手間がかかります。 ファイルを保存したら、次に コントロールパネル から TCP/IP を開き、 Hostsファイルの選択... をクリックします。 OldMacのTCP/IPコントロールパネル すると、ファイル選択の ダイアログ が表示されますから、先に保存したhostsファイルを選択して 開く ボタンをクリックしてください。 hostsファイル選択のダイアログ すると、読み込みを確認するダイアログが表示されますので OK ボタンをクリックしてください。 hostsファイル読み込み確認のダイアログ ただし、書式に間違いがある場合は警告が出されますので、その場合は キャンセル をクリックしてもう一度hostsファイルを見直してください。 最後にTCP/IPコントロールパネルを閉じるときに設定の保存を促すダイアログが表示されますが、ここで設定内容を保存すると設定が反映されるようになります。 設定内容の修正は、WindowsOSと同様に書き換えられたhostsファイルの内容に完全に置き換わりますのでMacOSXの場合のように面倒ではありません。 もしもすべてのhostsの設定を削除したい場合は、空白のテキストファイルをTCP/IPコントロールパネルから読み込ませてください。
|
|||||||||||||||||||
動作の確認まず、 構築中のLinuxサーバー の Webサーバー アプリケーション Apache を起動してください。
そして、設定を行った サブネット 内の任意の ホスト から、 構築中のLinuxサーバー の プライベートIPアドレス を使って、 "http://192.168.100.11/" |
||||||||||||||||||||
|
にアクセスしてみてください。以下のようなのテストページが表示されれば、Webサーバーは正常に機能していることになります。 サブネット内から接続したApache2のテストページ これと同じページが、 "http://www.obenri.com/" で表示されれば hostsファイル の設定はOKです。 また、 バーチャルホスト の設定はまだ行っていませんから、同じページが "http://web1.obenri.com/ や "http://mail.obenri.com/ でも見ることができるはずです。
また、hostsの設定は他の
クライアント
アプリケーション
でも同様に利用できますから、例えば
SSHクライアント
から
構築中のLinuxサーバー
への接続
IPアドレスでSSH接続 のように IPアドレス ではなく、 FQDNでSSH接続 のように FQDN でも接続できるようになります。
|
|||||||||||||||||||
複数のドメイン名を利用する場合"*.obenri.com" だけではなく、その他にも ドメイン名 を取得していて、 構築中のLinuxサーバー でそれらを使った FQDN を併用したいときでも基本的な考え方は同じです。 |
||||||||||||||||||||
|
例えば 構築中のLinuxサーバー には、
のように記述し、 クライアント機 には WindowsOS の場合で、 WindowsOS用hostsファイルの設定例3 のように記述していけばOKです。 ただ、このように複数のドメイン名を扱うようになると記述量が増え、設定をすべてのクライアント機に記述するのはかなり面倒な作業になってきます。 こういう状態になってきたらもう hostsファイル の利用に頼るのではなく LAN 内に DNSサーバー を設置して一元管理するほうがベターではないでしょうか。
|
|
DNSサーバーの構築
<<Previous
|
Next>>
BINDについて(〜9.3.x)
Next>>
BINDについて(9.7.x〜)
|
このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。 |
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |