私は、Arch Linux システムで Network Manager (1.18.0-1) を使用していますが、そこには (基本パッケージresolvconf
の依存関係があります) も存在します。openresolv
netctl
NetworkManager 経由で VPN サーバーに接続しているときに、VPN を切断した後も DNS レコードが残るという問題が発生します。原因は部分的にわかりました。
- 接続後、NetworkManagerプロセスはVPNネームサーバーを
resolv.conf
/etc/ppp/ip-up.d/00-dns.sh
(下記)に関して、有効なUSEPEERDNS=1
がresolvconf
呼び出されます。バックアップを作成しresolv.conf
、独自のネームサーバーレコードに置き換えます。- VPN切断後、ネームサーバーレコードを削除し、(現時点では)到達不可能なネームサーバーレコードから回復するための
/etc/ppp/ip-down.d/00-dns.sh
呼び出しresolvconf
resolv.conf
resolv.conf.bak
汚い修正プログラムは無効にする/etc/ppp/ip-up.d/00-dns.sh
(または単にその行をコメントアウトする) ことです。依存関係が壊れるため/usr/bin/resolvconf ...
アンインストールしたくありませんし、この基本パッケージも必要です。openresolv
netctl
NetworkManager は Arch Linux の「標準」ネットワーク ツールではないため、これがバグなのか、またはどの設定が欠けているのかわかりません。これを解決する正しい方法は何でしょうか?
/etc/ppp/ip-up.d/00-dns.sh:
#!/bin/sh
if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then
if [ -x /usr/bin/resolvconf ]; then
/usr/bin/resolvconf -a ${IFNAME} </etc/ppp/resolv.conf
else
[ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME}
mv /etc/ppp/resolv.conf /etc/resolv.conf
chmod 644 /etc/resolv.conf
fi
fi