無線ローミングにより resolv.conf がめちゃくちゃになる

無線ローミングにより resolv.conf がめちゃくちゃになる

これは私のワイヤレスネットワークです。interfaces

#auto wlp1s0
allow-hotplug wlp1s0
iface wlp1s0 inet manual
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#        up /usr/sbin/wondershaper -a wlan0 -d 9500 -u 15000
#        down /usr/sbin/wondershaper -a wlan0 -c

allow-hotplug RWB
iface RWB inet dhcp

ここで、RWBAP は次のように定義されます。/etc/wpa_supplicant/wpa_supplicant.conf

dhclientこのファイルはAPに接続するたびに更新されます/etc/resolv.conf。つまり、片足でRWB別のデバイス(有線イーサネットを含む)に接続すると、IPアドレスがresolv.confルーティングできなくなり、DNSが失敗します。

dhcp素朴な回避策はクライアントの更新を防ぐことですが、resolv.conf確かにこの状況に関する問題を解決するための一般的な構成があります。何ですか?

答え1

まだコメントできないので、答えは次のようになります。このYouTubeでは、resolv.confを使用してUbuntu / Debianで永続DNSネームサーバーを設定する方法を紹介します。

https://www.youtube.com/watch?v=NEyXDdBrw2c

@Hack Sawが述べたように、systemdは解決.confからDNSネームサーバーを永久に変更する際に問題を引き起こす可能性がある解決.confを管理できます。

答え2

manページからdhclient-

BUGS
       If more than one interface is being used, there's no obvious way to avoid
clashes between server-supplied configuration parameters - for example, the stock
dhclient-script rewrites /etc/resolv.conf ...

dhclientDHCP イベントが発生したときにシェルスクリプトを使用してシステムを設定します。dhclient上書きを防ぐには、resolv.confこのスクリプトのデフォルトの動作を変更する必要があります。ただし、まず、複数のネットワークインターフェイスのDNS情報を管理できる同様のものをインストールして実行する必要がありますsystemd-resolved

dhclient以下は、上書きするのではなくDNS情報を更新するように変更する方法の例です。systemd-resolved/etc/resolv.conf

/etc/dhcp/dhclient-enter-hooks.d/dns-update

#!/bin/sh

make_resolv_conf(){
    # DHCPv4
    if [ -x /usr/bin/systemd-resolve ]; then
        if [ -n "$new_domain_name" ]; then
            systemd-resolve --interface="$interface" --set-domain="${new_domain_name%% *}"
        fi
        if [ -n "$new_domain_name_servers" ]; then
            for nameserver in $new_domain_name_servers; do
                systemd-resolve --interface="$interface" --set-dns="$nameserver"
            done
        fi
    fi
}

dhclientこのスクリプトは、DHCPから受信したシステム構成を適用し、ストックを上書きする前に呼び出されますmake_resolv_conf()

/etc/dhcp/dhclient-enter-hooks.dオペレーティングシステムによっては、ディレクトリがない場合があります。この場合、スクリプトを/etc/dhclient-enter-hooks

関連情報