バークレー大学の学生によって80年代に開発されたBIND (バークレーインターネット名ドメイン )はオープンソースのDNSサーバーです LinuxディストリビューションでDNSサービスを提供します。では、DNSサーバーとは何ですか? DNS サーバーは、完全修飾ドメイン名( FQDN )の解決に役立つサービスです。 )をIPアドレスに変換し、さらに、IPアドレスをユーザーフレンドリーなドメイン名に逆変換-変換します。
名前解決が重要なのはなぜですか?コンピューターは、IPアドレスを使用してサーバー上のサービスを検索します。ただし、IPアドレスはドメイン名ほどユーザーフレンドリーではなく、すべてのドメイン名に関連付けられている各IPアドレスを覚えておくのは大きな頭痛の種になります。 DNSサーバーが介入し、これらのドメイン名をコンピューターのIPアドレスに解決するのに役立ちます。
このガイドでは、CentOS 8 /RHEL8でDNSバインドサーバーを設定するプロセスについて説明します。
ラボのセットアップ:
- サーバー:CentOS 8(最小サーバー)
- IPアドレス:192.168.43.35
- ホットネーム:dns-primary.linuxtechi.local
- ドメイン:linuxtechi.local
それでは、DNSバインドサーバーの構成を実行してみましょう。
ステップ1:CentOS 8 /RHEL8にバインドDNSをインストールする
まず、bindおよびbind-utilsパッケージのインストールから始めます。これらのパッケージは、ネームサーバーまたはDNSサーバーのクエリを担当するdnsサーバーとそのユーティリティを構成します。
コマンドを実行します:
# dnf install bind bind-utils
正常にインストールされたら、次のコマンドを使用してDNSサーバーを起動します。
# systemctl start named
次に、再起動後も起動できるように有効にします
# systemctl enable named
サービスが期待どおりに実行されていることを確認するために、そのステータスを確認してください
# systemctl status named
すばらしいです。DNSサーバーは完全に実行されています。それでは、BindDNSサーバーの構成に取り掛かりましょう
ステップ2:バインドDNSサーバーを構成する
通常、ベストプラクティスでは、変更を加える前に構成ファイルのバックアップを作成することをお勧めします。これは、問題が発生した場合に、いつでも元の編集されていないファイルに戻すことができるようにするためです。ここでも違いはありません。
設定ファイル/etc/named.conf
のバックアップを取りましょう# cp /etc/named.conf /etc/named.bak
次に、お好みのテキストエディタを使用してファイルを開きます。この場合、vimエディターを使用しています。
# vim /etc/named.conf
[オプション]の下 ’セクションでは、Bind DNSサーバーがすべてのIPをリッスンできるように、以下に示す行をコメントアウトしてください。
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
さらに、allow-queryパラメータを見つけて、ネットワークサブネットに応じて調整します。
allow-query { localhost; 192.168.43.0/24; };
この設定では、定義されたネットワーク内のホストのみがDNSサーバーにアクセスでき、他のホストだけにはアクセスできません。
前方参照DNSゾーン ホスト名とIPアドレスの関係を格納するものです。照会すると、ホスト名を使用してホストシステムのIPアドレスを提供します。対照的に、リバースDNSゾーン サーバーのIPアドレスに関連するサーバーの完全修飾ドメイン名(FQDN)を返します。
逆ルックアップゾーンと順ルックアップゾーンを定義するには、次の構成をコピーして /etc/named.confの最後に貼り付けます。
//forward zone zone "linuxtechi.local" IN { type master; file "linuxtechi.local.db"; allow-update { none; }; allow-query { any; }; }; //backward zone zone "43.168.192.in-addr.arpa" IN { type master; file "linuxtechi.local.rev"; allow-update { none; }; allow-query { any; }; };
- タイプ :特定のゾーンに対するサーバーの役割を規定します。属性「master」は、これが信頼できるサーバーであることを意味します。
- ファイル :ドメインの順方向/逆方向ゾーンファイルを指します。
- 更新を許可 :この属性は、ダイナミックDNS更新の転送を許可されるホストシステムを定義しました。この場合、何もありません。
保存後、/ etc/named.conf構成ファイルを終了します。
ステップ3:ドメインの転送DNSゾーンファイルを作成する
以下に示すように、ドメインlinuxtechi.localのフォワードDNSゾーンファイルを作成し、次のコンテンツを追加します
[[email protected] ~]# vim /var/named/linuxtechi.local.db $TTL 86400 @ IN SOA dns-primary.linuxtechi.local. admin.linuxtechi.local. ( 2020011800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.linuxtechi.local. ;IP Address for Name Server dns-primary IN A 192.168.43.35 ;Mail Server MX (Mail exchanger) Record linuxtechi.local. IN MX 10 mail.linuxtechi.local. ;A Record for the following Host name www IN A 192.168.43.50 mail IN A 192.168.43.60 ;CNAME Record ftp IN CNAME www.linuxtechi.local.
構成ファイルに示されているパラメーターのいくつかを定義しましょう:
- TTL :これはTime-To-Liveの略です。 TTLは、パケットが最終的にルーターによって破棄されるまでにネットワークに存在する時間(またはホップ)です。
- IN :これはインターネットを意味します。
- SOA :これは、StartofAuthorityの略です。基本的に、これは信頼できるネームサーバー(この場合はdns-primary.linuxtechi.local)と連絡先情報(admin.linuxtechi.local )を定義します。
- NS :これはNameServerの略です。
- A :これはAレコードです。ドメイン/サブドメイン名をIPアドレスにポイントします
- シリアル :これは、特定のゾーンファイルのコンテンツが確実に更新されるようにするためにDNSサーバーによって使用される属性です。
- 更新 :スレーブDNSサーバーがマスターからゾーンを転送する回数を定義します。
- 再試行 :スレーブが応答しないゾーン転送を再試行する回数を定義します。
- 期限切れ :マスターが使用できない場合に、スレーブサーバーがクライアントクエリに応答するまで待機する期間を指定します。
- 最小 :これは、ゾーンの最小TTLを設定する役割を果たします。
- MX :これはメールエクスチェンジャーのレコードです。メールを送受信するメールサーバーを指定します
- CNAME :これは正規名です。エイリアスドメイン名を別のドメイン名にマッピングします。
- PTR :Pointerの略で、この属性はIPアドレスをドメイン名ではなくドメイン名に解決します。
ステップ4:ドメインの逆引きDNSゾーンファイルを作成します
同様に、DNS逆引き参照用のファイルを作成する必要があります。次のコンテンツをファイルに貼り付けます:
[[email protected] ~]# vim /var/named/linuxtechi.local.rev $TTL 86400 @ IN SOA dns-primary.linuxtechi.local. admin.linuxtechi.local. ( 2020011800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.linuxtechi.local. dns-primary IN A 192.168.43.35 ;Reverse lookup for Name Server 35 IN PTR dns-primary.linuxtechi.local. ;PTR Record IP address to Hostname 50 IN PTR www.linuxtechi.local. 60 IN PTR mail.linuxtechi.local.
次に、必要なファイル権限を2つの構成ファイルに割り当てます。
# chown named:named /var/named/linuxtechi.local.db # chown named:named /var/named/linuxtechi.local.rev
DNSゾーンルックアップファイルに構文エラーがないことを確認するには、次のコマンドを実行します。
# named-checkconf # named-checkzone linuxtechi.local /var/named/linuxtechi.local.db # named-checkzone 192.168.43.35 /var/named/linuxtechi.local.rev
エラーがない場合は、次のような出力が表示されます。
変更がシステムに反映されるようにするには、BindDNSサーバーを再起動します
# systemctl restart named
クライアントシステムがシステムにアクセスするには、ファイアウォールにDNSサービスを追加してから、ファイアウォールをリロードする必要があります。
# firewall-cmd --add-service=dns --zone=public --permanent # firewall-cmd --reload
ステップ5:クライアントシステムからBindDNSサーバーをテストする
DNSサーバーの構成を完了したら、クライアントマシンに向かい、いくつかのテストを実行しましょう。
クライアントマシン(CentOS 8 / RHEL 8)で、 /etc/resolv.confを開きます 次のパラメータをファイルして編集します:
nameserver 192.168.43.35
いつものように、構成ファイルを保存して閉じます。
最後に、BindDNSサーバーのIPアドレスを/ etc / sysconfig / network-scripts / ifcfg-enp0s3に追加する必要があります。 図のようにファイルします。
設定ファイルを保存して閉じてから、ネットワークマネージャサービスを再起動して、上記の変更を有効にします。
# systemctl restart NetworkManager
nslookupコマンドを使用して、次のようにBindDNSサーバーをテストします。
# nslookup dns-primary.linuxtechi.local # nslookup mail.linuxtechi.local # nslookup www.linuxtechi.local # nslookup ftp.linuxtechi.local
# nslookup 192.168.43.35
nslookupコマンドからの出力は、DNSフォワードルックアップが期待どおりに機能していることを確認します。
さらに、示されているようにdigコマンドを使用することもできます
# dig dns-primary.linuxtechi.local
DNSの逆引き参照を実行するには、次のようにdigコマンドを使用します。
# dig -x 192.168.43.35
完全! DNSの逆引き参照も期待どおりに機能しています。
これでこのチュートリアルは終わりです。このガイドでは、CentOS 8でBindを使用してDNSサーバーをインストールする方法について説明しました。試してみて、フィードバックを送信することを躊躇しないでください。
また読む : CentOS 8 /RHEL8でNFSサーバーをセットアップする方法