Ubuntu 12.10でNetwork Managerを使用してopenvpnサーバーに接続しています。接続は問題なく動作します。ただし、接続するときに、デフォルトのDNSサーバーをvpnネットワーク上のサーバーに変更したいと思います。そうすれば、VPNネットワークでのみ定義されているドメイン名を使用できます。 Network Managerでこれを自動化する方法はありますか?
Openvpnサーバーの設定を変更することもできます。
ありがとう!
Rajeshによると、サーバーにオプションを追加するのが最善の方法でした。
詳細についてはこの質問を参照してください
これはコメントで述べたようにサーバーで通常行われることですが、VPNの内部のクエリにVPNのDNSのみを使用したい場合があります。その場合、おそらくシステム上で軽量のDNSデーモンを実行し、どのクエリをどこに送信するかを指示する必要があります。一度に複数のVPNを使用している場合、これは基本的に必須です。
Push dhcp-option DNS XXX.XXX.XXX.XXX
Push dhcp-option DOMAIN mylocaldomain.local
(詳細をご覧ください こちら )。 XXX.XXX.XXX.XXXはDNSサーバー、mylocaldomain.localはローカルドメインです。ローカルマシンでOpenVPNクライアントの出力(dhcp-option DNS ...、dhcp-option DOMAIN ...)を起動すると、簡単に見つかります。
$ Sudo openvpn --config client.ovpn --up /etc/openvpn/update-resolv-conf --down /etc/openvpn/update-resolv-conf --script-security 2
@peterphが指摘しているように、軽量DNSは最適なオプションのようです。これは、/etc/resolv.conf
が実際に処理できるDNSは1つだけであるためです。
したがって、Linuxでは dnsmasq が最良のオプションだと思います。私はこれをCentOS 6で使用しましたが、構成は何でも似ているはずです。
yum install dnsmasq
(またはapt-get install)などでインストールします。service dnsmasq start
を開始します。他のDNSサーバーがある場合は、停止して無効にする必要がある場合があります(DNSポートで実行されているものを確認してください:netstat -aonp | grep ":53"
)。/etc/dnsmasq.conf
server=/some URL base/dns server IP
ですserver=/example.com/192.168.0.1
-192.168.0.1
のDNSサーバーに*.example.com
を要求します。service dnsmasq restart
を再読み込みします。/etc/sysconfig/network-scripts/ifcfg-*
を編集します(DNS1:DNS1=127.0.0.1
を変更します)。/etc/init.d/network restart
。Dig
またはnslookup
を使用してドメインをテストします。chkconfig dnsmasq on
(chkconfig
はCentOS/RedHat固有であり、他のほとんどの場合はupdate-rc.d
を使用することに注意してください)。