GNU/Linux >> Linux の 問題 >  >> Linux

UbuntuDNSサーバーについて知っておくべきことすべて

DNSまたはドメインネームシステムは、インターネットの最も重要な部分の1つです。インターネットを利用する人は誰でも毎日DNSサービスを利用しています。しかし、それは他のインターネット狂乱と比較して大いに見過ごされています。つまり、DNSサービスはURLをIPアドレスに変換します。ご存知のとおり、IPアドレスは、ネットワークに接続されているすべてのものを識別する一意の番号です。 Linux管理のキャリアを追求したい場合は、DNSがどのように機能するかを十分に理解している必要があります。このガイドでは、コアDNSの概念の実用的な概要とUbuntuDNSサーバーの実際の例を示します。

ドメインネームシステム(DNS)の詳細

DNSはいくつかのサービスとそれらの間の複雑な相互作用で構成されているため、ユーザーは舞台裏で何が起こっているかを理解するためにコア用語に精通している必要があります。そのため、ガイド全体をいくつかのセクションに分割しました。最初のものは用語と概念の簡単な紹介を提供し、他のものはワークフローと構成を扱います。

コアDNSの用語と概念の概要

DNSを使用する場合、ホスト、ゾーン、TLD、リゾルバーなどのさまざまな用語や用語に直面します。以下のセクションでは、これらの概念のいくつかを簡潔に紹介します。

DNS

DNSまたはドメインネームシステムは、完全修飾ドメイン名(FQDN)を解釈するメカニズムです。 特定のIPアドレスに。これは、システムがWebリソースの送信と取得に使用するアドレスです。 DNSは複数のシステムで構成されており、多方向通信を実行してURLに関連付けられたIPアドレスを取得します。

ドメイン名

ドメイン名は、Webリソースに関連付けられた人間が読める形式のアドレスです。それらは、多数のIPアドレスを記憶するという曖昧さを取り除きます。たとえば、google.comはGoogle検索エンジンのドメイン名です。ブラウザのアドレスバーにこれを入力すると、DNSシステムを利用して実際のIPアドレスが検索されます。

IPアドレス

IPアドレスは、特定の時点でインターネットに接続されているすべてのデバイスに割り当てられた一意の番号です。 IPアドレスには、いくつかのクラスと2つのメジャーバージョンがあります。現在、ほとんどの人がIPバージョン4を使用しています。 IPv4アドレスは、それぞれピリオド「。」で区切られた4つのオクテットで構成されます。シンボル。

TLD

TLD sまたはトップレベルドメイン ドメイン名の階層の最上位に位置します。これらはドメイン名の最も一般的な部分であり、右端の最も遠い位置にあります。たとえば、「 com 」の部分は、URLのTLDです www.example.com 。人気のあるトップレベルドメインには、「com」、「org」、「gov」、「net」、「edu」などがあります。

ホスト

ドメインの所有者は、そのドメイン内にいくつかの異なるホストを定義できます。これらは、個別のサービスまたはコンピューターにアクセスするために使用できます。ほとんどのWebサーバーには、example.comのようなベアドメインまたはwww.example.comのようなホスト宣言を介してアクセスできます。ここでは「www」の部分がホストです。ホストのもう1つの一般的な使用法は、api.example.comのようなAPIアクセスを提供することです。

サブドメイン

---

サブドメインは、単にドメインのサブセットです。これにより、サイト所有者は親ドメインの下に複数のサブドメインを持つことができます。たとえば、university.eduというドメインには、www.cs.university.eduやwww.phy.university.eduなど、部門ごとに複数のサブドメインがある場合があります。ホストとサブドメインの違いは、前者は異なるコンピューターまたはサービスを指定し、後者は親ドメインを異なるグループに分割することです。

完全修飾ドメイン名

完全修飾ドメイン名 またはFQDN Webサイトの絶対ドメインです。問題のドメインのルートを表します。ドメインには通常、www.example.com / new/exampleなどの複数のサブルートまたはパスが含まれています。ここで、www.example.comセクションはFQDNです。さらに、FQDNは常にピリオド「。」で終わります。 「www.example.com」のような記号。ただし、クライアントプログラムが処理するため、ユーザーはこの末尾のドットを入力する必要はありません。

ネームサーバー

DNSでは、ネームサーバーは、ドメイン名をアドレス可能なIPに変換する役割を担うコンピューターシステムです。彼らはubuntuDNSインフラストラクチャ内で実際の作業のほとんどを行います。ネームサーバーは1秒あたり数千のリクエストを処理する必要があるため、多くの場合、追加のリクエストを新しいサーバーにリダイレクトします。さらに、ネームサーバーは権限のあるサーバーとしても機能します。このシナリオでは、彼らは自分たちの管理下にあるクエリに応答し、それ以外の場合は他のサーバーからのキャッシュされた応答を提供します。

ゾーンファイル

ゾーンファイルは、ドメイン名と関連するIPアドレス間の関係を格納する実際のテキストファイルです。 DNSシステムは、このドキュメントからFQDNのIP情報を取得します。それらはネームサーバーに保存され、特定のドメインでアクセス可能なリソースを指定します。ゾーンファイルで情報を利用できない場合は、そのデータがある場所を指します。

ルートサーバー

すでに説明したように、DNSはマルチレベルのコンポーネントで構成される階層システムです。ルートサーバーは、この階層の最上位にあります。これらは、複数の組織によって維持されている非常に強力なサーバーであり、 ICANN(割り当てられた名前と番号のためのインターネットコーポレーション)によって制御されています。 。現在、世界中に13のプライマリルートサーバーがあり、それぞれがミラーリングされて可用性が向上しています。

誰かがルートサーバーを要求すると、その要求は最も近いミラーに転送されます。ルートサーバーは、トップレベルドメインに関するクエリを処理します。下位レベルのネームサーバーが解決できない問題がある場合は常に、ルートサーバーにその質問が表示されます。ただし、ルートサーバーには実際にはIP情報がありません。代わりに、その特定のTLDを管理するネームサーバーを指します。

TLDサーバー

TLDサーバーは、DNS階層のルートサーバーの下にあります。ルートサーバーは、DNS要求エンティティをその要求のTLDサーバーに向けます。次に、TLDサーバーは、要求元のエンティティを、問題のドメインの特定のIP情報を持つネームサーバーにリダイレクトします。

ドメインレベルのネームサーバー

TLDサーバーは、要求元のエンティティをドメインレベルのネームサーバーにリダイレクトします。これは、ゾーンファイルにドメインのIPマッピングが含まれているサーバーです。つまり、これは、要求されたドメイン名の特定のIPアドレスを取得したネームサーバーです。

リゾルバー

リゾルバーは、DNSからドメインのIP情報を取得する責任がある要求エンティティです。通常、ブラウザやカスタムubuntuDNS設定などのクライアントシステム内で構成されます。ほとんどの人は、ISPが提供するDNSリゾルバーを使用します。リゾルバーは基本的に、エンドユーザーが内部で何が起こっているかを知らないようにする抽象化です。特定のドメインのIPアドレスを取得するまで、再帰的に機能します。

記録

ネームサーバーがドメインからIPへのマッピングをゾーンファイルに保存することについてはすでに説明しました。ゾーンファイルの情報はレコードとして保存されます。ゾーンファイルには多くの種類のレコードがあります。ここでは、最も重要なもののいくつかに触れています。

SOAレコード

SOAはStartof Authorityの略です とは、すべてのゾーンファイルの必須レコードです。ゾーンファイルの最初の実際のレコードは、SOAタイプである必要があります。 SOAレコードを完全に理解するまでには時間がかかる場合があります。それまでは、次のポイントを覚えておいてください。まず、SOAレコードは次のスニペットのようになります。

example.com. IN SOA ns1.example.com. admin.example.com. (
12083        ; serial number 
3h           ; refresh interval 
30m          ; retry interval 
3w           ; expiry period 
1h           ; negative TTL )

重要な部分は次のとおりです。

  • example.com –これはゾーンのルートであり、ファイルが「example.com」用であることを指定します。ドメイン。
  • SOA内 –「IN」はインターネットを表し、SOAはこれがSOAレコードであるという事実を表します。
  • ns1.example.com。 –これは「example.com」のプライマリネームサーバーです。ドメイン。また、動的なubuntu DNSを構成している場合は、プライマリネームサーバーがここに表示されます。
  • admin.example.com。 –これは、この特定のゾーンを担当する管理者の電子メールアドレスです。 「@」記号はピリオド「。」に置き換えられます。メールアドレスの記号。
  • 12083 –これはこのゾーンのシリアル番号であり、ゾーンファイルを更新するたびにこのシリアルをインクリメントする必要があります。これは、セカンダリサーバーがこのゾーンで変更が行われたことを判断する方法です。
  • 3時間 –ゾーンの更新間隔は、プライマリサーバーのゾーンファイルで変更を探す前にセカンダリサーバーが待機する時間を指定します。
  • 30m –ゾーンの再試行間隔は、プライマリサーバーのポーリングを再試行する前にセカンダリサーバーが待機する時間を指定します。
  • 3w –これは有効期限であり、セカンダリサーバーが正常な通信を確立するために試行する時間を定義します。この時間枠内に接続を確立できない場合、セカンダリサーバーはこのゾーンの権限として応答を停止します。
  • 1時間 –ネームサーバーがこのゾーンファイルで要求された名前を見つけることができない場合、この時間の間、名前エラーをキャッシュします。

AおよびAAAAレコード

AおよびAAAAレコードは、ホストを実際のIPアドレスにマップします。 「A」レコードはホストを動作中のIPv4アドレスにマップし、「AAAA」レコードはホストをIPv6アドレスにマップします。以下は、これらのレコードタイプの一般的な形式です。

hostname   IN  A     IPv4Address
hostname   IN  AAAA  IPv6Address

以下は、SOAレコードで定義されたns1ネームサーバーを使用した適切な例です。

ns1.example.com.  IN  A  111.112.221.222

次の「A」レコードは、Webサーバーを「www」として定義します。

www  IN  A  111.112.211.212

CNAMEレコード

CNAMEレコードは、AまたはAAAAレコードによって定義されたネームサーバーのエイリアスを表します。たとえば、次のスニペットは、Aレコードを使用して「サーバー」と呼ばれるホストを宣言し、そのホストの「www」エイリアスを作成します。

server IN  A      111.111.111.111
www    IN  CNAME  server

ただし、エイリアスを作成すると、サーバーへの追加のクエリが必要になるため、パフォーマンスが低下する可能性があります。 CNAMEレコードは通常、外部リソースの正規名を付けるために使用されます。

MXレコード

MXレコードは、ドメイン名のメール交換を指定し、Linuxメールサーバーに到着する電子メール通信を受信するために使用されます。ほとんどのレコードタイプとは異なり、ゾーン全体に適用されるため、ホストをIPにマップしません。以下はMXレコードの簡単な例です。

IN  MX  10  mail.example.com.

このレコードにはホストが定義されておらず、新しい番号「10」も付いていることに注意してください。これは、好みを示すために使用されます。複数のMXレコードがある場合、メールは優先番号が最も低いサーバーに送信されます。

NSレコード

NSレコードは、ゾーンに使用されるネームサーバーを指定します。ゾーンファイルはネームサーバーにすでに存在するため、無関係に見えるかもしれませんが、いくつかの理由で使用されています。多くの場合と同様に、DNSサーバーによって提供されるゾーンファイルは、実際には別のサーバーのキャッシュされたコピーである可能性があります。

IN  NS  ns1.example.com.
IN  NS  ns2.example.com.

MXレコードと同様に、NSレコードもゾーン全体に対して定義され、ホスト名は必要ありません。さらに、多くのubuntu DNSは、ゾーンファイルに複数のnsレコードが含まれていない場合、ゾーンファイルを無効と見なす役割を果たします。したがって、ほとんどのゾーンファイルは複数のネームサーバーを定義します。

PTRレコード

PTRレコードは、動作中のIPアドレスに関連付けられた名前を指定し、AまたはAAAAレコードの逆です。それらは.arpaルートで開始する必要があり、IPの所有者に委託されます。組織やサービスプロバイダーへのIPの委任は、地域インターネットレジストリ(RIR)によって処理されます。 。

222.111.222.111.in-addr.arpa.  33692  IN  PTR  host.example.com.

上記のスニペットは、PTRレコードの基本的な例を示しています。 IP222.111.222.111を「host.example.com」にマップします。

CAAレコード

CAAレコードは、どの認証局(CA)を定義します 特定のドメイン名に対してSSL/TLS証明書を発行することが許可されています。ドメインにCAAレコードが定義されていない場合、どのCAでも証明書を発行できます。ただし、CAが明示的に定義されている場合は、その特定の機関のみが証明書を発行できます。

example.com.  IN  CAA  0  issue  "letsencrypt.org"

CAAレコードは上記のスニペットのようになります。ホスト、IN、およびCAAフィールドはDNS固有ですが、フラグ(0)、タグ(issue)、および値( "letsencrypt.org")はCAA固有です。フラグが「0」に設定されている場合、CAはレコードを無視しますが、「1」に設定されている場合、CAは証明書の発行を控える必要があります。

DNSは実際にどのように機能しますか?

すべての主要な用語と関連する概念を学習したので、実際のDNS要求がどのように機能するかを発見できます。簡単な実世界のイラストを提供し、クエリのパスを注意深く分析します。

Ubuntuを搭載したラップトップデバイスからウェブサイト「www.example.com。」への接続を確立しようとしているとします。 「。インターネットブラウザを開き、アドレスバーにURLを入力して、Enterキーを押します。最初に、クライアントまたは私のブラウザ(この場合)は、「www.example.com」のIPかどうかを確認します。すでにキャッシュに存在します。それが見つかった場合は、以降のすべての手順をスキップします。

クライアントがブラウザキャッシュでIPを見つけられなかった場合、クライアントはリクエストをリゾルバーまたは私の場合はISPのネームサーバーに転送します。リゾルバーは、他のユーザーが最近このWebサイトにアクセスしたかどうかを確認し、アクセスした場合は、キャッシュからIPを見つけます。それ以外の場合、リゾルバーは要求をルートネームサーバーの1つに転送します。

ルートサーバーは、そのドメインのTLDネームサーバーのアドレス(「 .com 」)を返します。 この例では、」ネームサーバー。ここで、リゾルバーはTLDサーバーに要求を送信して、期待される結果が得られるかどうかを確認します。ただし、TLDサーバーにも情報はありませんが、どのネームサーバーが情報を持っているかはわかっています。 URLのドメインからIPへのマッピングを持つネームサーバーのアドレスを返します。

リゾルバーがネームサーバーにドメインを要求すると、適切なIPを返します。次に、リゾルバーは実際のIPアドレスをクライアントプログラムに送信するだけで、必要な通信を確立できます。

ご覧のとおり、ubuntu DNSリクエスト全体のパスは、多くの再帰クエリと反復クエリで構成されています。さらに、キャッシュのいくつかのレイヤーがこのメカニズムに追加され、物事をシンプルかつ高速にします。そのため、ほとんどの場合、ブラウザは完全なDNSクエリが実行されるのを待つ必要はありません。たとえば、YouTubeのような人気のあるウェブサイトにアクセスする場合、ISPのキャッシュにはすでにそのドメインのIPが含まれている可能性があります。

さらに、Ubuntu DNS構成は、サーバーのアプリケーションと役割によって大きく異なります。キャッシングネームサーバーとして構成されている場合、DNSサーバーはクライアントクエリに対する回答を見つけ、将来のクエリのために回答を記憶します。代わりにDNSをプライマリサーバーに設定すると、DNSはゾーンファイルからゾーンのデータを読み取り、そのゾーンに対してのみ権限を与えられます。セカンダリサーバーとして構成すると、別のネームサーバーのゾーンファイルからデータを取得します。

UbuntuDNSサーバーのインストールと構成

DNSがどのように機能するか、およびほとんどの重要な概念について説明したので、独自のDNSサーバーの作成を開始できます。チュートリアルのこの部分では、 BINDを使用します (Berkley Internet Naming Daemon) プログラムは、最も人気のあるDNS実装であり、高負荷でも非常に安定したパフォーマンスを提供します。

次の簡単なコマンドを使用して、UbuntuマシンにBINDをインストールします。 dnsutilsをダウンロードすることもお勧めします 、DNSサーバーの問題をテストおよびトラブルシューティングするための堅牢なパッケージ。

$ sudo apt install bind9
$ sudo apt install dnsutils

BINDの構成ファイルは、 / etc / bindにあります。 Linuxファイルシステムのディレクトリ。主な構成データは/etc/bind/named.confに保存されます ファイル。 /etc/bind/named.conf.options ファイルは、グローバルオプション、 /etc/bind/named.conf.localの設定に使用されます ゾーンを構成するため、および /etc/bind/named.conf.default-zones デフォルトゾーンを管理するためのファイル。

以前、Ubuntuは /etc/bind/db.rootを使用していました ルートネームサーバーを記述するためのファイル。現在、ファイル /usr/share/dns/root.hintsを使用しています 代わりは。したがって、このファイルは/etc/bind/named.conf.default-zones内で参照されます。 ファイル。

さらに、同じubuntu DNSサーバーをプライマリ、セカンダリ、およびキャッシングサーバーとして構成することは完全に可能です。サーバーがサービスを提供しているゾーンに基づいて、役割が変わります。たとえば、サーバーを Start of Authority(SOA)になるように構成できます。 別のゾーンにセカンダリサービスを提供しながら、1つのゾーンに対して。それまでの間、ローカルLAN上にあるホストにキャッシュサービスを提供できます。

プライマリサーバー

このセクションでは、プライマリネームサーバーのUbuntuDNS構成を作成する方法を示します。このサーバーは、FQDN「 example.com」のクエリを処理します 「。同じ構成を実装するには、このドメイン名を独自のURLに置き換えるだけです。

まず、フォワードゾーンファイルを設定する必要があります。 /etc/bind/named.conf.localを開きます お気に入りのLinuxテキストエディタを使用してファイルを作成し、次のスニペットを追加します。

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

構成ファイルを変更するたびに自動更新を取得するようにBINDDNSサーバーを構成できます。これを行うには、ファイル/var/lib/bind/db.example.comを使用します 上記のスニペットと次のコマンドの両方で。

$ sudo cp /etc/bind/db.local /etc/bind/db.example.com

上記のコマンドは、次の手順のテンプレートとして使用する既存のゾーンファイルをコピーします。次に、ゾーンファイル( /etc/bind/db.example.com )を編集します。 )そして必要な変更を加えます。

$ sudo nano /etc/bind/db.example.com

まず、「localhost」を置き換えます。サーバーのFQDNである「example.com」に移動します。末尾に「。」を追加することを忘れないでください。 FQDNで。ここで、「127.0.0.1」をネームサーバーの実際のIPと「root.localhost」に変更します。アクティブなメールアドレスに。 「。」を使用することを忘れないでください。メールアドレスの「@」記号の代わりに。また、このゾーンファイルのFQDNを文書化するコメントを追加することをお勧めします。ファイルは次のようになります。

;
; BIND data file for example.com
;
$TTL 604800
@  IN SOA example.com. root.example.com. (
2         ; Serial
604800    ; Refresh
86400     ; Retry
2419200   ; Expire
604800 )  ; Negative Cache TTL

------------------------------------------------------------------
------------------------------------------------------------------

これまで、SOAレコードを変更しただけです。 NSレコードとゾーンファイルのAレコードに変更を加えるときが来ました。 「localhost」を変更します。ネームサーバー(「ns.example.com」)と一致するNSレコードの一部。デモFQDNについて。最初のAレコードの「127.0.0.1」部分をネームサーバーのIPに置き換えます。 「192.168.1.10」を使用しました。最後に、以下のスニペットの最後の行を追加して、ネームサーバー「ns.example.com」のAレコードを作成します。

;
; BIND data file for example.com
;
$TTL       604800
@          IN    SOA   example.com. root.example.com. (
                       3           ; Serial
                       604800      ; Refresh
                       86400       ; Retry
                       2419200     ; Expire
                       604800 )    ; Negative Cache TTL

@         IN    NS     ns.example.com.
@         IN    A      192.168.1.10
@         IN    AAAA   ::1
ns        IN    A      192.168.1.10

これは、プライマリサーバーのフォワードゾーンの最終的な構成がどのようになるかを示しています。

シリアル番号をインクリメントすることを忘れないでください。そうしないと、BINDは構成の変更に気づきません。複数のチャンスを追加する場合、毎回シリアルを変更する必要はありません。追加のubuntuDNSレコードを追加する場合は、上記のオプションの下に追加するだけです。すべてが構成されたら、以下のコマンドを使用してBINDを再起動します。

$ sudo systemctl restart bind9.service

フォワードゾーンファイルが適切に構成されたので、リバースゾーンファイルを変更しましょう。これにより、UbuntuDNSサーバーはIPをFQDNに解決できます。 /etc/bind/named.conf.localを編集するだけです ファイルを作成し、以下のスニペットを追加します。

$ sudo nano /etc/bind/named.conf.local
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

「1.168.192」を独自のネットワークの最初の3オクテットに置き換える必要があります。さらに、ゾーンファイルにはそれに応じた名前を付ける必要があります。 「192」を置き換えます ゾーンファイルの一部「/etc/bind/db.192」 ネットワークの最初のオクテットに一致します。たとえば、ネットワーク上にいる場合は 10.1.1.1/24; ゾーンファイルは「/etc/bind/db.10」になります 」とエントリ「1.168.192.in-addr.arpa 」は「10.1.1.in-addr.arpa」になります 「。

$ sudo cp /etc/bind/db.127 /etc/bind/db.192

/etc/bind/db.192を作成しました 既存のテンプレートファイルをコピーしてファイルします。それでは、このファイルを編集して、 /etc/bind/db.example.comに同じ変更を加えましょう。 ファイル。

$ sudo nano /etc/bind/db.192
;
; BIND reverse data file for local 192.168.1.XXX net
;
$TTL    604800
@       IN   SOA  ns.example.com. root.example.com. (
                  2               ; Serial
                  604800          ; Refresh
                  86400           ; Retry
                  2419200         ; Expire
                  604800 )        ; Negative Cache TTL
;
@      IN   NS    ns.
10     IN   PTR   ns.example.com.

リバースゾーンファイルを連続して変更するたびに、シリアル番号をインクリメントすることを忘れないでください。さらに、 /etc/bind/db.example.comで構成されたすべてのAレコードに対して 、常にファイル /etc/bind/db.192にPTRレコードを追加する必要があります 。

これがすべて完了したら、BINDサービスを再起動するだけです。

$ sudo systemctl restart bind9.service

セカンダリサーバー

すでに述べたように、セカンダリサーバーを作成することは、いくつかの理由から優れたアイデアです。その1つは、可用性の向上です。これにより、Ubuntu DNSサーバーの復元力が高まり、より多くのクライアントにサービスを提供できるようになります。したがって、セカンダリネームサーバーを作成する場合は、以下のセクションを確認してください。

まず、プライマリサーバーでゾーン転送を許可する必要があります。フォワードゾーンとリバースゾーンの構成を編集し、「転送を許可」を追加するだけです。 」オプションをゾーンに追加します。

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
};

ここで、単に「 192.168.1.11」に置き換えます 」とセカンダリサーバーのIPアドレス。

次に、次のコマンドを発行して、プライマリサーバーでBINDを再起動します。

$ sudo systemctl restart bind9.service

次に、セカンダリサーバーにBINDをインストールする必要があります。次に、 /etc/bind/named.conf.localの編集に進みます ファイルを作成し、順方向ゾーンと逆方向ゾーンの両方に以下を追加します。

zone "example.com" {
type slave;
file "db.example.com";
masters { 192.168.1.10; };
}; 

zone "1.168.192.in-addr.arpa" {
type slave;
file "db.192";
masters { 192.168.1.10; };
};

192.168.1.10」を置き換えるだけです 」とプライマリネームサーバーのIP。もう一度BINDを再起動すれば、準備は完了です。

$ sudo systemctl restart bind9.service

Ubuntu DNSゾーンは、プライマリサーバーのシリアル番号がセカンダリサーバーのシリアル番号よりも大きい場合にのみ転送可能であることに注意してください。ただし、オプション「 also-notify {ipaddress; }; 」を/etc/bind/named.conf.localに送信します プライマリサーバー上のファイル。この後、ファイルは次のようになります。

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

キャッシュサーバー

デフォルト構成はすでにキャッシングサーバーとして機能しているため、キャッシングネームサーバーを作成するために多くのことを行う必要はありません。 /etc/bind/named.conf.optionsを編集するだけです フォワーダーセクションをファイルしてコメントを外します。以下に示すように、ISPのDNSサーバーのIPを入力します。

$ sudo nano /etc/bind/named.conf.options
forwarders {
1.2.3.4;
5.6.7.8;
};

それに応じてIPを実際のネームサーバーに置き換えることを忘れないでください。

次に、お気に入りのLinuxターミナルエミュレータを開き、以下のコマンドを発行してBINDを再起動します。

$ sudo systemctl restart bind9.service

UbuntuDNS構成のテストとトラブルシューティング

DNSネームサーバーの設定が完了したら、意図したとおりに機能しているかどうかを確認する必要があります。そのための最初のステップは、ネームサーバーのIPをホストマシンのリゾルバーに追加することです。これを行う最も簡単な方法は、/ etc / resolv.confファイルを編集し、ネームサーバーの行が 127.0.0.53を指していることを確認することです。 。次に、以下に示すように、FQDNの検索パラメーターを追加します。

$ sudo nano /etc/resolv.conf
nameserver 127.0.0.53
search example.com

次のコマンドを使用すると、ローカルマシンのリゾルバーで使用されているDNSサーバーを簡単に見つけることができます。

$ systemd-resolve --status

セカンダリサーバーのIPもクライアント構成に追加することをお勧めします。これにより、可用性が向上し、作成したセカンダリネームサーバーを利用できるようになります。

DNS構成を確認するもう1つの便利な方法は、Linxdigコマンドを使用することです。ループバックインターフェイスに対してdigを使用して、ポート53でリッスンしているかどうかを確認してください。

$ dig -x 127.0.0.1

以下のコマンドは、Linuxgrepコマンドを使用して関連情報を除外します。

$ dig -x 127.0.0.1 | grep -i "53"

BINDをキャッシングサーバーとして構成している場合は、digを使用して外部ドメインを確認し、クエリ時間をメモします。

$ dig ubuntu.com

コマンドをもう一度実行し、クエリ時間が短縮されたかどうかを確認します。キャッシングが成功すると、大幅に減少するはずです。

Linux pingコマンドを使用して、クライアントがホスト名をIPに解決するためにubuntuDNSをどのように利用しているかを確認することもできます。

$ ping example.com

終わりの考え

システムまたはネットワーク管理者として高額のCSジョブを実行する場合は、DNSシステムをしっかりと理解することが重要です。このガイドの目的は、初心者がDNSの背後にある原則をできるだけ早く習得できるようにすることです。さらに、私たちの編集者は、学習プロセスを支援するためのさまざまなUbuntuDNS構成の実用的な図も提供しています。このチュートリアルを終了するまでに、DNSのコア概念に関する厳密な知識と実践的な経験を身に付ける必要があります。うまくいけば、私たちはあなたに本質的な洞察を提供することができました。他に質問や提案がある場合は、コメントを残すことを忘れないでください。


Linux
  1. ZorinOS12について知りたいことすべて

  2. Ubuntu13.04について知っておくべきことすべて

  3. VPNとは何ですか? VPNについて知っておくべきことすべて

  1. CentOSストリームについて知っておくべきことすべて

  2. UbuntuとLubuntu:知っておくべきことすべて

  3. DockerComposeの使用について知っておくべきことすべて

  1. Linuxファイルシステムについて知っておくべきことすべて

  2. LinuxChmodコマンドについて知っておくべきことすべて

  3. Linuxコンテナー(LXC)について知っておくべきことすべて