NetworkManager は名前解決を dnsmasq に移譲できる
事前に、dnsmasq と NetworkManager 両方がシステムにインストールされていることを確認する。
1. DNS サーバーを指定する。
code:/etc/NetworkManager/dnsmasq.d/nm-dns-dnsmasq.conf
server=1.1.1.1
server=1.0.0.1
2. 移譲を有効にする。
code:/etc/NetworkManager/NetworkManager.conf
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
dns=dnsmasq
3. NetworkManager を再起動する。
code:shell
sudo systemctl restart NetworkManager
これの何が嬉しいのかと言うと、NetworkManager 環境下での名前解決の挙動を詳細に変更できる。
例: 以下のようにして特定のドメインの名前解決に使用する DNS サーバーを変更する。
code:/etc/NetworkManager/dnsmasq.d/nm-dns-dnsmasq.conf
server=/example/192.0.2.1
server=1.1.1.1
server=1.0.0.1
結果:
example -> 192.0.2.1
alice.example -> 192.0.2.1
example.com -> 1.1.1.1 / 1.0.0.1