DNSサーバを作りたかったらしい
問題名
- DNSサーバを作りたかったらしい
概要
あなたは同僚から助けを求められた。彼は社内のDNSサーバの構築ログに基づいて環境構築を試みたが、テストとして実行したコマンドでは期待していた出力が行われなかったらしい。原因を調査して、エラーを解決してあげよう。
前提条件
- ns01はmaster、ns02はslaveサーバとして機能させたい
- トラブルに関係しない要素については変更しない
初期状態
ns02でdig @localhost red.prob.final.ictsc.net
が解決できない
終了状態
- ns02で
dig @localhost red.prob.final.ictsc.net
が解決できる - 原因が特定されて報告される
- トラブル解決前に期待されていた動作をしている
接続情報
VM名 | ホスト名 | ユーザ | パスワード |
---|---|---|---|
ns01 | 192.168.18.1 | user | ictsc2020 |
ns02 | 192.168.18.2 | user | ictsc2020 |
解説
この問題は、bindが設定ファイルのエラーによって起動していませんでした。
root@ns02: ~$ systemctl status bind9
● bind9.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2021-02-26 08:46:44 UTC; 1s ago
Docs: man:named(8)
Process: 1173 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
Process: 1195 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=1/FAILURE)
Main PID: 1195 (code=exited, status=1/FAILURE)
Feb 26 08:46:44 ns02 named[1195]: /etc/bind/named.conf.prob:115: writeable file '/etc/bind/slave/alice.prob.final.ictsc.net': already in use: /etc/bind/named.conf.prob:54
Feb 26 08:46:44 ns02 named[1195]: /etc/bind/named.conf.prob:120: writeable file '/etc/bind/slave/text.prob.final.ictsc.net': already in use: /etc/bind/named.conf.prob:60
Feb 26 08:46:44 ns02 named[1195]: /etc/bind/named.conf.prob:125: writeable file '/etc/bind/slave/tower.prob.final.ictsc.net': already in use: /etc/bind/named.conf.prob:66
Feb 26 08:46:44 ns02 named[1195]: /etc/bind/named.conf.prob:130: writeable file '/etc/bind/slave/home.prob.final.ictsc.net': already in use: /etc/bind/named.conf.prob:72
Feb 26 08:46:44 ns02 named[1195]: loading configuration: failure
Feb 26 08:46:44 ns02 named[1195]: exiting (due to fatal error)
Feb 26 08:46:44 ns02 systemd[1]: bind9.service: Main process exited, code=exited, status=1/FAILURE
Feb 26 08:46:44 ns02 systemd[1]: bind9.service: Failed with result 'exit-code'.
解決方法は/etc/bind/named.conf.prob
のエラー部でin-view
を用いることです。例えば以下のように表記します。
view external {
match-clients { any; };
zone example.com {
in-view internal;
};
};
- 参考
- https://bind9.readthedocs.io/en/latest/reference.html?highlight=in-view#multiple-views
bind9.11からこの表記法でエラーが出るようになったため、この問題は参考にしていたドキュメントが古いバージョンのものだったというシナリオでした。
CentOS7で現在提供されている最新バージョンなど、bind9.11.xによっては上記エラーを無視して起動できるようになっています。
採点基準
採点において、in-view
を用いずfileのパスを変更して重複を回避している例が多くありました。この問題は背景として、DNSサーバの構築練習途中であるという設定があり、基準内での解決であれば100%の採点がされています。また、この問題は社内DNSサーバの構築ログ
を参考にとあるようにある程度期待された動作があります。そのため、設定ファイルを大幅に変更することによるトラブル解決前に期待されていた動作をしている
を満たしていない場合は減点がされます。
- エラーを解決してBINDを起動し、指定のコマンドによる名前解決に成功する && 原因と解決方法について回答に記述されている(100%)
- どちらかに不足があった場合は50%とする。