VPNへの接続時に1つのDNSのみを使用するネットワーク


9

私の会社には、接続する必要のあるVPNがあります。OSXではopenvpn、次の構成で使用してこれを行います。

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

Ubuntuでnetwork-manager-openvpn、新しいVPN接続をインストールして追加しました(構成ファイルをインポートしようとすると、クラッシュが発生しました)と同じ構成オプションを設定しました:設定のスクリーンショット

VPNに接続すると、ドメインを解決できなくなります。

編集/etc/NetworkManager/NetworkManager.confして、行dns=dnsmasqをコメントアウトして再起動network-managerすると、会社の内部ドメインを解決できますが、google.comなどの他のドメインはまったく解決されません。VPN接続のネットワークマネージャーの[IPv4]タブと[IPv6]タブで、[メソッド]を[自動(VPN)アドレスのみ]に設定しましたが、違いはないようです。

また、を再度有効にしてdnsmasq/etc/resolvconf/resolv.conf.d/base を含むように変更してnameserver 127.0.1.1実行sudo resolveconf -uしましたが、ドメインは再度解決されません。

VPNに接続して、会社のDNSサーバーによってプッシュされたドメインがそのように解決され、他のすべてのドメインが通常どおり解決されるようにしたいのですが。

編集:dnsmasqが実際にインストールされていないことがわかりました、これはデフォルトであると思いました それでも、それをインストールしてで再度有効にし/etc/NetworkManager/NetworkManager.conf、でローカルネームサーバーアドレスを追加し/etc/resolvconf/resolv.conf.d/base、すべてのサービスを再起動してVPNに接続すると、会社のDNSからドメインを解決できますが、他のドメインは解決できません。つまり、基本的にdnsmasqを完全に無効にしたときと同じ状況です。

編集:内容/etc/dnsmasq.confhttp : //paste.ubuntu.com/7297231/


dnsmasq設定を見せていただけますか?Dnsmasqは通常、上流のDNSサーバーを/etc/resolv.confから取得するため、変更していない場合は、VPN経由でDNSをプルしているだけです。
jkt123 2014

承知しました。自分へのリンクを追加しました/etc/dnsmasq.conf
Tommy Brunn 2014

回答:


4

あなたの設定から、あなたのdnsmasqインストールはから使用するDNSサーバーのリストを取得しています/etc/resolv.conf。デフォルトでは、dnsmasqは稼働中のDNSサーバーの使用を優先しますが、特定の要求を単一のDNSサーバーにのみ送信します。特定のクエリのみを処理できる、または処理するDNSサーバーが複数ある場合、これにより問題が発生する可能性があります。

この問題は、LANにDNSサーバー(VPNに接続していないときに使用するサーバー)をで設定し/etc/resolv.conf、企業ネットワークにDNSサーバーを設定することで解決できると思います。VPN経由で使用します。

次に、含める行を/etc/default/dnsmasq編集して追加または編集する必要がありDNSMASQ_OPTS=ます--all-servers

それでもこの設定でDNSクエリを取得できない場合は別の場所に上記の手順の間に作成したresolv.confファイルをコピーし、など~/resolv.conf、設定/etc/resolv.confにアップnameserver 127.0.0.1して、以下のオプションを設定します/etc/dnsmasq.conf

resolv-file=/home/your_username/resolv.conf

これにより、DNSのdnsmasqインストールをクエリするようにシステムが構成され、すべてのクエリでローカルDNSサーバーとVPN DNSサーバーの両方が使用されます。

編集nmcliツールを使用して、特定の接続に現在使用しているDNSサーバーを見つけることができます。ワイヤレス接続で使用されているDNSサーバーを見つけるために、次の構文を使用しました。

nmcli dev list iface wlan0 | grep IP4.DNS

VPNに接続していないときにこのコマンドを実行し、次に接続して企業アドレスを解決できる場合は、DNSサーバーのリストをVPNのオンとオフで取得する必要があります。これがお役に立てば幸いです。

編集2:ルーティングテーブルを見ると、VPN管理者が、接続中にすべてのトラフィックをVPN経由でルーティングするように設定しているようです(デフォルトゲートウェイがVPNアドレスに変更されます)。どちらのDNSサーバーもパブリックアドレスであり、VPNを使用しているときにどちらにも特定のルートが設定されていないため、VPNを介して通常のDNSルックアップを実行しようとしていて、失敗しています。

VPNの設定によっては、これを機能させる方法がいくつかあります。

  • :VPNを使用すると、企業ネットワーク経由でインターネットにアクセスしますが、インターネット上のサーバにDNSクエリを実行していないので、同様にDNSサーバーにルートを追加することができます場合sudo route add -host 83.255.245.11 gw 192.168.0.1、およびsudo route add -host 193.150.193.150 gw 192.168.0.1VPNに接続した後。

  • VPNで企業ネットワークを介してインターネットにアクセスできない場合は、VPNに接続した後、コンピューターのデフォルトゲートウェイ設定を192.168.0.1を指すように変更する必要があります。この場合、通常のデフォルトゲートウェイを設定してから、VPN専用機器にアクセスするためのネットワークルートを追加します。

2番目のペーストビンに表示されているVPNに接続されたケースのルーティングテーブルを次のように削る必要がある場合があります。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

次に、企業の機器にアクセスするために必要なルートを追加します。上記のルーティングテーブルでは、VPN上の/ 24ネットワークを想定していますが、これは正しくない可能性があります。マスクを適切に設定する必要があります。


ローカルDNSサーバーと企業ネットワーク上のアドレスのアドレスを調べるにはどうすればよいですか?
Tommy Brunn 2014

この情報を提供するために回答を編集しました。
jkt123 2014

nmcliによると、VPNに接続しているときとそうでないときとでまったく同じDNSサーバーを取得しています。 mが接続されています。
Tommy Brunn 2014

nmcliVPN接続なしで実行した場合、DNSを適切に解決できましたか?そうでない場合は、VPNから切断し、DNSが正しく機能していることを確認してから、を実行してくださいnmcli
jkt123 2014

はい、VPNから切断されたときにDNSを正常に解決できました。出力例:paste.ubuntu.com/7345250
Tommy Brunn

0

NetworkManagerが調整する方法に関連して、私が埋めることができないいくつかのギャップがあります。ただし、調整するものがどのように機能する必要があるかを明らかにするように努めます。完璧な答えではありませんが、うまくいけば役に立ちます。実際、これは古い質問なので、これは本当に後世のためです。

おそらく、企業ネットワークへの接続を除いて、企業VPNを使用したくないでしょう。そのため、以前のように、VPN設定で適切なネットワーク範囲のみをVPNにルーティングし、デフォルトルートをローカルルーターに向けたままにした方がよいでしょう。企業がVPNを設定してトラフィックやネットワークをルーティングするだけでいいのですが、残念ながらそれはまれなようです。幸い、ローカル設定でルートを設定できます。

それでも、潜在的なDNS問題が残ります。jtk123の、dnsmasqがDNSで何をするかについてのコメントは、dnsmasq固有のものではありません-DNSの動作方法です。DNSクライアントまたは中間リゾルバーがDNSエントリーが存在しないという応答を受け取った場合、別のDNSサーバーに要求するようにフォールバックすることは通常の動作ではありません。つまり、要求が企業ネットワークに関連しているかどうかに関係なく、必要に応じて応答するDNSリゾルバーが必要です。

多分あなたの会社のネットワークはより広いインターネットに関連するDNSクエリに答えます、その場合あなたはそれを使うだけで、それはおそらく大丈夫です。それ以外の場合は、会社に関連付けられたドメインの要求をDNSサーバーに転送し、必要に応じて他の要求を他の場所に転送するローカルDNSサーバーが必要です。

dnsmasqは、特定のドメインに対する要求を特定の上流のDNSサーバーに転送するように指示できます。たとえば、dnsmasq.confのmanページで概説されている--serverオプションを参照してください。networkmanagerをうまく動作させる方法はわかりませんが(これについては、現在調べているところです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.