Closed Goryudyuma closed 7 years ago
社内のDNSサーバを構築する際、上司はコンテンツサーバとキャッシュサーバを別にしなければならないというこだわりを見せた。リソースが足りないため1台のサーバに同居させたところ、正しくフォワードされないようである。この不具合を修正し、 http://t[チーム番号].p22.ictsc が表示されることを確認してほしい。
該当のDNSサーバーにリクエストを送信すると、server failedというレスポンスが返ってくる。 マスターに聞きに行って応答がなかったみたい。 ログイン情報に書かれてるサーバーはcentosで、selinuxが有向になっているらしい。
[root@p22 ~]# systemctl status nsd
● nsd.service - NSD DNS Server
Loaded: loaded (/usr/lib/systemd/system/nsd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 土 2017-03-04 09:15:00 JST; 4h 6min ago
Main PID: 738 (code=exited, status=1/FAILURE)
3月 04 09:15:00 p22.problem.ictsc systemd[1]: Started NSD DNS Server.
3月 04 09:15:00 p22.problem.ictsc systemd[1]: Starting NSD DNS Server...
3月 04 09:15:00 p22.problem.ictsc nsd[738]: nsd starting (NSD 4.1.14)
3月 04 09:15:00 p22.problem.ictsc nsd[738]: [2017-03-04 09:15:00.937] nsd[738]: notice: nsd starting (NSD 4.1.14)
3月 04 09:15:00 p22.problem.ictsc systemd[1]: nsd.service: main process exited, code=exited, status=1/FAILURE
3月 04 09:15:00 p22.problem.ictsc nsd[738]: [2017-03-04 09:15:00.939] nsd[738]: error: can't bind udp socket: Permission denied
3月 04 09:15:00 p22.problem.ictsc nsd[738]: [2017-03-04 09:15:00.939] nsd[738]: error: server initialization failed, nsd could not be started
3月 04 09:15:00 p22.problem.ictsc systemd[1]: Unit nsd.service entered failed state.
3月 04 09:15:00 p22.problem.ictsc systemd[1]: nsd.service failed.
[root@p22 ~]# cat /usr/lib/systemd/system/nsd.service
[Unit]
Description=NSD DNS Server
After=syslog.target network-online.target
After=nsd-keygen.service
Wants=nsd-keygen.service
[Service]
Type=simple
PIDFile=/var/run/nsd/nsd.pid
EnvironmentFile=-/etc/sysconfig/nsd
ExecStart=/usr/sbin/nsd -d -c /etc/nsd/nsd.conf $NSD_EXTRA_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@p22 ~]# semanage port -a -t dns_port_t -p udp 10053
[root@p22 ~]# semanage port -a -t dns_port_t -p tcp 10053
[root@p22 ~]# systemctl start nsd
[root@p22 ~]# systemctl status nsd
● nsd.service - NSD DNS Server
Loaded: loaded (/usr/lib/systemd/system/nsd.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2017-03-04 13:42:34 JST; 1s ago
Main PID: 3151 (nsd)
CGroup: /system.slice/nsd.service
├─3151 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf
├─3152 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf
└─3153 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf
3月 04 13:42:34 p22.problem.ictsc systemd[1]: Started NSD DNS Server.
3月 04 13:42:34 p22.problem.ictsc systemd[1]: Starting NSD DNS Server...
3月 04 13:42:34 p22.problem.ictsc nsd[3151]: nsd starting (NSD 4.1.14)
3月 04 13:42:34 p22.problem.ictsc nsd[3151]: [2017-03-04 13:42:34.981] nsd[3151]: notice: nsd starting (NSD 4.1.14)
3月 04 13:42:35 p22.problem.ictsc nsd[3152]: nsd started (NSD 4.1.14), pid 3151
3月 04 13:42:35 p22.problem.ictsc nsd[3151]: [2017-03-04 13:42:35.027] nsd[3152]: notice: nsd started (NSD 4.1.14), pid 3151
10053ポートは名前解決可能
Mar 4 14:48:47 p22 unbound: [3279:0] info: Could not establish a chain of trust to keys for ictsc. DNSKEY IN
unboundのDNSSECを無効にした
mbp-bgpat:ictsc7 bgpat$ dig @192.168.22.3 t8.p22.ictsc any
; <<>> DiG 9.8.3-P1 <<>> @192.168.22.3 t8.p22.ictsc any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23864
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;t8.p22.ictsc. IN ANY
;; ANSWER SECTION:
t8.p22.ictsc. 7 IN SOA t8.p22.ictsc. root.t8.p22.ictsc. 20170223 60 15 600 60
t8.p22.ictsc. 7 IN A 172.20.0.251
;; Query time: 3 msec
;; SERVER: 192.168.22.3#53(192.168.22.3)
;; WHEN: Sat Mar 4 15:46:41 2017
;; MSG SIZE rcvd: 87
[root@p22 ~]# semanage port -a -t dns_port_t -p udp 10053
[root@p22 ~]# semanage port -a -t dns_port_t -p tcp 10053
[root@p22 unbound]# diff unbound.conf unbound.conf.org
341d340
< module-config: "iterator"
問題サーバーを指定して名前解決ができるようになった
$ dig @192.168.22.3 t8.p22.ictsc any
; <<>> DiG 9.8.3-P1 <<>> @192.168.22.3 t8.p22.ictsc any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4800
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;t8.p22.ictsc. IN ANY
;; ANSWER SECTION:
t8.p22.ictsc. 53 IN SOA t8.p22.ictsc. root.t8.p22.ictsc. 20170223 60 15 600 60
t8.p22.ictsc. 53 IN A 172.20.0.251
;; Query time: 1 msec
;; SERVER: 192.168.22.3#53(192.168.22.3)
;; WHEN: Sat Mar 4 15:55:45 2017
;; MSG SIZE rcvd: 87
ICTSC
ガイド
メンバー
チーム
トップ
問題
質問
ログアウト
問題2:
TAB
公開 2017-03-04T10:13:05.000+09:00 | 更新 2017-03-04T10:13:39.000+09:00
基準点: 85 / 満点: 100 / 通過チーム数: 3 / 依存: なし
補足事項:
問題にて提供するべき情報が不足していました。参加者やVMがデフォルトで参照するDNSサーバ(172.20.0.251)には、t[tid].p22.ictsc IN NS [問題VMのIPアドレス]
のレコードが入っています。
2017-03-04T11:08:42.000+09:00
問題のゴールは、参加者の手元のPCのブラウザから http://t[tid].p22.ictsc/
へアクセスができるようになることです。
2017-03-04T14:22:25.000+09:00 問題に不備があり、逆引きについて設定することはできないことが判明しました。 逆引きの加点についてはなしとします。お手間を取らせてしまい大変申し訳ありませんでした。
2017-03-04T15:22:44.000+09:00 問題: 社内のDNSサーバを構築する際、上司はコンテンツサーバとキャッシュサーバを別にしなければならないというこだわりを見せた。リソースが足りないため1台のサーバに同居させたところ、正しくフォワードされないようである。この不具合を修正し、 http://t[チーム番号].p22.ictsc が表示されることを確認してほしい。
ログイン情報
host user pass sudo p22.problem.ictsc admin password yes 質問 解答 得点: 60 新規質問
タイトルは具体的かつ端的に記入してください ||||
100:0 質問投稿 解決済み NSレコードがない 問題にて提供するべき情報が不足していました。参加者やVMがデフォルトで参照するDNSサーバ(172.20.0.251)には、t[tid].p22.ictsc IN NS [問題VMのIPアドレス] のレコードが入っています。 とありますが、手元のPCから引けません。 問題には影響ないでしょうか。
$ dig @172.20.0.251 t8.p22.ictsc NS
; <<>> DiG 9.8.3-P1 <<>> @172.20.0.251 t8.p22.ictsc NS ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 36249 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION: ;t8.p22.ictsc. IN NS
;; Query time: 5 msec ;; SERVER: 172.20.0.251#53(172.20.0.251) ;; WHEN: Sat Mar 4 15:49:55 2017 ;; MSG SIZE rcvd: 30 投稿 2017-03-04T15:51:16.000+09:00 | 更新 2017-03-04T16:00:28.000+09:00 問題ありません。よろしくお願いいたします。 投稿者: ICTSC7 運営委員 | 2017-03-04T15:56:34.000+09:00 解決済み
とりあえずNSレコードを追加した
[root@p22 ~]# diff /etc/unbound/unbound.conf /etc/unbound/unbound.conf.org
180d179
< access-control: 172.20.0.251/32 allow
342d340
< module-config: "iterator"
nsdのゾーン情報
[root@p22 ~]# semanage port -a -t dns_port_t -p udp 10053
[root@p22 ~]# semanage port -a -t dns_port_t -p tcp 10053
[root@p22 unbound]# diff unbound.conf unbound.conf.org
341d340
< module-config: "iterator"
問題サーバーを指定して名前解決ができるようになった
$ dig @192.168.22.3 t8.p22.ictsc any
; <<>> DiG 9.8.3-P1 <<>> @192.168.22.3 t8.p22.ictsc any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4800
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;t8.p22.ictsc. IN ANY
;; ANSWER SECTION:
t8.p22.ictsc. 53 IN SOA t8.p22.ictsc. root.t8.p22.ictsc. 20170223 60 15 600 60
t8.p22.ictsc. 53 IN A 172.20.0.251
;; Query time: 1 msec
;; SERVER: 192.168.22.3#53(192.168.22.3)
;; WHEN: Sat Mar 4 15:55:45 2017
;; MSG SIZE rcvd: 87
# Choose deny (drop message), refuse (polite error reply),
# allow (recursive ok), allow_snoop (recursive and nonrecursive ok)
access-control: 0.0.0.0/0 refuse
access-control: 192.168.0.0/16 allow
access-control: 172.16.0.0/16 allow
+ access-control: 172.20.0.251/32 allow
access-control: 10.0.0.0/8 allow
access-control: 127.0.0.0/8 allow
# access-control: ::0/0 refuse
# access-control: ::1 allow
手元のPCからhttp://t8.p22.ictsc/ にアクセスできることが確認された
http://contest.ictsc/#/problems/9/8/issues