CONTENTS
DNSサーバーについて
DNSサーバーは主に「ドメイン」⇔「IPアドレス」のような名前解決をする際に利用されるサービスです。
例えば「https://example.com」にWEBアクセスした際にどこのホスト(IPアドレス)のWEBサーバーにアクセスするか、名前解決が行われるのです。
また、自ドメインを自サーバーのDNSにて管理されていることは世界中のDNSサーバーに広報され、「https://example.com」にアクセスされた際にクライアント側の最寄りのDNSサーバーから自サーバーに通信されます。
本手順では、自ドメインの管理のみを行うDNSサーバーの構築を「BIND」と呼ばれるパッケージを用いて行います。
自サーバーで運営するドメイン以外のリクエストは処理しないようにすることで、トラフィックの増加や誰でもリクエストできてしまうことによるセキュリティー低下を防ぎます。
- CentOS Linux release 8.2.2004 (Core)
- BIND 9.11.13-RedHat-9.11.13-6.el8_2.1
- bind-chroot.x86_64 32:9.11.13-6.el8_2.1
- ルータで「ポート 53」を開放
- ドメイン取得サービスの設定で自サーバーのIPへDNSサーバーを設定しておく
- 固定IPをプロバイダにて取得しておく
ルータのポート開放で名前解決の通信を受け入れる
BINDによるDNSサーバーの構築を行う前に、サーバー側NWのルータのポートを開放して、外部からの通信がサーバーに届くようにします。
http通信で使われるポート番号は「53」になります。
ポートの設定方法はルータによって違いますが、概ね下記のような感じです。
プロトコル | TCP / UDP |
開始ポート番号 | 53 |
終了ポート番号 | 53 |
サーバーのローカルアドレス | 192,168.x.x |
▼通信イメージ
BINDのインストール
▼BINDの関連ファイル
/etc | |
└named.conf | ゾーンファイルの展開先やフォルダ構造含め、BINDの設定ファイル。 |
/var/named | |
└named.ca | キャッシュ用ゾーンファイル。 |
└example.zone | 正引き用ゾーンファイル。 |
└example.rev | 引き用ゾーンファイル。 |
└local.zone | ホスト自身内で正引きするのに利用されるループバック用ゾーンファイル。 |
└local.rev | ループバックの逆引き用ゾーンファイル。 |
/var/run/named | |
└named.pi | ループバックの逆引き用 |
▼パッケージ確認
dnfでインストール可能なBINDのパッケージを検索して確認しておきます。
1 |
# dnf list | grep bind |
▼BIND関連ファイルとchroot化パッケージのインストール
1 2 |
# dnf install -y bind # dnf install -y bind-chroot |
▼コンフィグファイル編集
1 |
# vi /etc/named.conf |
▼完成形のnamed.conf
下記の内容をコピペしてから解説を読むと分かりやすいです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // acl "slave-server" { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; options { listen-on port 53 { any; }; listen-on-v6 port 53 { none; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; allow-query { any; }; allow-transfer { "slave-server"; }; forwarders { 192.168.3.1; xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion no; dnssec-validation no; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */ include "/etc/crypto-policies/back-ends/bind.config"; }; logging { channel query-log { file "/var/log/named/named_query.log" versions 5 size 10M; severity debug; print-time yes; print-severity yes; print-category yes; }; category default { "query-log"; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "ilia.jp" in { type master; file "domain.com"; }; zone "slave-domain.com" in { type slave; masters { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; file "slaves/slave-domain.com.bak"; notify no; }; zone "slave-domain2.com" in { type slave; masters { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; file "slaves/slave-domain2.bak"; notify no; }; |
named.conf(アクセスリスト「ACL」の設定)
いちばん上あたりに「acl」で接続許可アドレスを追記。
「;」セミコロンで区切って複数設定してグループ化が可能。
下記の例は2つのアドレスがslave-serverというグループ名で定義、以降はslave-serverの名称で参照可能。
1 2 3 4 |
acl "slave-server" { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; |
▼aclでアクセス拒否をする場合の設定例
1 2 3 4 5 |
acl "not-ip" { !xxx.xxx.xx/24; #特定IP/24(256個)を「!」で全て拒否 !xx.xx/16; #さらに大きいネットワーク帯全てを拒否 any; #それ以外の全てのアドレスを許可 } |
aclで下記は予約されているので「名称」として利用できない。
・any:すべてのアドレス
・none:すべてのアドレスを否定
・localhost:ローカルのシステムで使用するIPアドレス(IPv4, IPv6)
・localnets:ローカルのシステムが接続するネットワークアドレス(IPv4, IPv6)
named.conf(optionsの設定)
▼optionsステートメントは下記内に記述します。
1 2 |
options { } |
▼port 53で受け付けるIPアドレスの設定を変更
DNSサーバーが利用するport53で受け付けるアドレスを設定します。
特にアクセス制限を設けない場合は下記のように「any」で設定します。
1 |
listen-on port 53 { any; }; |
▼同じくIPv6でのport 53のアドレス設定を変更
今回はIPv6での名前解決はしないので「none」で設定します。
1 |
listen-on-v6 port 53 { none; }; |
▼先ほどのスレーブサーバーの定義を追記
ゾーンファイルの交換によるファイル転送を許可するという意味です。
1 |
allow-transfer { slave-server; }; |
▼リクエスト許可の設定に変更
「allow-query」の設定が「localhost」となっています。
今回は内部のみのDNSではなく取得したドメインの名前解決で使用するので、すべてのリクエストを許可しておく必要があります。
1 |
allow-query { any; }; |
▼転送先アドレスを追記
このDNSで名前解決が出来なかった場合に転送するアドレスを設定します。
1 2 3 4 5 |
forwarders { 192.168.1.1; DNSを参照しているルータのIPアドレス xxx.xxx.xxx.xxx; プロバイダのDNS xxx.xxx.xxx.xxx; プロバイダのアドレス }; |
▼再帰検索要求をnoに設定を変更
キャッシュサーバーとして再帰検索要求や自ドメイン以外のドメインも処理する場合はyesに設定する必要があります。
今回のように自分の取得したドメインなど管理する予定のドメイン以外のリクエストを行わない場合はnoに設定します。
1 |
recursion no; |
▼DNSSECに対応するかどうかの設定を変更
DNSSECは送られてきたデータの署名を検証してデータの偽装を検知するための仕組みです。
NW機器のDNS機能でDNSSECに対応していないものが多いのでnoに設定を変更します。
1 |
dnssec-enable no; |
▼DNSSECの検証を行うかどうかの設定を変更
デフォルトのautoでも問題ありませんが、先ほどのDNSSECに対応しない設定にしたのでnoで設定します。
1 |
dnssec-validation no; |
named.conf(loggingステートメント)
▼デフォルトの設定を「//」でコメントアウトします。
1 2 3 4 5 6 |
//logging { // channel default_debug { // file "data/named.run"; // severity dynamic; // }; //}; |
▼要求応答のqueryログを取得
自ドメインの名前解決のリクエストが来た際のqueryログを取得します。
ログはある一定の量でローテートするように設定をして、ファイルサイズが肥大化しないようにします。
リクエスト数の確認やドメインを増やしてゾーンを追加した際の接続確認で使えます!
1 2 3 4 5 6 7 8 9 10 11 |
logging { channel query-log { file "/var/log/named/named_query.log" versions 5 size 10M; severity dynamic; print-time yes; print-severity yes; print-category yes; }; category queries { "query-log"; }; }; |
▼記述内容の説明
logging | ログのステートメントという宣言。 |
channel | ログのチャンネルというサブステートメント的な意味。 |
query-log | わかりやすい任意のチャンネル名を記載。 |
file | ログの出力場所とファイル名。※要namedユーザー権限 |
version 5 size 10M | 1ファイル10MB、最大5ファイル、最大合計5MBまで。 |
severity | 出力されるログの内容。dynamicは全てログをという意味。 |
print-time | ログに発生時刻の出力。 |
print-severity | ログに重要度の出力。 |
print-category | ログにカテゴリーの出力。 |
category queries | query-logという名のchannelにはリクエスト処理のログカテゴリー「queries」が書き出されるという設定。 |
▼severity に指定できるログレベル
critical | 危険度の高いクリティカルログを表示させる。 |
error | 危険度がやや高いエラーログを表示させる。 |
warning | 危険度が比較的低めのワーニングログを表示させる。 |
notice | 危険度が低めのログを表示させる。 |
info | インフォメーションレベルのログを表示させる。 |
debug | デバッグで確認可能なログを表示させる。 |
dynamic | 全てのログを表示させる。 |
▼categoryに指定できるログのカテゴリー
database | ゾーン情報やキャッシュ情報など、データベースに関連する記録。 |
security | 要素の承認・否認の記録。 |
config | 構成ファイルの構文解析と処理の記録。 |
resolver | クライアントに代わって実行されるキャッシュサーバのようなDNS解決の記録。 |
xfer-in | サーバが受信したゾーン転送の記録。 |
xfer-out | サーバが送信したゾーン転送の記録。 |
notify | NOTIFY通知プロトコルの記録。 |
client | クライアント要請の処理記録。 |
network | ネットワーク操作の記録。 |
update | ダイナミックDNSの記録。 |
queries | 問い合わせクエリーの記録。 |
dispatch | サーバモジュールへ入ってくるパケットを処理するCPU割り当ての記録。 |
dnssec | DNS応答が正しいサーバーから応答されたものであるか検証するDNSSEC等の処理を記録。 |
lame-servers | DNS解決の際にほかのサーバで見つけた設定ミスの記録。 |
general | 上記以外のカテゴリーはgeneralに分類される。 |
default | categoryで意図的に指定された以外のカテゴリがここで定義される。 |
ゾーンファイルの設定
管理するドメインとIPアドレスやホスト名との情報ファイルをゾーンファイルと呼びます。
このゾーンファイルが世界中に広報されることで、名前解決のサーバーが自サーバーであると宣言されます。
下記の設定では、必要なドメインの分のゾーンファイルがどこのディレクトリに設置されているかを定義します。
named.conf のデフォルトで記載のある zone 設定の下に追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
named.conf(zoneステートメント) zone "domain-name-a.com" in { type master; file "domain-name-a.com"; }; zone "domain-name-b.com" in { type master; file "domain-name-b.com"; }; zone "slave-server-name.com" in { type slave; masters { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; }; file "slaves/slave-server-name.com.bz.bak"; notify no; }; |
zone “.com” | 任意で記述した定義名ですが、ドメイン名で記載すると管理がし易いです。 |
type | masterなら自分のDNSで処理をする。slaveはファイルのバックアップ先のDNSサーバーです。 |
file | ゾーンの設定ファイル名。設置先ディレクトリはoptionsステートメントのデフォルト設定「directory “/var/named”;」で定義。 |
notify | ゾーン情報の更新がされたとき、NSレコードとalso-notifyで指定したサーバーに通知メッセージを送る。今回はそこまでゾーンファイルの更新は多くないのでnoに設定。 |
ゾーンファイルの作成
named.confで定義したファイル名で「/etc/named」配下にゾーンファイルを作成します。
1 2 |
# cd /var/named # vi domain-name-a.com |
▼完成形のゾーンファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ORIGIN domain-name-a.com. $TTL 3600 ; 1 hours @ IN SOA host.domain-name-a.com. adminuser.domain-name-a.com. ( 2022100601 ; シリアル番号 3h ; 3時間後にリフレッシュ 1h ; 1時間後にリトライ 1w ; 1週間後に期限切れ 1h ; ネガティブキャッシュTTLとして1時間を指定 ) IN NS host.domain-name-a.com. IN NS slavehost.domain.com. IN MX 10 domain-name-a.com. IN TXT "v=spf1 mx ~all" IN TXT "google-site-verification=A3YeZoJzbgzInqOK29K3uHrbAYaTXHdZETlMFJwIUuc" IN A xxx.xxx.xxx.xxx host IN A xxx.xxx.xxx.xxx mail IN A xxx.xxx.xxx.xxx www IN A xxx.xxx.xxx.xxx |
▼ドメイン名を記載
1 |
$ORIGIN domain-name-a.com. |
▼外部のDNSサーバーが自ドメインの情報を何秒間保存するか
ドメイン設定直後は600(5m)秒ほどにしておき、ブラウザーやメール等から疎通確認が出来たら3600(1h)秒に戻すと良い。
1 |
$TTL 3600 ; 1 hours |
▼ここからゾーン管理のための情報や設定を記述
1 |
@ IN SOA host01.domain-name-a.com. username.domain-name-a.com. ( |
▼更新番号
シリアル番号は「日付+更新番」で記載した一意のシリアル番号。古すぎると機能しないので変更後は更新すること。
- 2020070701 ; シリアル番号
- 3h ; 3時間後にリフレッシュ
- 1h ; 1時間後にリトライ
- 1w ; 1週間後に期限切れ
- 1h ; ネガティブキャッシュTTLとして1時間を指定
▼「)」で閉じてSOAレコードはここまで
1 |
) |
▼DNSサーバーを定義するためのNSレコード
1 |
IN NS host01.domain-name-a.com. |
▼スレーブのNS(Name Server)レコードの定義
1 |
IN NS ns02.slave-server-name.com. |
▼メールの配送先を定義するMX(Mail Exchange)レコード
「10」はpreference(プリファレンス)と呼ばれる優先順に。レコードが複数行ある場合は低い数値のpreferenceが優先され、配送に失敗した場合は次のpreferenceのドメインに配送される。
1 |
IN MX 10 domain-name-a.com. |
▼ホスト名に関連付ける文字列の情報を定義するレコード
下記の例では自ドメインからのメール送信飲みを許可するという意味のTXTレコード定義。
1 |
IN TXT "v=spf1 mx ~all" |
▼ホスト名とIPv4アドレスの定義
IPv6の場合は「AAAA」レコードを用いる。上記の場合、「host01」「mail」「www」というホスト名とIPアドレスが定義されている。
IPアドレスは「192.168.0.200」などの自DNSサーバーのローカルアドレスを記述。
1 2 3 4 |
IN A xxx.xxx.xxx.xxx host01 IN A xxx.xxx.xxx.xxx mail IN A xxx.xxx.xxx.xxx www IN A xxx.xxx.xxx.xxx |
小さくて見辛いですが、ドメインの後の「.」をつけ忘れると機能しないので注意!
▼作成したゾーンファイルのオーナー変更
1 |
# chown named.named domain-name-a.com |
自ドメイン以外のゾーンファイルの確認
下記については既に作成されていると思うがない場合は作成する。
▼キャッシュ用ゾーンファイル
上位のDNSサーバーであるルートサーバーがどこにあるのかを定義するためのキャッシュ用ゾーンファイル。
1 |
# vi named.ca |
▼下記をそのままコピペでOK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
; <<>> DiG 9.11.3-RedHat-9.11.3-3.fc27 <<>> +bufsize=1200 +norec @a.root-servers.net ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46900 ;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1472 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 518400 IN NS a.root-servers.net. . 518400 IN NS b.root-servers.net. . 518400 IN NS c.root-servers.net. . 518400 IN NS d.root-servers.net. . 518400 IN NS e.root-servers.net. . 518400 IN NS f.root-servers.net. . 518400 IN NS g.root-servers.net. . 518400 IN NS h.root-servers.net. . 518400 IN NS i.root-servers.net. . 518400 IN NS j.root-servers.net. . 518400 IN NS k.root-servers.net. . 518400 IN NS l.root-servers.net. . 518400 IN NS m.root-servers.net. ;; ADDITIONAL SECTION: a.root-servers.net. 518400 IN A 198.41.0.4 b.root-servers.net. 518400 IN A 199.9.14.201 c.root-servers.net. 518400 IN A 192.33.4.12 d.root-servers.net. 518400 IN A 199.7.91.13 e.root-servers.net. 518400 IN A 192.203.230.10 f.root-servers.net. 518400 IN A 192.5.5.241 g.root-servers.net. 518400 IN A 192.112.36.4 h.root-servers.net. 518400 IN A 198.97.190.53 i.root-servers.net. 518400 IN A 192.36.148.17 j.root-servers.net. 518400 IN A 192.58.128.30 k.root-servers.net. 518400 IN A 193.0.14.129 l.root-servers.net. 518400 IN A 199.7.83.42 m.root-servers.net. 518400 IN A 202.12.27.33 a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30 b.root-servers.net. 518400 IN AAAA 2001:500:200::b c.root-servers.net. 518400 IN AAAA 2001:500:2::c d.root-servers.net. 518400 IN AAAA 2001:500:2d::d e.root-servers.net. 518400 IN AAAA 2001:500:a8::e f.root-servers.net. 518400 IN AAAA 2001:500:2f::f g.root-servers.net. 518400 IN AAAA 2001:500:12::d0d h.root-servers.net. 518400 IN AAAA 2001:500:1::53 i.root-servers.net. 518400 IN AAAA 2001:7fe::53 j.root-servers.net. 518400 IN AAAA 2001:503:c27::2:30 k.root-servers.net. 518400 IN AAAA 2001:7fd::1 l.root-servers.net. 518400 IN AAAA 2001:500:9f::42 m.root-servers.net. 518400 IN AAAA 2001:dc3::35 ;; Query time: 24 msec ;; SERVER: 198.41.0.4#53(198.41.0.4) ;; WHEN: Thu Apr 05 15:57:34 CEST 2018 ;; MSG SIZE rcvd: 811 |
▼empty
named.confで定義された「/etc/named.rfc1912.zones」を開くと、ゾーンにて「named.empty」が定義されている。
RFC1918、RFC3330に定義された特殊なアドレスの参照処理が行われた際に「named.empty」のゾーン定義に基づき参照から除外されるという処理。
BINDが起動するのに必要な定義なので、下記で用意をしておく。
1 |
# vi named.empty |
1 2 3 4 5 6 7 8 9 10 |
$TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 |
▼localhost
ループバックアドレスの名前解決に使用される。
主に「localhost」→「127.0.0.1」の正引きで利用。
1 |
# vi named.localhost |
1 2 3 4 5 6 7 8 9 10 |
$TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 |
▼loopback
localhostとは逆に「127.0.0.1」→「localhost」の逆引きで利用。
1 |
# vi named.loopback |
1 2 3 4 5 6 7 8 9 10 11 |
TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. |
▼手動でゾーンファイル(named.xxx)を作成した場合
作成したゾーンファイルのオーナー権限を変更
1 |
# chown root.named named.ca named.localhost named.loopback named.empty |
chrootで起動(セキュリティ向上)
▼chrootについて
通常、bindのルートディレクトリは/ですが、bind-chrootを利用することで/var/named/chrootがルートディレクトリになり、bindのプロセスがアクセス可能なディレクトリ領域を制限することが出来ます。
※bindのプロセスが/var/named/chrootより上のディレクトリへアクセスできない状態で環境構築される。
セキュリティの観点から、bindでのDNSサーバ構築時には、bind-chrootの利用が推奨されているようです。
▼named-chroot自動起動
1 2 3 |
# systemctl enable named-chroot Created symlink /etc/systemd/system/multi-user.target.wants/named-chroot.service → /usr/lib/systemd/system/named-chroot.service. |
▼自動起動確認
1 2 |
# systemctl is-enabled named-chroot enabled |
▼ログの出力先作成
1 2 |
# mkdir /var/named/chroot/var/log/named # chown named.named /var/named/chroot/var/log/named |
▼named-chrootを起動
1 |
# systemctl start named-chroot |
※namedの起動は必要ありません。
▼chroot化の特徴
chrootで起動された場合、BINDから見ると「/」がルートではなく、「/var/named/chroot」がルートになります。
1 |
# cat /var/log/messages | grep named.conf |
-t でオプションが指定されてchrootされています。
そのため「named.conf」でログの出力先として「/var/log/named/named_query.log」と設定しましたが、こちらにログは出力されず、「/var/named/chroot/var/log/named/named_query.log」にログが出力されます。
デフォルトでは「/var/named/chroot/var/log/named」の「named」というディレクトリは無いので、この場合はエラートなりnamed-chrootは起動しません。
▼ログディレクトリが無い状態で起動した際のエラー
1 2 3 4 5 |
# systemctl start named-chroot : Active: failed (Result: exit-code) since Wed 2020-09-30 11:44:53 +03; 3s ago : 9月 30 11:44:53 ac01 named[5785]: isc_stdio_open '/var/log/named/named_query.log' |
このログだと「/var/log/named/named_query.log」を確認してファイルはあるのに!?
となりますが、chroot化後は「/var/named/chroot/var/log/named/named_query.log」にログは出力され、デフォルトで「named」ディレクトリが無いため、上記のような紛らわしいエラーになります。
意外とハマり易い箇所なので注意です…!
上記のような場合はディレクトリを作成して、namedユーザーの権限でオーナーを変更する必要がります。
ログのファイル名自体は起動後に自動作成されるので、ディレクトリの準備のみでOKです!
1 2 |
# mkdir /var/named/chroot/var/log/named # chown -R named.named /var/named/chroot/var/log/named |
テスト
▼テスト用コマンドについて
最小インストールで CentOS8 をインストールした場合、下記テストで実行している「dig」「host」「nslookup」のコマンドはインストールされていないと思われます。
その場合は こちら の手順でコマンドのインストールを行なってください。
▼コンフィグテスト
エラーにならなければOK!
1 |
# named-checkconf -z |
▼ゾーンファイルのテスト
OKとなれば問題なし。
1 2 3 |
# named-checkzone domain-name-a.com /var/named/domain-name-a.com.zone zone angelscry.net/IN: loaded serial 2015081001 OK |
▼dig(domain information groper)コマンドで応答状況確認
レコードがずらずらと表示されればOK
1 |
# dig domain-name-a.com |
▼ホスト確認
アドレスがリプライされればOK
1 2 |
# host host01.domain-name-a.com host01.domain-name-a.com has address xxx.xxx.xxx.xxx |
▼ネームサーバー確認
1 2 3 |
# nslookup angescry.net Server: 192.168.0.1 Address: 192.168.0.1#53 |