ドメインネームシステム(略してDNS)は、ドメイン名をIPアドレスに、またはその逆に解決するために使用されるインターネットサービスです。
BIND(Berkeley Internet Name Domain)は、名前からIPへの変換機能を提供します。
この投稿は、Debian 10 /Debian9でDNSサーバーを構成するのに役立ちます。
環境
ドメイン名:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | マスターDNSサーバー |
前提条件
リポジトリインデックスを更新します。
sudo apt-get update
DNSサーバーに静的IPアドレスがあることを確認してください。
読む :Debianで静的IPアドレスを設定する方法
DNSサーバーのインストール
DebianのDNSサーバーのパッケージ名はbind9であり、ベースリポジトリで利用できます。 aptコマンドを使用してbind9パッケージをインストールできます。
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
DNSサーバーの構成
/ etc / bind /は、bind9の構成ディレクトリであり、構成ファイルとゾーンルックアップファイルを保持します。グローバル構成ファイルは/etc/bind/named.confです。
ゾーンの作成
まず、ドメインのフォワードゾーンを作成しましょう。
ローカルDNSゾーンのグローバル構成ファイルを使用するのではなく、/ etc / bind/named.conf.localファイルを使用できます。
sudo nano /etc/bind/named.conf.local
フォワードゾーン
以下は、named.conf.localファイル内のitzgeek.localドメインのフォワードゾーンエントリです。
zone "itzgeek.local" IN { //Domain name type master; //Primary DNS file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
逆引きゾーン
以下は、named.conf.localファイルの逆引きゾーン用です。
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
ゾーンルックアップファイルの作成
ゾーンが作成されたら、先に進んで、順方向ゾーンと逆引きゾーンのゾーンデータファイルを作成できます。
フォワードゾーン
サンプルエントリを、/ etc/bindディレクトリの下の転送ゾーンのforward.itzgeek.local.dbというゾーンファイルにコピーします。
ゾーンファイルにタイプを記録します
SOA –権限の開始
NS –ネームサーバー
A –レコード
MX –メール交換
CN –標準名前
ドメイン名はドット(。)で終わる必要があります。
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
ゾーンを編集します。
sudo nano /etc/bind/forward.itzgeek.local.db
以下に示すようにコンテンツを更新します。
ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below three lines ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;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.
逆引きゾーン
サンプルエントリを/etc/ bindディレクトリの下の逆引きゾーンのreverse.itzgeek.local.dbというゾーンファイルにコピーし、上記の順方向ゾーンレコードの逆引きポインタを作成します。
PTR –ポインタ
SOA –権限の開始
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
リバースゾーンファイルを編集します。
sudo nano /etc/bind/reverse.itzgeek.local.db
以下に示すようにコンテンツを更新します。
ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below two lines ;@ IN NS localhost. ;1.0.0 IN PTR localhost. ;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.
BIND構成構文の確認
named-checkconfコマンドを使用して、named.conf*ファイルの構文にエラーがないか確認します。
sudo named-checkconf
エラーがない場合、コマンドはシェルに戻ります。
また、named-checkzoneを使用して、ゾーンファイルの構文エラーを確認できます。
フォワードゾーン
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
出力:
zone itzgeek.local/IN: loaded serial 2 OK
逆引きゾーン
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
出力:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2 OK
バインドサービスを再開します。
sudo systemctl restart bind9
bind9サービスのステータスを確認してください。
sudo systemctl status bind9
DNSを確認する
任意のクライアントマシンに移動し、新しいDNSサーバーのIPアドレスを/etc/resolv.confファイルに追加します。
sudo nano /etc/resolv.conf
以下のように入力してください。
nameserver 192.168.0.10
または
以下のチュートリアルを読んで、LinuxでDNSサーバーのIPを設定してください。
読む: CentOS/FedoraでDNSIPアドレスを設定する方法
読む: Ubuntu / DebianでDNSIPアドレスを設定する方法– ifupdown
読む: Ubuntu 18.04でDNSIPアドレスを設定する方法– Netplan
nslookupまたはdigコマンドを使用して、DNSサーバーを確認できます。
digコマンドを使用して、前方参照を確認します。
dig www.itzgeek.local
コマンドが見つからない場合は、Red Hat派生物にbind-utilsをインストールするか、Debian派生物パッケージにdnsutilsをインストールしてください。
出力:
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41979 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 1 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:37:45 UTC 2020 ;; MSG SIZE rcvd: 124
正引きで確認されたwww.itzgeek.localに対するDNSサーバーの回答は192.168.0.100です。
digコマンドで逆引き参照を確認します。
dig -x 192.168.0.100
出力:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:40:00 UTC 2020 ;; MSG SIZE rcvd: 148
逆引き参照192.168.0.100に対するDNSサーバーの回答は、www.itzgeek.localです。
この結果は、順方向と逆方向の両方のゾーンルックアップが正常に機能していることを確認しています。
結論
それで全部です。これで、Debian 10 / Debian9にDNSサーバーが正常にインストールされました。次の記事では、Debian 10 /Debian9にスレーブDNSサーバーを構成します。