Linux ドメイン ネーム サービス DNS 設定方法

Linux ドメイン ネーム サービス DNS 設定方法

DNSとは

DNS の正式名称は Domain Name System で、ドメイン名解決システムを意味します。DNS の役割は、ドメイン名を、さまざまなコンピューター デバイスが接続できる認識可能な IP アドレスに変換することです。

Linux DNS 解決の設定とファイル

Linux には DNS 解決に関連する 3 つのファイルがあります。

  • /etc/hostsはホスト名に対応するIPアドレスを記録します
  • /etc/resolv.confはDNSサーバーのIPアドレスを設定します
  • /etc/host.conf はドメイン名解決の順序を指定します(ローカルホストファイルから解決するか、DNS から解決するか)
  • /etc/hosts が存在するのは、初期のネットワークが特に発達しておらず、ホスト名と IP アドレスの対応を hosts に格納するだけでニーズを満たすことができたためです。ネットワークの発達に伴い、分散 DNS サービスが徐々に登場しましたが、/etc/hosts 形式は維持されました。

/etc/resolv.conf は DNS ドメイン名と IP アドレスを設定するために使用されます。インターネット上には参考になる情報が多数あります。

ドメイン名の解決方法

ドメイン ネーム システム (DNS) の仕組みでは、ドメイン名が解決されるプロセスについて説明します。このプロセスは基本的に次のように分けられます。

  • トップレベルドメイン名が配置されているドメイン名サービスのルートドメイン名サービスを要求する
  • トップレベルドメイン名サービスからセカンドレベルドメイン名サービスを要求する
  • セカンダリドメイン名サービスから特定のIPアドレスを要求する

シンプルな DNS 構成の例 (CentOs7 ベース)

サーバー側

1. バインドをインストールする

yum install bind

2. /etc/named.conf設定ファイルを変更する

vim /etc/named.conf
オプション {
    listen-on port 53 { any; }; //リスニングポート53を開き、任意のIP接続を受け入れます listen-on-v6 port 53 { ::1; }; //IP V6をサポートします
    ディレクトリ "/var/named"; //すべての転送ゾーン ファイルと逆ゾーン ファイルはこのディレクトリに作成されます ダンプ ファイル "/var/named/data/cache_dump.db";
    統計ファイル "/var/named/data/named_stats.txt";
    memstatistics ファイル "/var/named/data/named_mem_stats.txt";
    allow-query { 0.0.0.0/0; }; //任意の IP に再帰クエリを許可する yes;
    dnssec を有効にするには、はい;
    dnssec検証はい;
    dnssec-lookaside 自動;
    /* ISC DLV キーへのパス */
    bindkeysファイル "/etc/named.iscdlv.key";
    管理キーディレクトリ "/var/named/dynamic";

};

ログ記録 {
    チャネル default_debug {
        ファイル "data/named.run";
        重大度動的;
    };
};

ゾーン "." IN {
    型ヒント;
    ファイル「named.ca」;
};

include "/etc/named.rfc1912.zones"; //メイン設定ファイル include "/etc/named.root.key";

3. /etc/named.rfc1912.zonesファイルを変更し、duiyi.comの転送ゾーンを追加します。

vim /etc/ named.rfc1912.zones
ゾーン "localhost.localdomain" IN {
    タイプマスター;
    ファイル "named.localhost";
    更新を許可する {なし; };
};

ゾーン "localhost" IN {
    タイプマスター;
    ファイル "named.localhost";
    更新を許可する {なし; };
};

ゾーン "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    タイプマスター;
    ファイル "named.loopback";
    更新を許可する {なし; };
};

ゾーン "1.0.0.127.in-addr.arpa" IN {
    タイプマスター;
    ファイル "named.loopback";
    更新を許可する {なし; };
};
ゾーン "0.in-addr.arpa" IN {
    タイプマスター;
    ファイル "named.empty";
    更新を許可する {なし; };
};

//duiyi.com のポジティブゾーン ゾーン "duiyi.com" IN {
    タイプマスター;
    ファイル "duiyi.com.zone";
    更新を許可する {なし; };
};

4. フォワードゾーンリソースファイルを作成する

vim /var/named/duiyi.com.zone
$TTL 1日
@ IN SOA duiyi.com. rname.invalid. (
                    0 ; シリアル
                    1D ; 更新
                    1H;再試行
                    1W ; 期限切れ
                    3H ) ; 最小
    NS@
    127.0.0.1 です
    AAA::1
www 192.168.81.1 で
メール IN A 192.168.81.2
192.168.81.3 への ftp

5. 指定されたサービスを起動する

systemctl start named

6. 起動時に自動的に起動する

systemctl enable named

## クライアントのオペレーティングシステム: Windows と Linux の両方が使用可能
IP アドレス: DNS サーバー (192.168.81.133) に ping できる任意の IP アドレスを使用できます。
機能: DNS サーバーが正常に動作しているかどうかをテストします。

1. DNSを変更する:


2. サーバーのIP(192.168.81.133)にpingして、サーバーにアクセスできるかどうかをテストします。


3. nslookupコマンドを使用して、3つのDNS解決が成功したかどうかをテストします。


図に示すように、DNSの前方解決が成功したことを意味します。

クライアントテストとしての Linux:

1. nslookup、dig、hostツールを使用できるようにbind-utilsパッケージをインストールします。

yum install bind-utils

2. DNSサーバーを使用するようにDNS設定を変更する

vim /etc/resolv.conf
ネームサーバー 192.168.81.133
ネームサーバー 114.114.114.114
ネームサーバー 8.8.8.8

3. 前方解決テスト、nslookup コマンドを使用する (Windows テストと同じ)

nslookup

要約する

上記は、編集者が紹介した Linux ドメイン名サービス DNS 設定方法です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明
  • Linux で IP、DNS、ルーティングのコマンドライン設定を変更する方法
  • Linux で dnsmasq を DNS キャッシュ サーバーとして設定する方法
  • Linux で DNS をクエリする例
  • Linux コマンドラインで IP、ゲートウェイ、DNS を変更する方法
  • Linux で DNS の変更を素早く有効にする方法
  • DNSPodとSquidで独自のCDNを構築する(パート3)CentOS Linuxをインストールする
  • Mac OS X/Linux システムで DNS キャッシュをクリアするコマンドの概要

<<:  Mysql は非集計列を選択できません

>>:  react-diagram シリアル化 Json 解釈 ケース分析

推薦する

MySQL ルートパスワードエラー番号 1045 の解決方法

MySQLサービスを停止するWindowsでは、マイコンピュータを右クリック--管理--サービスと...

Vueはツリーテーブルを実装する

この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...

MySql8.0バージョンに接続するMyBatisの設定問題について

mybatis を学習しているときにエラーが発生しました。エラーの内容は次のとおりです。データベース...

CSS で overflow-y: visible; が機能しない理由の分析と解決

シナリオ最近の要件は、モバイル デバイス用の h5 ページです。これには、選択可能なカードの行が必要...

CentOs でノード バージョンを手動でアップグレードする方法

1. 対応するNode.jsパッケージを見つけます。https://nodejs.org/downl...

MACOS で MySQL ルートパスワードを忘れた場合の解決策

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

例によるMySql CURRENT_TIMESTAMP関数の分析

時間フィールドを作成するときデフォルトのCURRENT_TIMESTAMPデータを挿入する際、このフ...

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

JavaScript ESの新機能letとconstキーワードに基づく

目次1. letキーワード1.1 基本的な使い方1.2 変動昇進はない1.3 一時的なデッドゾーン1...

MySQL マスターとスレーブの不整合とその解決策の詳細な説明

1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...

Nginx セッション共有問題の解決策の分析

この記事は主に、Nginx セッション共有の問題に対する解決策を紹介します。記事内のサンプル コード...

JS を使用して配列内の要素の存在を 10 分で判断する

序文フロントエンド開発では、配列内に要素が存在するかどうかを判断する必要があることがよくあります。実...

MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法

序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...

TypeScript におけるインターフェースと型メソッドの正しい使用例

目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...

vue3 でブロック崩しゲームを開発する方法をステップバイステップで教えます

序文vue3 を使った例をいくつか書いてみましたが、Vue3 のコンポジション API はよく設計さ...