VPN接続から新しいネームサーバーを自動的に取得する方法

VPN接続から新しいネームサーバーを自動的に取得する方法

Ubuntu Genial 16.04を実行しています。

openvpnを使用して仮想プライベートクラウドに接続します。クラウドには独自のDNSサーバーがあります(ローカルパス(自宅またはオフィス)も同様)。

VPNに接続すると、ネットワーク上のすべてのIPを使用できますが、ホスト名ではどのIPにもアクセスできません。理由は簡単です。 resolv.confファイルにはまだ私のローカルオフィスのネームサーバーが表示されるためです。正しいネームサーバーを取得するために手動でresolv.confをオーバーライドすると、すべてが正常です。

それでは、VPNに接続したときにresolv.confを自動的に再設定するにはどうすればよいですか?

システムイベントに接続してスクリプトを実行できますか?

ベストアンサー1

OpenVPN パッケージは、次のよう/etc/openvpn/update-resolv-confに構成する必要があります。

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

dhcp-option DNSその後、OpenVPNピア/サーバーが渡したオプションからDNSサーバーアドレスを取得し、それresolvconfに応じて設定します。またうまく処理しますdhcp-option DOMAIN

しかし、完璧ではありません。これは、既存のネームサーバーのリストを上書きせずに、ネームサーバーを既存のネームサーバーのリストに追加するためです。を使用している場合は、事前にDNS設定を追加するのではなく、DNS設定を上書きするために使用openresolvできます。-x


を使用している場合は、which Hooks intoを代わりにsystemd-resolved使用できます。/etc/openvpn/update-systemd-resolvedsystemd-revolvedresolvconf

script-security 2 
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Debian ではスクリプトがopenvpn-systemd-resolved

おすすめ記事