DNS構築チャレンジ_part1

スピーカー

barson さん

概要

イベント共有ポータル 

  • 作業風景配信
  • 自宅内にDNSコンテンツサーバを構築する。

前提条件

ここでは例として下記のドメインとIPアドレスを用いて説明する

※説明用であるため実在しない内容も含まれます。

ドメイン名:infra-workshop.tech IPアドレス:10.20.0.0/24

作業環境

root@dns-stage:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster

パッケージのインストール

root@dns-stage:~# apt install nsd dnsutils

パッケージの更新

root@dns-stage:~# apt clean && apt update && apt upgrade

バージョンの確認

# nsd -v NSD version 4.1.26 Written by NLnet Labs. Copyright (C) 2001-2006 NLnet Labs. This is free software. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

zoneファイルを配置するディレクトリの作成

# mkdir -p /etc/nsd/zones/

ゾーンファイルの編集

正引き用のzoneファイルを作成します。

zoneファイル名はinfra-workshop.tech.zoneとすると管理がしやすくなる。

# cat << 'EOF' | tee /etc/nsd/zones/infra-workshop.tech.zone $TTL 3600 $ORIGIN infra-workshop.tech. @ IN SOA ns.infra-workshop.tech. root.infra-workshop.tech. ( 2016121601 ; serial number 10800 ; Refresh 3600 ; Retry 604800 ; Expire 1 ; Min TTL ) IN NS ns.infra-workshop.tech. wiki IN A 10.20.0.1 wp IN A 10.20.0.2 EOF

逆引き用のzoneファイルを作成します。

zoneファイル名は0.20.10.in-addr.arpa.zoneとすると管理がしやすくなる。 WEBページの凡例に逆引きzoneでも「

」を定義している例もあるがこれは不要

# cat << 'EOF' | tee /etc/nsd/zones/0.20.10.in-addr.arpa.zone $TTL 3600 @ IN SOA ns.infra-workshop.tech. root.infra-workshop.tech.( 2015123105 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) IN NS ns.infra-workshop.tech. 1 IN PTR wiki.infra-workshop.tech. 2 IN PTR wp.infra-workshop.tech. EOF

nsd.confの編集

# cat << 'EOF' | tee /etc/nsd/nsd.conf server: port: 53 do-ip4: yes do-ip6: no username: nsd logfile: "/var/log/nsd.log" zonesdir: "/etc/nsd/zones" remote-control: control-enable: yes zone: name: "infra-workshop.tech" zonefile: "infra-workshop.tech.zone" zone: name: "0.20.10.in-addr.arpa" zonefile: "0.20.10.in-addr.arpa.zone" EOF

サービスのreload/restart

別ターミナルでlogを表示できるようにしておくと良い

# tail -f /var/log/syslog | grep "nsd"

zoneファイルの作成/削除時は restart が必要 既存のzoneファイルの編集時は reload でOK

# service nsd reload # service nsd restart

正常性の確認

正引きの確認

# dig @localhost wiki.infra-workshop.tech +norec # dig @localhost wp.infra-workshop.tech +norec

逆引きの確認

# dig @localhost -x 10.20.0.1 +norec # dig @localhost -x 10.20.0.2 +norec

作業完了


トラブルシューティング

/var/log/nsd.log について

エラーメッセージ

error: Cannot open /var/log/nsd.log for appending (Permission denied), logging to stderr

対処法

不明

試したこと

# chmod 777 /var/log/nsd.log

結果

error: Cannot open /var/log/nsd.log for appending (Read-only file system), logging to stderr

試したこと

# chmod 664 /var/log/nsd.log

結果

error: Cannot open /var/log/nsd.log for appending (Permission denied), logging to stderr

/run/nsd/nsd.pid について

エラーメッセージ

warning: failed to unlink pidfile /run/nsd/nsd.pid: Permission denied

対処法

# chown -R nsd:nsd /run/nsd

参考文献

https://qiita.com/kite_999/items/e77fb521fc39454244e7 

https://dnsops.jp/event/20120831/dns-troubleshoot-2.pdf