- はじめに
- 前提条件
- ホストの例
- 私たちの目標
- DNSサーバーにBINDをインストールする
- プライマリDNSサーバーの設定
- Configure Bind
- ローカルファイルの設定
- Create Forward Zone File
- Create Reverse Zone File(s)
- CHECK Bind Configuration Syntax
- Start BIND
- セカンダリDNSサーバーの設定
- DNSクライアントの設定
- クライアントのテスト
- 前方参照
- 逆引きルックアップ
- DNSレコードの維持
- DNSへのホストの追加
- プライマリネームサーバー
- セカンダリネームサーバー
- DNSを使用するように新しいホストを設定します。
- DNSからホストを削除する
- 結論
はじめに
サーバー構成とインフラストラクチャの管理の重要な部分には、適切なドメインネームシステム(DNS)を設定することにより、ネットワークインターフェイスとIPアドレスを名前で簡単に検索する方法を維持することが含まれています。 IPアドレスの代わりに完全修飾ドメイン名(Fqdn)を使用してネットワークアドレスを指定すると、サービスとアプリケーションの構成が容易になり、構成ファ プライベートネットワーク用に独自のDNSを設定することは、サーバーの管理を改善するための素晴らしい方法です。このチュートリアルでは、CentOS7のBINDネームサーバーソフトウェア(BIND9)を使用して内部DNSサーバーをセットアップする方法について説明します。 これにより、内部ホスト名とプライベートIPアドレスを一元的に管理する方法が提供され、環境が複数のホストに拡張される場合には不可欠です。
このチュートリアルのUbuntuバージョンはここにあります。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- 同じデータセンターで実行され、プライベートネットワークが有効になっている一部のサーバー
- プライマリDNSサーバーとして機能するための新しいVPS ns1
- オプション:セカンダリDNSサーバーとして機能するための新しいvps ns2
- 上記のすべてへのルートアクセス(手順1-4はこちら)
dnsの概念に慣れていない場合は、dnsの管理に関する紹介の最初の三つの部分を少なくとも読むことをお勧めします。
ホストの例
たとえば、次のように仮定します。
- “host1″と”host2″という二つの既存のVPがあります
- 両方のVPがnyc3データセンターに存在します
- 両方のVPがプライベートネットワーキングを有効にしています(10.128.0.0/16サブネット上にあります)
- 両方のVPが何らかの形で”host1″で実行されるwebアプリケーションに関連していますexample.com”
これらの仮定では、使用する命名スキームを使用することが理にかなっていると判断します”nyc3.example.com”私たちのプライベートサブネットまたはゾーンを参照するには。 したがって、host1のプライベート完全修飾ドメイン名(FQDN)は”host1.nyc3.example.com次の表に関連する詳細を参照してください。
ホスト | ロール | プライベートFQDN | プライベートIPアドレス |
---|---|---|---|
ホスト | ロール | プライベートFQDN | プライベートIPアドレス | ジェネリックホスト1 | host1.nyc3.example.com/td> | 10.128.100.101 |
ホスト2 | ジェネリックホスト2 | host2.nyc3.example.com | 10.128.200.102 |
注:既存の設定は異なりますが、例の名前とIPアドレスは、機能する内部DNSを提供するためにDNSサーバーを設定する方法を示 ホスト名とプライベートIPアドレスを自分の環境に置き換えることで、この設定を自分の環境に簡単に適応させることができるはずです。 名前付けスキームでデータセンターのリージョン名を使用する必要はありませんが、ここでは、これらのホストが特定のデータセンターのプライベートネットワークに属していることを示すために使用します。 複数のデータセンターを使用する場合は、それぞれのデータセンター内に内部DNSを設定できます。
私たちの目標
このチュートリアルの終わりまでに、プライマリDNSサーバー ns1と、オプションでセカンダリDNSサーバー ns2があります。Th>
プライマリDNSサーバー ns1をインストールすることから始めましょう。
DNSサーバーにBINDをインストールする
注意:赤で強調表示されているテキストは重要です! これは、多くの場合、独自の設定に置き換える必要があるか、それが変更されたり、構成ファイルに追加する必要があることを示すために使用されます。 たとえば、host1のようなものが表示された場合。nyc3.例。comでは、独自のサーバーのFQDNに置き換えます。 同様に、host1_private_ipが表示されている場合は、それを自分のサーバーのプライベートIPアドレスに置き換えます。DNSサーバー ns1とns2の両方で、yumでBINDをインストールします。
- sudo yum install bind bind-utils
y
と入力してプロンプトを確認します。y
と入力してプロンプトを確認します。y
。
BINDがインストールされたので、プライマリDNSサーバーを設定しましょう。
プライマリDNSサーバーの設定
BINDの設定は、メイン設定ファイルnamed.conf
から含まれている複数のファイルで構成されています。 これらのファイル名は、BINDが実行するプロセスの名前であるため、”named”で始まります。 オプションファイルの設定から始めます。
Configure Bind
BINDのプロセスはnamedとして知られています。 そのため、多くのファイルは”BIND”ではなく”named”を参照しています。
ns1で、編集用にnamed.conf
ファイルを開きます。
- sudo vi /etc/named.conf
既存のoptions
ブロックの上に、”trusted”と呼ばれる新しいACLブロックを作成します。 これは、再帰的なDNSクエリを許可するクライアントのリストを定義する場所です(つまり、 ns1と同じデータセンター内にあるサーバー)。 プライベートIPアドレスの例を使用して、ns1、ns2、host1、およびhost2を信頼できるクライアントのリストに追加します。
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};
信頼できるDNSクライアントのリストができたので、options
ブロックを編集します。 Ns1のプライベートIPアドレスをlisten-on port 53
listen-on-v6
行をコメントアウトします。
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...
これらのエントリの下で、allow-transfer
ディレクティブを”none”からns2のプライベートIPアドレスに変更します。 また、allow-query
ディレクティブを”localhost”から”trusted”に変更します。
ファイルの最後に、次の行を追加します。
include "/etc/named/named.conf.local";
今すぐ保存して終了しますnamed.conf
。 上記の設定では、自分のサーバー(「信頼された」サーバー)のみがDNSサーバーを照会できるように指定しています。
次に、DNSゾーンを指定するためにローカルファイルを設定します。
ローカルファイルの設定
ns1で、編集用にnamed.conf.local
ファイルを開きます。
- sudo vi /etc/named/named.conf.local
ファイルは空 ここでは、順方向ゾーンと逆方向ゾーンを指定します。
次の行で前方ゾーンを追加します(ゾーン名を独自のものに置き換えます)。
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};
プライベートサブネットが10.128.0であると仮定します。0/16、次の行でreverse zone byを追加します(reverse zone名は”128.10″で始まり、”10.128″のオクテット反転であることに注意してください)。
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };
サーバーが複数のプライベートサブネットにまたがるが、同じデータセンターにある場合は、個別のサブネットごとに追加のゾーン 必要なすべてのゾーンの追加が完了したら、named.conf.local
ファイルを保存して終了します。
ゾーンがBINDで指定されたので、対応するforwardゾーンファイルとreverseゾーンファイルを作成する必要があります。
Create Forward Zone File
forward zoneファイルは、forward DNSルックアップのDNSレコードを定義する場所です。 つまり、DNSが名前クエリを受信すると、”host1.nyc3.example.comたとえば、forward zoneファイルを検索して、host1の対応するプライベートIPアドレスを解決します。
ゾーンファイルが存在するディレクトリを作成しましょう。 私たちの名前によると。コンフ…ローカル設定では、その場所は/etc/named/zones
でなければなりません:
- sudo chmod 755 /etc/named
- sudo mkdir /etc/named/zones
次に、フォワードゾーンファイルを編集しましょう。
- sudo vi /etc/named/zones/db.nyc3.example.com
最初に、SOAレコードを追加します。 強調表示されたns1FQDNを独自のFQDNに置き換え、次に第二のfqdnを置き換えます”nyc3.example.com”独自ドメインで ゾーンファイルを編集するたびに、named
プロセスを再起動する前にシリアル値をインクリメントする必要があります–それを”3″にインクリメン これは次のようになります。
その後、ネームサーバレコードを次の行で追加します(名前を独自のものに置き換えます)。 2番目の列は、これらが”NS”レコードであることを指定していることに注意してください。
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
次に、このゾーンに属するホス これには、名前を”で終わらせたいサーバーが含まれます。nyc3.example.com”(名前とプライベートIPアドレスを置き換えます)。 この例の名前とプライベートIPアドレスを使用して、ns1、ns2、host1、およびhost2のレコードを次のように追加します:/etc/named/zones/db.nyc3.example.com—3of3
db.nyc3.example.com
ファイルを保存して終了します。/etc/named/zones/db.nyc3.example.com—complete
次に、リバースゾーンファイルに移動しましょう。
Create Reverse Zone File(s)
Reverse zone fileは、dns ptrレコードを逆引きDNSルックアップ用に定義する場所です。 つまり、DNSがIPアドレス”10.128.100.101″などのクエリを受信すると、逆ゾーンファイルを検索して対応するFQDN”host1″を解決します。nyc3.example.com「この場合。
ns1で、named.conf.local
ファイルで指定された逆ゾーンごとに、逆ゾーンファイルを作成します。
で定義されている逆ゾーンに対応する逆ゾーンファイルを編集しますnamed.conf.local
:
- sudo vi /etc/named/zones/db.10.128
順方向ゾーンファイルと同じ方法で、強調表示されたns1FQDNを独自のFQDNに置き換えてから、第二の”fqdn”を置き換えます。nyc3.example.com”独自ドメインで ゾーンファイルを編集するたびに、named
プロセスを再起動する前にシリアル値をインクリメントする必要があります–それを”3″にインクリメン これは次のようになります。
その後、ネームサーバレコードを次の行で追加します(名前を自分の名前に置き換えます)。 2番目の列は、これらが”NS”レコードであることを指定していることに注意してください:
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
次に、編集しているゾーンファイルのサブネット上にIPアドレスがあるすべてのサーバーのレコードを追加します。PTR
この例では、すべてのホストが10.128.0.0/16サブネット上にあるため、これにはすべてのホストが含まれます。 最初の列は、サーバーのプライベートIPアドレスの最後の二つのオクテットで逆の順序で構成されていることに注意してください。 サーバーと一致するように名前とプライベートIPアドレスを置き換えてください。
逆ゾーンファイルを保存して終了します(逆ゾーンファイルを追加する必要がある場合は、このセクションを繰り返します)。最後のリバースゾーンファイルの例は、次のようになります。
CHECK Bind Configuration Syntax
次のコマンドを実行して、named.conf*
ファイルの構文をチェックします。
- sudo named-checkconf
指定された設定ファイルに構文エラーがない場合は、シェルプロンプトに戻り、エラーメッセージは表示されません。 設定ファイルに問題がある場合は、エラーメッセージとConfigure Primary DNS Serverセクションを確認してから、named-checkconf
をもう一度試してください。
named-checkzone
named.conf.local
で定義されています。
たとえば、”nyc3.example.com”転送ゾーンの設定、次のコマンドを実行します(転送ゾーンとファイルに一致するように名前を変更します):p>
- sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com
そして、”128.10.in-addr.arpa”ゾーン構成を逆にして、次のコマンドを実行します(逆ゾーンとファイルに一致するように番号を変更します)。
- sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128
すべての構成ファイルとゾー
Start BIND
Start BIND:
- sudo systemctl start named
これで有効にしたいので、起動時に起動します。
- sudo systemctl enable named
プライマリDNSサーバーが設定され、DNSクエリに応答する準備ができました。 セカンダリDNSサーバーの作成に移りましょう。
セカンダリDNSサーバーの設定
ほとんどの環境では、プライマリが使用できなくなった場合に要求に応答するセカンダリDNSサーバーを設定する 幸いなことに、セカンダリDNSサーバーは構成がはるかに簡単です。
ns2で、named.conf
ファイルを編集します。
- sudo vi /etc/named.conf
注意:これらの手順をスキップしたい場合は、ns1のnamed.conf
ファイルをコピーし、ns2のプライベートIPアドレスをリッスンするように変更し、転送を許可しないように変更することができます。
既存のoptions
ブロックの上に、”trusted”という新しいACLブロックを作成します。 ここで、再帰的なDNSクエリを許可するクライアント(つまり、ns1と同じデータセンターにあるサーバー)のリストを定義します。 プライベートIPアドレスの例を使用して、ns1、ns2、host1、およびhost2を信頼できるクライアントのリストに追加します。
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};
信頼できるDNSクライアントのリストができたので、options
ブロックを編集します。 Ns1のプライベートIPアドレスをlisten-on port 53
listen-on-v6
行をコメントアウトします。
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...
allow-query
ディレクティブを”localhost”から”trusted”に変更します。
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...
ファイルの最後に、次の行を追加します。
include "/etc/named/named.conf.local";
今すぐ保存して終了しますnamed.conf
。 上記の設定では、自分のサーバー(「信頼された」サーバー)のみがDNSサーバーを照会できるように指定しています。
次に、DNSゾーンを指定するためにローカルファイルを設定します。P>
保存して終了しますnamed.conf
。
ここで、named.conf.local
ファイルを編集します。
- sudo chmod 755 /etc/named
- sudo vi /etc/named/named.conf.local
プライマリDNSサーバーのマスターゾーンに対応するスレーブゾー タイプは”slave”であり、ファイルにはパスが含まれておらず、プライマリDNSサーバーのプライベートIPに設定する必要があるmasters
ディレクティブがあ プライマリDNSサーバーで複数の逆ゾーンを定義した場合は、それらをすべてここに追加してください。
今すぐ保存して終了しますnamed.conf.local
。
次のコマンドを実行して、設定ファイルの有効性を確認します。
- sudo named-checkconf
チェックアウトしたら、BINDを開始します。
- sudo systemctl start named
ブート時にbindを開始するようにします。
sudo systemctl enable named
これで、プライマリDNSサーバーとセカンダリDNSサーバーがあります。プライベートネットワーク名とipアドレスの解決。 ここで、プライベートDNSサーバーを使用するようにサーバーを構成する必要があります。
DNSクライアントの設定
“信頼された”ACL内のすべてのサーバーがDNSサーバーを照会できるようにするには、ns1とns2をネームサーバーとして使用するよ このプロセスはOSによって異なりますが、ほとんどのLinuxディストリビューションでは、ネームサーバーを/etc/resolv.conf
ファイルに追加する必要があります。CentOS、RedHat、Fedora Linux VPSでは、resolv.conf
ファイルを編集するだけです:次に、ファイルの先頭に次の行を追加します(プライベートドメイン、およびns1およびns2プライベートIPアドレスを置き換えます)。
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address
今すぐ保存して終了します。 これで、クライアントはDNSサーバーを使用するように構成されました。UbuntuおよびDebian Linux VPSでは、ブート時にresolv.conf
head
resolv.conf
:ファイルに次の行を追加します(プライベートドメイン、およびns1およびns2プライベートIPアドレスを置き換えます)。
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address
今すぐ実行resolvconf
resolv.conf
ファイルを生成します。
- sudo resolvconf -u
クライアントがDNSサーバーを使用するよう
クライアントのテスト
“bind—utils”パッケージに含まれているnslookup
を使用して、クライアントがネームサーバーを照会できるかどうか 設定したすべてのクライアントでこれを行うことができ、”信頼された”ACLにある必要があります。
前方参照
例えば、我々はのIPアドレスを取得するために前方参照を実行することができますhost1.nyc3.example.com 次のコマンドを実行します。
- nslookup host1
“host1″を照会すると、”host1″が展開されます。”host1″を照会すると、”host1″に展開されます。”host1″を照会すると、”host1″に展開さhost1.nyc3.example.com そのため、search
オプションはプライベートサブドメインに設定されており、DNSクエリは他の場所でホストを探す前にそのサブドメイン 上記のコマンドの出力は次のようになります。
Output:Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101
逆引きルックアップ
逆引きルックアップをテストするには、host1のプライベートIPア
すべての名前とIPアドレスが正しい値に解決された場合、ゾーンファイルが適切に構成されていることを意味します。 予期しない値が表示された場合は、プライマリDNSサーバー上のゾーンファイルを確認してください(例: db.nyc3.example.com
db.10.128
)。
おめでとうございます!
これで、内部DNSサーバーが適切に設定されました! 今私達はあなたの地帯の記録を維持することをカバーする。
DNSレコードの維持
内部DNSが動作しているので、DNSレコードを維持して、サーバー環境を正確に反映する必要があります。
DNSへのホストの追加
環境にホストを追加するたびに(同じデータセンター内の)、それをDNSに追加したいと思うでしょう。 ここでは、実行する必要がある手順のリストです:
プライマリネームサーバー
- フォワードゾーンファイル:新しいホストの”A”レコードを追加し、”Serial”の値をインクリメントします
- リバースゾーンファイル:新しいホストの”PTR”レコードを追加し、”Serial”の値をインクリメントします
- 新しいホストのプライベートIPアドレスを”trusted”ACLに追加します(
named.conf.options
)
ul新しいホストのプライベートIpアドレスを「信頼された」aclに追加します(named.conf.options
)
次にバインドをリロードします。
- sudo systemctl reload named
セカンダリネームサーバー
- 新しいホストのプライベートIpアドレスを「信頼された」aclに追加します(
named.conf.options
)
次にバインドをリロードします:
- sudo systemctl reload named
DNSを使用するように新しいホストを設定します。
- resolvを設定します。dnsサーバーを使用するconf
- Test using
nslookup
DNSからホストを削除する
環境からホストを削除するか、DNSから削除したい場合は、サーバーをDNSに追加したときに追加されたすべてのものを削除するだけです(つまり、上記の手順の逆)。
結論
これで、サーバーのプライベートネットワークインターフェイスをIPアドレスではなく名前で参照することができます。 これにより、プライベートIPアドレスを覚えておく必要がなくなり、ファイルの読み取りと理解が容易になるため、サービスとアプリケーションの構成が また、今、あなたは代わりに、メンテナンスを容易にする分散構成ファイルの様々なを編集することの、単一の場所、プライマリDNSサーバーに新しいサーバーを指
内部DNSをセットアップし、構成ファイルがプライベートFqdnを使用してネットワーク接続を指定したら、DNSサーバーが適切に維持されていることが重要です。 両方が使用できなくなった場合、それらに依存するサービスとアプリケーションは正常に機能しなくなります。 このため、少なくとも1つのセカンダリサーバーを使用してDNSをセットアップし、それらすべての作業バックアップを維持することをお勧めします。