ドメインネームシステム(DNS)は、ドメイン名をIPアドレスに(またはその逆に)変換するインターネットのルートです。 BIND9(Berkeley Internet Name Domain)パッケージは、名前からIPへの変換機能を提供します。
この投稿では、Ubuntu 18.04 /Ubuntu16.04でDNSサーバーを構成する方法について説明します。
環境
ドメイン名:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | マスターDNSサーバー |
Ubuntu 18.04 /Ubuntu16.04でDNSサーバーをセットアップする
前提条件
リポジトリインデックスを更新します。
sudo apt update
DNSサーバーに静的IPアドレスがあることを確認してください。
読む: ifupdownを使用してUbuntu18.04/Ubuntu16.04で静的IPアドレスを構成する方法
Netplan –新しいネットワークツールを使用している場合 その後、Ubuntu18.04でネットワークを構成するため。
読む :Netplanを使用してUbuntu18.04で静的IPアドレスを構成する方法
DNSサーバーのインストール
Ubuntu上のDNSサーバーのパッケージ名はbind9であり、ベースリポジトリで利用できます。 aptコマンドを使用してbind9パッケージをインストールします。
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
DNSサーバーの構成
/ etc / bind /ディレクトリはDNSサーバーのメイン構成ディレクトリであり、構成ファイルとゾーンルックアップファイルを保持します。
グローバル構成ファイルは/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. };
ゾーンルックアップファイルの作成
ゾーンを作成したら、先に進んで、順方向ゾーンと逆引きゾーンのDNSレコードを保持するゾーンデータファイルを作成できます。
フォワードゾーンルックアップファイル
サンプルエントリを、 / 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
以下に示すコンテンツを更新してください。
ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。$TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ 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
以下に示すコンテンツを更新してください。
ルックアップファイルのDNSレコードを変更するときは常に、シリアル番号を現在の乱数よりも大きい乱数に更新してください。$TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ 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 3 OK
逆引きゾーン
named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
出力:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
バインドサービスを再開します。
sudo systemctl restart bind9
システムの起動時に有効にします。
sudo systemctl enable bind9
bind9サービスのステータスを確認してください。
sudo systemctl status bind9
DNSレコードの更新
DNSレコードを変更するときはいつでも、ゾーンファイルのシリアル番号を変更してゾーンをリロードすることを忘れないでください。
itzgeek.localと0.168.192.in-addr.arpaをゾーン名に変更します。
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
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
digコマンドを使用して、フォワードゾーンを確認します。
dig www.itzgeek.local
コマンドが見つからない場合は、bind-utilsパッケージをインストールしてください。
出力:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18022 ;; 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. 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: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:42:18 EST 2019 ;; MSG SIZE rcvd: 96
前方参照に対するDNSサーバーの回答:www.itzgeek.localのIPアドレスとして192.168.0.100 。
digコマンドで逆引き参照を確認します。
dig -x 192.168.0.100
出力:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37122 ;; 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. 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: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:43:20 EST 2019 ;; MSG SIZE rcvd: 120
逆引き参照に対するDNSサーバーの回答:192.168.0.100の名前としてのwww.itzgeek.local。
この結果は、両方のゾーンルックアップが正常に機能していることを確認しています。
結論
それで全部です。これで、Ubuntu 18.04 /Ubuntu16.04のDNSサーバーがマスターサーバーとして正常に構成されました。次の投稿では、Ubuntu 18.04 /Ubuntu16.04でスレーブDNSサーバーを構成します。