オレオレDNS!
問題名
オレオレDNS!
概要
独自のドメイン test.ictsc
を名前解決できるようにする。
前提条件
- DNSサーバーがVM1に立っており、192.168.8.1:53をlistenしている
- VM1の/etc/resolv.confをテキストエディタ等で192.168.8.1:53に書き換えてはいけない(再起動時に上書きされるため)
- VM1が所属するLANではDHCPが有効になっており、192.168.8.1:53がDNSサーバーとして広報されているため、どうにかしてDHCPの指定するDNSサーバーが/etc/resolv.confに反映されるようにしましょう。
初期状態
vm1からdig test.ictsc
を実行すると何もレコードが帰ってこない
終了状態
vm1からdig test.ictsc
を実行するとAレコードが返ってくる
解説
netplanがDNSサーバーとして1.1.1.1を指していた問題でした。この環境の場合、systemd-resolvedが/etc/resolv.conf
を管理しており、そのsystemd-resolvedにDNSサーバーを設定しているのがnetplanになっています。そのため、netplanの設定を修正します。
初期状態では/etc/netplan/01-netcfg.yaml
の中身は以下のようになっています。
network:
ethernets:
eth0:
dhcp4: 'no'
dhcp6: 'no'
addresses: [192.168.8.1/24]
gateway4: 192.168.8.254
nameservers:
addresses: [1.1.1.1]
renderer: networkd
version: 2
これを、以下のように編集しDHCP: yes
にすると正解となります。
network:
ethernets:
eth0:
dhcp4: 'yes'
dhcp6: 'no'
renderer: networkd
version: 2
systemd-networkで192.168.8.1
を設定してる解答がありましたが、DHCPを使っていないので不正解としました。
また、Discoveryが帰って来ないのは単にIPプールが枯渇して192.168.8.1以外のIPを取ってこれないだけで、ip addr del
したのちdhclient
すると正しく帰ってきます。