Photon OS でDNSサーバをDocker + CoreDNSで構築する
前ポストに引き続き、検証環境構築メモとなります。
今回は検証環境の内部向けドメインのDNSサーバを構築します。
VyOSの構築メモ - passacaglia
Environment
- PhotonOS
- CoreDNS
add user
予めsudoグループに追加しておけば、sudersへの追加は不要。
# useradd -m -G sudo admin # passwd admin
disable iptables
デフォルトでは 22/tcpのみポート開放されている。必要なポートのみ開放することが望ましいが、一旦停止。
# systemctl stop iptables # systemctl disable iptables
docker
Photon OSでは、dockerが予めインストールされているが、無効化されているので、有効化して起動させる。
# systemctl enable docker # systemctl start docker
CoreDNS
coredns/Corefile
. { #log reload forward . <RESOLVER> } <LOCAL_DOMAIN> { log file /etc/coredns/zones/<LOCAL_DOMAIN>.zone }
BIND形式でのゾーンファイルを作成。
coredns/zones/zonefile
$ORIGIN <DOMAIN>. @ 3600 IN SOA mgmt.<DOMAIN>. admin.<DOMAIN>. ( 2020123100 7200 3600 1209600 3600 ) 3600 IN NS mgmt.<DOMAIN>. mgmt IN A 172.23.0.X
事前にCoreDNSのイメージをダウンロード。
docker pull coredns/coredns:1.7.0
今回はdocker-composeを利用してコンテナの管理を行うため、yamlファイルを用意。
version: '3' services: coredns: image: coredns/coredns:1.7.0 container_name: coredns restart: always network_mode: host command: -conf /etc/coredns/Corefile volumes: - coredns:/etc/coredns volumes: coredns: driver_opts: type: none device: <PATH_TO_COREDNS_DIR> o: bind
systemd-resolvedを停止する。
systemctl stop systemd-resolved systemctl disable systemd-resolved
corednsを起動
docker-compose up -d
設定したコンフィグで名前解決ができることを確認。