ドメインネームシステム(DNS)は、コンピューター、サービス、またはインターネットやプライベートネットワークに接続されているリソース用の階層型分散ネーミングシステムです。さまざまな情報を、参加している各エンティティに割り当てられたドメイン名に関連付けます。
最も重要なことは、人間にとって意味のあるドメイン名を、世界中のこれらのデバイスを見つけてアドレス指定する目的で、ネットワーク機器に関連付けられた数値識別子に変換することです。
このガイドは、CentOS 7 /RHEL7でDNSサーバーをセットアップするのに役立ちます。
環境
サーバー名: ns1itzgeek.local
IPアドレス: 192.168.0.10
DNSのインストール(BIND)
BINDは、Berkeley Internet Name Domainの略で、名前からIPへの変換を実行する機能を提供するソフトウェアです。
yum -y install bind bind-utils
DNSの構成(BIND)
デフォルトでは、BINDはローカルホストでリッスンします。そのため、クライアントがドメイン名を解決するためにDNSサーバーにアクセスできるように、システムIPアドレスをリッスンするようにDNSサーバーを構成します。
vi /etc/named.conf
すべてのIPアドレスを聞きます:
すべてのIPアドレスをリッスンするようにBINDを構成します。
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
特定のIPアドレスを聞く:
特定のIPアドレスをリッスンするようにBINDを構成します。
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
次の行にネットワークを追加します。この設定により、前述のネットワークのクライアントがDNSに名前からIPへの変換を照会できるようになります。
このデモに192.168.0.0/24を追加しました。
allow-query { localhost; 192.168.0.0/24; };
ゾーンの作成
/etc/named.confを編集します。
vi /etc/named.conf
フォワードゾーン
次のゾーンは、itzgeek.localドメインのフォワードゾーンエントリです。
zone "itzgeek.local" IN { type master; file "/var/named/itzgeek.local.db"; allow-update { none; }; };
itzgeek.local – ドメイン名
マスター– プライマリDNS
fwd.itzgeek.local.db – フォワードルックアップファイル
更新を許可– これはプライマリDNSであるため、なしにする必要があります
逆引きゾーン
次のゾーンは逆引きゾーンエントリです。
zone "0.168.192.in-addr.arpa" IN { type master; file "/var/named/192.168.0.db"; allow-update { none; }; };
0.168.192.in-addr.arpa – 逆引き参照名
マスター– プライマリDNS
192.168.0.db – 逆引き参照ファイル
更新を許可– これはプライマリDNSであるため、なしにする必要があります
ゾーンファイルの作成
デフォルトでは、ゾーンルックアップファイルは/ var/namedディレクトリの下に配置されます。 / var/namedディレクトリの下に前方参照用のfwd.itzgeek.local.dbというゾーンファイルを作成します。すべてのドメイン名はドット(。)で終わる必要があります。
vi /var/named/itzgeek.local.db
ゾーンファイルにはいくつかの特別なキーワードがあります
A – レコード
NS – ネームサーバー
MX – メール交換
CNAME – 正規名
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To IP Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.ゾーンルックアップファイルを更新するときはいつでも、1002;Serialのようにシリアルを変更/インクリメントする必要があります。
/ var/namedディレクトリの下に逆引きゾーン用の192.168.0.dbというゾーンファイルを作成します。
vi /var/named/192.168.0.db
以前に作成したフォワードゾーンエントリのリバースポインタを作成します。
PTR – ポインタ
SOA – 権限の開始
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.ゾーンルックアップファイルを更新するときはいつでも、1002;Serialのようにシリアルを変更/インクリメントする必要があります。
ゾーンファイルが作成されたら、バインドサービスを再起動します。
systemctl restart named
システムの起動時に有効にします。
systemctl enable named
ファイアウォール
ファイアウォールに許可ルールを追加して、クライアントが名前解決のためにDNSサーバーに接続できるようにします。
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
ゾーンの確認
任意のクライアントマシンにアクセスし、/ etc/resolv.confにDNSサーバーのIPアドレスを追加します。
nameserver 192.168.0.10
Network Managerがネットワークを管理している場合は、次のエントリを/ etc / sysconfig / network-scripts/ifcfg-eXXファイルに配置します。
DNS1=192.168.0.10
ネットワークサービスを再起動します。
systemctl restart NetworkManager
次のコマンドを使用して、前方参照を確認します。
dig www.itzgeek.local
出力: DNSサーバーは、www.itzgeek.localのIPとして192.168.0.100を提供する必要があります。
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35563 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS primary.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:00:40 EDT 2019 ;; MSG SIZE rcvd: 100BINDユーティリティyuminstall-y bind-utilsパッケージをインストールして、nslookupまたはdigコマンドを取得します。
逆引き参照を確認します。
dig -x 192.168.0.100
出力: DNSサーバーは、192.168.0.100の名前としてwww.itzgeek.localを提供します。
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4807 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:02:47 EDT 2019 ;; MSG SIZE rcvd: 124
これで、順方向ルックアップと逆引きルックアップの両方が正常に機能していることが確認されました。
結論
それで全部です。これで、マスターサーバーとしてCentOS 7 /RHEL7にBINDが正常にインストールされました。冗長性のためにスレーブDNSサーバーを構成できます。