目次
概要
DNS (ドメインネームシステム)は、ドメイン名とホスト名をIPアドレスに解決するために必要です。これにより、たとえばIPアドレス192.168.2.100がホスト名jupiterに割り当てられます。独自のネームサーバをセットアップする前に、21.3項 「ネームレゾリューション」で DNS に関する一般的な説明を参照してください。以降に示す設定例はBINDの場合のものです。
ドメインのネームスペースは、ゾーンと呼ばれる領域に分割されます。たとえば、example.comの場合は、comドメインのexampleセクション(つまりゾーン)を表します。
DNSサーバは、ドメインの名前とIP情報を管理するサーバです。マスタゾーン用にプライマリDNSサーバ、スレーブゾーン用にセカンダリサーバ、またはキャッシュ用にいずれのゾーンも持たないスレーブサーバを持つことできます。
マスタゾーンにはネットワークからのすべてのホストが含まれ、DNSサーバのマスタゾーンにはドメイン内のすべてのホストに関する最新のレコードが格納されます。
スレーブゾーンはマスタゾーンのコピーです。スレーブゾーンのDNSサーバは、ゾーン転送操作によりマスタサーバからゾーンデータを取得します。スレーブゾーンのDNSサーバは、有効なゾーンデータである(期限切れでない)限り、ゾーンに適切に応答します。スレーブがゾーンデータの新規コピーを取得できない場合、ゾーンへの応答を停止します。
フォワーダは、DNSサーバがクエリに回答できない場合に、そのクエリの転送先になるDNSサーバです。1つの環境設定内で複数の設定ソースを有効にするには、netconfigを使用します(man 8 netconfigも参照)。
レコードは、名前とIPアドレスに関する情報です。サポートされているレコードおよびその構文は、BINDのドキュメントで説明されています。次は、特別なレコードの一部です。
NSレコードは、指定のドメインゾーンの担当マシンをネームサーバに指定します。
MX(メール交換)レコードは、インターネット上でメールを転送する際に通知するマシンを説明します。
SOA (Start of Authority)レコードは、ゾーンファイル内で最初のレコードです。SOAレコードは、DNSを使用して複数のコンピュータ間でデータを同期化する際に使用されます。
DNSサーバをインストールするには、YaSTを起動してから、+の順に選択します。+の順に選択して、を選択します。依存関係のあるパッケージのインストールを確認して、インストールプロセスを完了します。
YaSTモジュールを使用して、ローカルネットワーク用にDNSサーバを設定します。このモジュールを初めて起動すると、サーバ管理に関して2、3の決定を行うように要求されます。この初期セットアップを完了すると、基本的なサーバ設定が生成されます。エキスパートモードを使用すると、より詳細な設定タスク(ACLのセットアップ、ロギング、TSIGキーなどのオプション)を処理できます。
ウィザードは3つのステップ(ダイアログ)で構成されています。各ダイアログの適切な箇所でエキスパート用の設定モードに入ることができます。
モジュールを初めて起動すると、のような図24.1「DNSサーバのインストール:フォワーダの設定」ダイアログが表示されます。を使用すると、フォワーダを提供するデバイスを決定したり、独自のを指定するかどうかを決定できます。netconfigの詳細については、man 8 netconfigを参照してください。
フォワーダは、ご使用のDNSサーバが回答できないクエリの送信先とするDNSサーバです。フォワーダのIPアドレスを入力して、をクリックします。
ダイアログは、複数の部分で構成されており、24.6項 「ゾーンファイル」で説明するゾーンファイルの管理に関する項目を設定します。新しいゾーンの場合は、にゾーン名を入力します。逆引きゾーンを追加する場合は、.in-addr.arpaで終わる名前を入力しなければなりません。最後に、(マスタ、スレーブ、または転送)を選択します。図24.2「DNSサーバのインストール:DNSゾーン」を参照してください。既存のゾーンのその他の項目を設定するには、をクリックします。ゾーンを削除するには、をクリックします。
最後のダイアログでは、をクリックして、ファイアウォールのDNSポートを開くことができます。次に、ブート時にDNSサーバ を起動するかどうか(か、か)を決定します。LDAPサポートを有効にすることもできます。詳細については、図24.3「DNSサーバのインストール:完了ウィザード」を参照してください。
YaSTのモジュールを起動するとウィンドウが開き、複数の設定オプションが表示されます。設定を完了すると、基本的な機能が組み込まれたDNSサーバ設定が作成されます。
では、DNSサーバをシステムのブート中に起動するか、それとも手動で起動するか指定します。DNSサーバをすぐに起動するには、[ を選択します。DNSサーバを停止するには、[ を選択します。現在の設定を保存するには、を選択します。 ファイアウォールのDNSポートを開くにはを、ファイアウォールの設定を変更するにはをクリックします。
を選択すると、ゾーンファイルがLDAPデータベースによって管理されるようになります。ゾーンデータを変更してそれがLDAPデータベースに書き込まれると、設定を再ロードするように要求されます。DNSサーバを再起動すると、変更がすぐに反映されます。
ローカルDNSサーバは、要求に応答できない場合、要求をに転送しようとします(そのように設定されている場合)。このフォワーダは、手動で、に追加できます。フォワーダが、ダイアルアップ接続でのように静的でない場合は、が設定を処理します。netconfigの詳細については、man 8 netconfigを参照してください。
このセクションでは、基本的なサーバオプションを設定します。メニューから設定する項目を選択して、対応する入力フィールドに値を指定します。新しいエントリを追加するには、を選択してください。
DNSサーバがログに記録する内容とログの方法を設定するには、を選択します。に、DNSサーバがログデータを書き込む場所を指定します。システム全体のログファイル/var/log/messagesを使用する場合はを、別のファイルを指定する場合はを選択します。別のファイルを指定する場合は、ファイル名、ログファイルの最大サイズ(メガバイト(MB))と保管するログファイル数(バージョン)も指定します。
には、さらに詳細なオプションが用意されています。を有効にすると、すべてのクエリがログに記録されるため、ログファイルが非常に大きくなる可能性があります。ですから、このオプションを有効にするのはデバッグ時だけにすることをお勧めします。DHCPサーバとDNSサーバ間でのゾーン更新時のデータトラフィックをログに記録するには、を有効にします。マスタからスレーブへのゾーン転送時のデータトラフィックをログに記録するには、を有効にします。詳細については、図24.4「DNSサーバ:ログの記録」を参照してください。
このダイアログでは、アクセス制限を強制するACL(アクセス制御リスト)を定義します。に個別名を入力したら、次の形式で、にIPアドレス(ネットマスクは省略可)を指定します。
{ 192.168.1/24; }設定ファイルの構文に従って、アドレスの末尾にはセミコロンを付け、中カッコで囲む必要があります。
TSIG (トランザクションシグネチャー)の主な目的は、DHCPおよびDNSサーバ間で安全な通信を行うことです。24.8項 「安全なトランザクション」を参照してください。
TSIGキーを生成するには、フィールドに個別名を入力し、キーを格納するファイルをフィールドに入力します。をクリックすると、選択内容が確定されます。
作成済みのキーを使用するには、フィールドを空白のままにして、で、そのキーが保存されているファイルを選択します。その後、をクリックすると、入力内容が確定されます。
スレーブゾーンを追加するには、を選択し、ゾーンタイプにを選択し、新規ゾーンの名前を書き込み、をクリックします。
の下のサブダイアログで、スレーブがデータをプルするマスタを指定します。サーバへのアクセスを制限するために、リストから定義済みのACLを1つ選択します。
マスタゾーンを追加するには、を選択し、ゾーンタイプにを選択し、新規ゾーンの名前を書き込み、をクリックします。マスタゾーンの追加時には、逆引きゾーンも必要です。たとえば、ゾーンexample.com(サブネット192.168.1.0/24内のホストをポイントするゾーン)を追加する際には、カバーされるIPアドレス範囲の逆引きゾーンも追加する必要があります。定義上、このゾーンの名前は、1.168.192.in-addr.arpaとなります。
マスタゾーンを編集するには、を選択し、テーブルからマスタゾーンを選択し、をクリックします。このダイアログには、(最初に表示される)、、、、およびのページがあります。
に示す基本ダイアログを使用すると、ダイナミックDNSの設定と、クライアントおよびスレーブネームサーバへのゾーン転送に関するアクセスオプションを定義できます。図24.5「DNSサーバ: ゾーンエディタ(基本)」ゾーンの動的更新を許可するには、および対応するTSIGキーを選択します。このキーは、更新アクションの開始前に定義しておく必要があります。ゾーン転送を有効にするには、対応するACLを選択します。ACLは事前に定義しておく必要があります。
ダイアログで、ゾーン転送を有効にするかどうか選択します。リストされたACLを使用して、ゾーンをダウンロードできるユーザを定義します。
ダイアログでは、指定したゾーンの代替ネームサーバを定義できます。リストに自分が使用しているネームサーバが含まれていることを確認してください。レコードを追加するには、にレコード名を入力し、をクリックして確定します。詳細については、図24.6「DNSサーバ:ゾーンエディタ(NSレコード)」を参照してください。
現行ゾーンのメールサーバを既存のリストに追加するには、対応するアドレスと優先順位の値を入力します。その後、を選択して確定します。詳細については、図24.7「DNSサーバ:ゾーンエディタ(MXレコード)」を参照してください。
このページでは、SOA (start of authority)レコードを作成できます。個々のオプションについては、例24.6「The /var/lib/named/example.comゾーンファイル」を参照してください。LDAPを介して管理される動的ゾーンの場合、SOAレコードの変更がサポートされないので注意してください。
このダイアログでは、名前解決を管理します。では、ホスト名を入力してレコードタイプを選択します。はメインエントリを表します。この値はIPアドレスでなければなりません。はエイリアスです。およびの各タイプを指定すると、およびの各タブで提供される情報に基づいて、詳細レコードまたは部分レコードが展開されます。この3つのタイプのは、既存のAレコードに解決されます。は逆引きゾーン用レコードです。これは、次の例のように、Aレコードとは反対です。
hostname.example.com. IN A 192.168.0.1 1.0.168.192.in-addr.arpa IN PTR hostname.example.com.
![]() | 逆引きゾーンの編集 |
|---|---|
正引きゾーンの追加後、メインメニューに戻って、編集用の逆引きゾーンを選択します。次に、タブで、チェックボックスにチェック印を入れ、正引きゾーンを選択します。これにより、正引きゾーンでのすべての変更が、逆引きゾーンで自動的に更新されます。 | |
SUSE® Linux Enterprise Serverシステムでは、ネームサーバBIND (Berkeley Internet name domain)は、事前設定されて提供されるので、インストールが正常に完了すればただちに起動できます。すでにインターネットに接続し、/etc/resolv.confのlocalhostにネームサーバアドレス127.0.0.1が入力されている場合、通常、プロバイダのDNSを知らなくても、すでに機能する名前解決メカニズムが存在します。この場合、BINDは、ルートネームサーバを介して名前の解決を行うため、処理が非常に遅くなります。通常、効率的で安全な名前解決を実現するには、forwardersの下の設定ファイル/etc/named.confにプロバイダのDNSとそのIPアドレスを入力する必要があります。いままでこれが機能している場合、ネームサーバは、純粋なキャッシュ専用ネームサーバとして動作しています。ネームサーバは、そのゾーンを設定してはじめて、正しいDNSにすることができます。簡単な例については、/usr/share/doc/packages/bind/configのドキュメントを参照してください。
![]() | ネームサーバ情報の自動取得 |
|---|---|
インターネット接続やネットワーク接続のタイプによっては、ネームサーバ情報を自動的に現在の状態に適合させることができます。これを行うには、
| |
ただし、公式のドメインは、その1つが責任のある機関によって割り当てられるまで、セットアップしないでください。独自のドメインを持っていて、プロバイダがそれを管理している場合でも、BINDはそのドメインに対する要求を転送しないので、そのドメインを使用しないほうが賢明です。たとえば、プロバイダのWebサーバは、このドメインからはアクセスできません。
ネームサーバを起動するには、rootユーザとして、コマンド「rcnamedstart」を入力します。右側に緑色で「done」と表示されたら、named(ネームサーバプロセス名)が正常に起動しています。サーバが正常に起動したらすぐに、hostまたはdigプログラムを用いてローカルシステム上でネームサーバをテストしてください。デフォルトサーバlocalhostとそのアドレス127.0.0.1が返されるはずです。これが返されない場合は、/etc/resolv.confに含まれているネームサーバエントリが誤っているか、同ファイルが存在しないかのいずれかです。最初のテストとして、「host127.0.0.1」を入力します。これは常に機能するはずです。エラーメッセージが表示された場合は、rcnamed statusを使用して、サーバが実際に起動されていることを確認します。ネームサーバが起動しない場合、または予想しない動作をしている場合、多くはログファイル/var/log/messagesでその原因が明らかになります。
プロバイダのネームサーバ(またはすでにネットワーク上で動作しているネームサーバ)をフォワーダとして使用する場合は、forwardersの下のoptionsセクションに、対応するIPアドレスまたはアドレスを入力します。に含まれているアドレスは、単なる例です。例24.1「named.confファイルの転送オプション」各自サイトの設定に合わせて変更してください。
例24.1 named.confファイルの転送オプション¶
options {
directory "/var/lib/named";
forwarders { 10.11.12.13; 10.11.12.14; };
listen-on { 127.0.0.1; 192.168.1.116; };
allow-query { 127/8; 192.168/16 };
notify no;
};
optionsエントリの後には、ゾーン用のエントリ、localhostと0.0.127.in-addr.arpaが続きます。「.」の下のtype hint(タイプヒント)は必ず存在しなければなりません。対応するファイルは、変更する必要がなく、そのままで機能します。また、各エントリの末尾が「;」で閉じられ、中カッコが適切な位置にあることを確認してください。設定ファイル/etc/named.confまたはゾーンファイルを変更したら、rcnamedreloadを使用して、BINDにそれらを再読み込みさせます。または、rcnamedrestartを使用してネームサーバを停止、再起動しても同じ結果が得られます。サーバは「rcnamedstop」を入力していつでも停止することができます。
BINDネームサーバ自体のすべての設定は、/etc/named.confファイルに格納されます。ただし、処理するドメインのゾーンデータ(ホスト名、IPアドレスなどで構成されている)は、/var/lib/namedディレクトリ内の個別のファイルに格納されます。この詳細については、後述します。
/etc/named.confファイルは、大きく2つのエリアに分けられます。1つは一般的な設定用のoptionsセクション、もう1つは個々のドメインのzoneエントリで構成されるセクションです。ログセクションとacl (アクセス制御リスト)エントリは省略可能です。コメント行は、行頭に#記号または//を指定します。最も基本的な/etc/named.confファイルの例を、例24.2「基本的な/etc/named.confファイル」に示します。
例24.2 基本的な/etc/named.confファイル¶
options {
directory "/var/lib/named";
forwarders { 10.0.0.1; };
notify no;
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "." in {
type hint;
file "root.hint";
};filename";
BINDが検索する、ゾーンファイルが格納されているディレクトリを指定します。通常は/var/lib/namedです。
ip-address; };
DNS要求が直接解決できない場合、それらが転送されるネームサーバ(ほとんどの場合、プロバイダのネームサーバ)を指定します。ip-addressには、IPアドレスを192.168.1.116のように指定します。
ルートネームサーバでDNS要求の解決を試みる前に、それらを転送するようにします。forward firstの代わりにforward onlyを指定すると、要求が転送されたままになり、ルートネームサーバには送り返されません。このオプションは、ファイアウォール構成で使用します。
ip-address; }; 53
BINDがクライアントからのクエリを受け取るネットワークインタフェースとポートを指定します。port 53はデフォルトポートであるため、明示的に指定する必要はありません。ローカルホストからの要求を許可するには、127.0.0.1と記述します。このエントリ全体を省略した場合は、すべてのインタフェースがデフォルトで使用されます。
BINDがIPv6クライアント要求をリッスンするポートを指定します。any以外で指定できるのはnoneだけです。IPv6に関して、サーバはワイルドカードアドレスのみ受け付けます。
ファイアウォールが発信DNS要求をブロックする場合、このエントリが必要です。BINDに対し、外部への要求をポート53から発信し、1024を超える上位ポートからは発信しないように指示します。
BINDがIPv6のクエリに使用するポートを指定します。
net; };
クライアントがDNS要求を発信できるネットワークを定義します。netには、アドレス情報を192.168.2.0/24のように指定します。末尾の/24は、ネットマスクの短縮表記で、この場合255.255.255.0を表します。
ゾーン転送を要求できるホストを制御します。この例では、!が使用されているので、ゾーン転送要求は完全に拒否されます。*. このエントリがなければ、ゾーン転送をどこからでも制約なしに要求できます。
このエントリがなければ、BINDは1時間ごとに数行の統計情報を生成して/var/log/messagesに保存します。0を指定すると、統計情報をまったく生成しないか、時間間隔を分単位で指定します。
このオプションは、BINDがキャッシュをクリアする時間間隔を定義します。キャッシュがクリアされるたびに、/var/log/messagesにエントリが追加されます。時間の指定は分単位です。デフォルトは60分です。
BINDは定期的にインタフェースを検索して、新しいインタフェースや存在しなくなったインタフェースがないか確認します。この値を0に設定すると、この検索が行われなくなり、BINDは起動時に検出されたインタフェースのみをリッスンします。0以外の値を指定する場合は分単位で指定します。デフォルトは60分です。
noに設定すると、ゾーンデータを変更したとき、またはネームサーバが再起動されたときに、他のネームサーバに通知されなくなります。
すべての利用可能なオプションのリストについては、マニュアルページman 5 named.confを参照してください。
BINDでは、何を、どのように、どこにログ出力するかを詳細に設定できます。通常は、デフォルト設定のままで十分です。例24.3「ログを無効にするエントリ」に、このエントリの最も簡単な形式、すなわちログをまったく出力しない例を示します。
例24.4 example.comのゾーンエントリ¶
zone "example.com" in {
type master;
file "example.com.zone";
notify no;
};
zoneの後、管理対象のドメイン名(example.com)を指定し、その後にinと関連のオプションを中カッコで囲んで指定します(例24.4「example.comのゾーンエントリ」参照)。スレーブゾーンを定義するには、typeをslaveに変更し、このゾーンをmasterとして管理することをネームサーバに指定します(例24.5「example.netのゾーンエントリ」参照)。これが他のマスタのスレーブとなることもあります。
例24.5 example.netのゾーンエントリ¶
zone "example.net" in {
type slave;
file "slave/example.net.zone";
masters { 10.0.0.1; };
};ゾーンオプション
masterを指定して、BINDに対し、ゾーンがローカルネームサーバによって処理されるように指示します。これは、ゾーンファイルが正しい形式で作成されていることが前提となります。
このゾーンは別のネームサーバから転送されたものです。必ずmastersとともに使用します。
ルートネームサーバの設定には、ゾーン.(hintタイプ)を使用します。このゾーン定義はそのまま使用できます。
example.com.zoneファイルまたは「slave/example.net.zone」ファイル
このエントリは、ドメインのゾーンデータが格納されているファイルを指定します。スレーブの場合は、このデータを他のネームサーバから取得するので、このファイルは不要です。マスタとスレーブのファイルを区別するには、スレーブファイルにディレクトリslaveを使用します。
server-ip-address; };このエントリは、スレーブゾーンにのみ必要です。ゾーンファイルの転送元となるネームサーバを指定します。
このオプションは、外部書き込みアクセスを制御し、クライアントにDNSエントリへの書き込み権を付与することができます。ただし、これは通常、セキュリティ上の理由で好ましくありません。このエントリがなければ、ゾーンの更新は完全に拒否されます。! *によってそのような操作が禁止されるため、前述のエントリは同じものをアーカイブします。
ゾーンファイルは2種類必要です。一方はIPアドレスをホスト名に割り当て、もう一方は逆にIPアドレスのホスト名を提供します。
![]() | ゾーンファイルでのドット(ピリオド、フルストップ)の使用 |
|---|---|
フィルタフィールドの右側にある | |
最初に、ドメインexample.comの責任を負うゾーンファイルexample.com.zoneについて検討します(例24.6「The /var/lib/named/example.comゾーンファイル」参照)。
例24.6 The /var/lib/named/example.comゾーンファイル¶
1. $TTL 2D 2. example.com. IN SOA dns root.example.com. ( 3. 2003072441 ; serial 4. 1D ; refresh 5. 2H ; retry 6. 1W ; expiry 7. 2D ) ; minimum 8. 9. IN NS dns 10. IN MX 10 mail 11. 12. gate IN A 192.168.5.1 13. IN A 10.0.0.1 14. dns IN A 192.168.1.116 15. mail IN A 192.168.3.108 16. jupiter IN A 192.168.2.100 17. venus IN A 192.168.2.101 18. saturn IN A 192.168.2.102 19. mercury IN A 192.168.2.103 20. ntp IN CNAME dns 21. dns6 IN A6 0 2002:c0a8:174::
$TTLは、このファイルのすべてのエントリに適用されるデフォルトの寿命(time to live)です。この例では、エントリは2日間(2 D)有効です。
ここから、SOA (start of authority)制御レコードが始まります。
管理対象のドメイン名は、先頭のexample.comです。この末尾には、「.」(ピリオド)が付いています。ピリオドを付けないと、ゾーンが再度、末尾に追加されてしまいます。あるいはピリオドを@で置き換えることもできます。その場合は、ゾーンが/etc/named.confの対応するエントリから抽出されます。
IN SOAの後には、このゾーンのマスタであるネームサーバの名前を指定します。この名前は、末尾に「.」(ピリオド)が付いていないので、dnsからdns.example.comに拡張されます。
この後には、このネームサーバの責任者の電子メールアドレスが続きます。@記号はすでに特別な意味を持つので、ここでは代わりに「.」(ピリオド)を使用します。root@example.comの場合、エントリはroot.example.com.となります。フィルタフィールドの右側にある "."を末尾につける必要があります。
「(」は、「)」までの行をすべてSOAレコードに含める場合に使用します。
シリアル番号は任意の番号で、このファイルを変更するたびに増加します。変更があった場合、セカンダリネームサーバ(スレーブサーバ)に通知する必要があります。これには、日付と実行番号をYYYYMMDDNNという形式で表記した10桁の数値が、慣習的に使用されています。
リフレッシュレートは、セカンダリネームサーバがゾーンserial numberを確認する時間間隔を指定します。この例では1日です。
再試行間隔は、エラーが生じた場合に、セカンダリネームサーバがプライマリサーバに再度通知を試みる時間間隔を指定します。この例では2時間です。
有効期限は、セカンダリネームサーバがプライマリサーバに再通知できなかった場合に、キャッシュしたデータを廃棄するまでの時間枠を指定します。ここでは、1週間です。
SOAレコードの最後のエントリは、ネガティブキャッシュTTLです。これは、DNSクエリが解決できないという他のサーバからの結果をキャッシュしておく時間です。
IN NSでは、このドメインを担当するネームサーバを指定します。dnsは、dns.example.comに拡張されます。これは、末尾に「.」が付いていないためです。このように、プライマリネームサーバと各セカンダリネームサーバに1つずつ指定する行がいくつかあります。/etc/named.confでnotifyをnoに設定しない限り、ゾーンデータが変更されると、ここにリストされているすべてのネームサーバにそれが通知されます。
MXレコードは、ドメインexample.com宛ての電子メールを受領、処理、および転送するメールサーバを指定します。この例では、ホストmail.example.comが指定されています。ホスト名の前の数字は、プリファレンス値です。複数のMXエントリが存在する場合、値が最も小さいメールサーバが最初に選択され、このサーバへのメール配信ができなければ、次に小さい値のメールサーバが試みられます。
これらは、ホスト名に1つ以上のIPアドレスが割り当てられている実際のアドレスレコードです。ここでは、名前が「.」なしでリストされています。これは、これらの名前にはドメインが含まれていないためです。したがって、 これらの名前にはすべて、example.comが追加されます。ホストgateには、ネットワークカードが2枚搭載されているので、2つのIPアドレスが割り当てられます。
ホストアドレスが従来型のアドレス(IPv4)の場合、レコードにAが付きます。アドレスがIPv6アドレスの場合、エントリにAAAA が付きます。
![]() | IPv6の構文 |
|---|---|
IPv6レコードの構文は、IPv4と少し異なっています。断片化の可能性があるため、アドレスの前に消失したビットに関する情報を入力する必要があります。IPv6アドレスを必要な数の「0」で満たすには、アドレス内の正しい位置に2つコロンを追加します。 pluto AAAA 2345:00C1:CA11::1234:5678:9ABC:DEF0 pluto AAAA 2345:00D2:DA11::1234:5678:9ABC:DEF0 | |
別名ntpを
dnsのアドレス指定に使用できます(CNAMEは
canonical name(標準化名)を意味する)。
擬似ドメインin-addr.arpaは、IPアドレスからホスト名への逆引き参照に使用されます。このドメインの前に、IPアドレスのネットワーク部分が逆順に指定されます。たとえば、192.168は、168.192.in-addr.arpaに解決されます。参照先 例24.7「逆引き」。
例24.7 逆引き¶
1. $TTL 2D 2. 168.192.in-addr.arpa. IN SOA dns.example.com. root.example.com. ( 3. 2003072441 ; serial 4. 1D ; refresh 5. 2H ; retry 6. 1W ; expiry 7. 2D ) ; minimum 8. 9. IN NS dns.example.com. 10. 11. 1.5 IN PTR gate.example.com. 12. 100.3 IN PTR www.example.com. 13. 253.2 IN PTR cups.example.com.
$TTLは、このファイルのすべてのエントリに適用される標準のTTLです。
この設定ファイルは、ネットワーク192.168の逆引きを有効にします。Given
ゾーン名は168.192.in-addr.arpaであり、これはホスト名に追加しません。そのため、すべてのホスト名はドメインの最後に「.」を付けた完全形式で入力します。残りのエントリは、前のexample.comの例で説明した通りです。
前のexample.comの例を参照してください。
正引きの場合と同様、この行は、このゾーンを担当するネームサーバを指定します。ただし、ホスト名はドメインと末尾の「.」(ピリオド)が付いた完全な形で指定されます。
これらはそれぞれのホスト上でのIPアドレスを示すポインタレコードです。IPアドレスの最後の部分のみが、行の最初に入力され、末尾に「.」(ピリオド)は付きません。ゾーンをこれに追加すると(.in-addr.arpaを付けずに)、完全なIPアドレスが逆順で生成されます。
動的アップデートという用語は、マスタサーバのゾーンファイル内のエントリが追加、変更、削除される操作を指します。この仕組みは、RFC 2136に記述されています。動的アップデートをゾーンごとに個別に構成するには、オプションのallow-updateルールまたはupdate-policyルールを追加します。動的に更新されるゾーンを手動で編集してはなりません。
サーバに更新エントリを転送するには、nsupdateコマンドを使用します。このコマンドの詳細な構文については、nsupdateのマニュアルページ(man8 nsupdate)を参照してください。セキュリティ上の理由から、こうした更新はTSIGキーを使用して実行するようにしてください(24.8項 「安全なトランザクション」参照)。
安全なトランザクションは、共有秘密キー(TSIGキーとも呼ばれる)に基づくトランザクション署名(TSIG)を使用して実現できます。ここでは、このキーの生成方法と使用方法について説明します。
安全なトランザクションは、異なるサーバ間の通信、およびゾーンデータの動的アップデートに必要です。アクセス制御をキーに依存する方が、単にIPアドレスに依存するよりもはるかに安全です。
TSIGキーの生成には、次のコマンドを使用します(詳細については、mandnssec-keygenを参照)。
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
これにより、次のような形式の名前を持つファイルが2つ作成されます。
Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
キー自体(ejIkuCyyGJwwuN3xAteKgg==のような文字列)は、両方のファイルにあります。キーをトランザクションで使用するには、2番目のファイル(Khost1-host2.+157+34265.key)を、できれば安全な方法で(たとえばscpを使用して)、リモートホストに転送する必要があります。host1とhost2の間で安全な通信ができるようにするには、リモートサーバでキーを/etc/named.confファイルに含める必要があります。
key host1-host2 {
algorithm hmac-md5;
secret "ejIkuCyyGJwwuN3xAteKgg==";
};![]() | /etc/named.confのファイルパーミッション |
|---|---|
/etc/named.conf include "filename"
ここで、 | |
サーバhost1がhost2(この例では、アドレス10.1.2.3)のキーを使用できるようにするには、host1の/etc/named.confに次の規則が含まれている必要があります。
server 10.1.2.3 {
keys { host1-host2. ;};
};
同様のエントリがhost2の設定ファイルにも含まれている必要があります。
IPアドレスとアドレス範囲に対して定義されているすべてのACL (アクセス制御リスト―ACLファイルシステムと混同しないこと)にTSIGキーを追加してトランザクションセキュリティを有効にします。対応するエントリは、次のようになります。
allow-update { key host1-host2. ;};
このトピックについての詳細は、update-policyの下の『BIND Administrator Reference Manual』を参照してください。
DNSSEC、すなわちDNSセキュリティは、RFC2535に記述されています。DNSSECに利用できるツールについては、BINDのマニュアルを参照してください。
ゾーンが安全だといえるためには、1つ以上のゾーンキーが関連付けられている必要があります。キーはホストキーと同様、dnssec-keygenによって生成されます。現在、これらのキーの生成には、DSA暗号化アルゴリズムが使用されています。生成されたパブリックキーは、$INCLUDEルールによって、対応するゾーンファイルにインクルードします。
dnssec-signzoneコマンドを使用すると、生成されたキーのセット(keyset-ファイル)を作成し、それらを安全な方法で親ゾーンに転送し、署名することができます。これによって、/etc/named.conf内のゾーンごとにインクルードするファイルが生成されます。
ここで扱ったトピックの詳細については、/usr/share/doc/packages/bind/ディレクトリにインストールされるbind-docパッケージ内の『BIND Administrator Reference Manual』を参照してください。BINDに付属のマニュアルやマニュアルページで紹介されているRFCも、必要に応じて参照してください。/usr/share/doc/packages/bind/README.SuSEには、SUSE Linux Enterprise ServerのBINDに関する最新情報が含まれています。