同時に複数のネットワークに接続することがよくあります。これらの各ネットワークは、dhcpを介してネームサーバー構成を提供します。例:ネットワーク1:(eth0):
domain company1.corp #
nameserver 192.168.0.253
nameserver 192.168.0.254
ネットワーク2(tun0):
domain company2.corp #
nameserver 10.102.204.51
nameserver 10.102.208.51
#名前が変更されました
両方のネットワークに同時に接続した場合:
# resolv.conf from NetworkManager
domain company1.corp, company2.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
nameserver 10.102.204.51
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 10.102.208.51
最初のネームサーバーはcompany1.corpの名前しか認識しないため、service.company2.corpの解決は機能しません。
この記事に触発されて、私はopenresolv(resolvconf実装)をセットアップして、Arch linuxインストールでローカルdnsmasqサービスを構成しました。
resolvconfを使用してネームサーバーを手動で構成する場合:
# resolvconf -d NetworkManager
# echo "domain company1.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
" | resolvconf -a eth0
# echo "domain company2.corp
nameserver 10.102.204.51
nameserver 10.102.208.51
" | resolvconf -a tun0
次に、company1.corpとcompany2.corpの両方から名前を解決できます(ローカルのdnsmasqサーバーがこれを処理します)。
手動構成の後、resolveconf -lは2つの構成を個別に表示します。
~ # resolvconf -l
# resolv.conf from tun0
domain company2.corp
nameserver 10.102.204.51
nameserver 10.102.208.51
# resolv.conf from eth0
domain company1.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
ただし、ネットワークマネージャーに構成を行わせる場合、ネットワークマネージャーが/etc/resolve.confに書き込みを行っている場合のように、2つの構成は分離されません。
~ # resolvconf -l
# resolv.conf from NetworkManager
# Generated by NetworkManager
domain company1.corp, company2.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
nameserver 10.102.204.51
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 10.102.208.51
私の質問は、ネットワークマネージャーにresolveconfを正しく呼び出させて、各インターフェイスのネームサーバーを個別に登録する方法を教えてください。(残念ながら、グーグルで検索しても役に立たないのは、Googleが「resolveconf」==「resolve.conf」と考えるためです)
"resolvconf"
で、引用符で検索します。Googleでは、必ず適切な名前を引用符で囲んでください。