VMware Photon OS 3.0 で、簡易的な DNS サーバを構築してみます。
今回は、Photon OS の RPM リポジトリに登録されている dnsmasq を利用します。
Photon OS の準備。
VMware から提供されている、Photon OS の OVA をデプロイします。
今回は、「OVA with virtual hardware v13 (UEFI Secure Boot)」を利用しました。
Downloading Photon OS · vmware/photon Wiki · GitHub
OVA ファイルをデプロイ→パワーオンします。
そして、root / changeme で初期パスワードを変更してログインします。
root@photon-machine [ ~ ]# cat /etc/photon-release
VMware Photon OS 3.0
PHOTON_BUILD_NUMBER=26156e2
ホスト名を、わかりやすいもの(今回は lab-dns-01)に変更しておきます。
ログインしなおすと、bash のプロンプトにもホスト名が反映されます。
root@photon-machine [ ~ ]# hostnamectl set-hostname lab-dns-01
ネットワーク設定は、DHCP を利用しています。
DNS サーバの構築。(dnsmasq)
まず、dnsmasq をインストールします。
root@lab-dns-01 [ ~ ]# tdnf install -y dnsmasq
root@lab-dns-01 [ ~ ]# rpm -q dnsmasq
dnsmasq-2.79-2.ph3.x86_64
dnsmasq では、hosts ファイルのエントリを DNS レコードとして利用できます。
/etc/hosts ファイルに、DNS レコードの情報を記入します。
root@lab-dns-01 [ ~ ]# echo '192.168.1.20 base-esxi-01.go-lab.jp' >> /etc/hosts
root@lab-dns-01 [ ~ ]# echo '192.168.1.30 lab-vcsa-01.go-lab.jp' >> /etc/hosts
root@lab-dns-01 [ ~ ]# tail -n 2 /etc/hosts
192.168.1.20 base-esxi-01.go-lab.jp
192.168.1.30 lab-vcsa-01.go-lab.jp
dnsmasq を起動します。
root@lab-dns-01 [ ~ ]# systemctl start dnsmasq
root@lab-dns-01 [ ~ ]# systemctl is-active dnsmasq
active
root@lab-dns-01 [ ~ ]# systemctl enable dnsmasq
Created symlink /etc/systemd/system/multi-user.target.wants/dnsmasq.service → /lib/systemd/system/dnsmasq.service.
hosts ファイルを編集した場合は、dnsmasq サービスを再起動しておきます。
root@lab-dns-01 [ ~ ]# systemctl restart dnsmasq
iptables で、DNS のポートを開放しておきます。
iptables-save コマンドを利用するかわりに、/etc/systemd/scripts/ip4save ファイルへの
「-A INPUT -p udp -m udp --dport 53 -j ACCEPT」直接追記でも、同様に iptables の設定を永続化できます。
root@lab-dns-01 [ ~ ]# iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
root@lab-dns-01 [ ~ ]# iptables-save > /etc/systemd/scripts/ip4save
root@lab-dns-01 [ ~ ]# systemctl restart iptables
名前解決の確認。
別の Photon OS 3.0 に、bindutils をインストールします。
root@photon-machine [ ~ ]# tdnf install -y bindutils
bindutils には、nslookup や dig コマンドが含まれます。
root@photon-machine [ ~ ]# rpm -ql bindutils
/etc/named.conf
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/lib/tmpfiles.d/named.conf
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/nslookup.1.gz
登録したレコードの名前解決ができることを確認します。
ここでは、「lab-vcsa-01.go-lab.jp」と「192.168.1.30」を正引き / 逆引きで確認してみます。
「192.168.1.15」は、dnsmasq をインストールした DNS サーバのアドレスです。
root@photon-machine [ ~ ]# nslookup lab-vcsa-01.go-lab.jp 192.168.1.15
Server: 192.168.1.15
Address: 192.168.1.15#53
Name: lab-vcsa-01.go-lab.jp
Address: 192.168.1.30
root@photon-machine [ ~ ]# nslookup 192.168.1.30 192.168.1.15
30.1.168.192.in-addr.arpa name = lab-vcsa-01.go-lab.jp.
これで、ラボなどで利用する DNS サーバが用意できます。
以上、Photon OS 3.0 を DNS サーバにしてみる話でした。