元々gatewayに設定しているルータをそのままDNSサーバとして指定していたが、ルータを書い変えてからしばしば名前解決が出来なくなる事象が起きていた。仕方なくGoogleのDNSを設定したときの備忘録。
環境
$ uname -r
5.7.9-arch1-1
$ nmcli -v
nmcli tool, version 1.26.0-1
やったこと
まず適当に ping 8.8.8.8
とかやって通ることを確認し、 drill google.com
はIPが帰ってこないことを確認した。ここで /etc/resolv.conf
の状態は以下の通り。
# Generated by resolvconf
nameserver 192.168.11.1
resolvconfが自動生成しているっぽいことが分かったが、とりあえず手動で以下のように書き換えて通るかどうかを確認した。
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
nameserver 8.8.8.8
nameserver 8.8.4.4
これで問題なく名前解決に成功したため /etc/resolv.conf
を編集出来れば大丈夫だと判断した。
しかし案の定マシンを再起動すると初期の状態に戻ってしまうため resolvconf
について調べてみたところ、 /etc/resolv.conf
を設定するためのヘルパーであることが分かった。
- https://wiki.archlinux.org/index.php/Openresolv
man 'resolvconf.conf(5)'
最終的にArchWikiに従って /etc/resolvconf.conf
に以下を追記し、 resolvconf -u
して意図通りの /etc/resolv.conf
が生成されることを確認した。
name_servers="2001:4860:4860::8888 2001:4860:4860::8844 8.8.8.8 8.8.4.4"
またNetworkManagerを使っているので、これも書き換えを制御するように /etc/NetworkManager/NetworkManager.conf
に以下を追記しておいた。
[main]
dns=none
ここまでやって再起動後の /etc/resolv.conf
は以下の状態となり、当初のルータ不調に対応することが出来た。
# Generated by resolvconf
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 192.168.11.1