前に述べたように質問2つのVPNサーバーに同時に接続し、各接続にアクセスするコンピュータのIPを指定したいと思います。 VPN接続の1つはファイルを介して行われ、vpnc
もう1つはCiscoクライアントを介して行われます(少なくとも接続に必要なIPSecret要素がないため、default.conf
今は接続できません)。vpnc
vpnc
次のように作成されたインターフェイスを使用するようにターゲットIPを設定して接続できます。
#!/bin/sh
#Get default gateway
DEFGW=`ip route list | grep default | awk -F' ' '{print $3 }'`
DEVICE=`ip route list | grep default | awk -F' ' '{print $5 }'`
echo "Default Gatway is: $DEFGW on device $DEVICE"
echo "Starting vpnc"
sudo vpnc
echo "Adding routes to known computers through VPN network interface"
sudo route add -net 132.181.11.0 netmask 255.255.255.0 dev tun0
echo "Adding all other routes through standard network interface"
sudo route del default
sudo route add default gw $DEFGW dev $DEVICE
2つの接続を同時に実行する前に、Ciscoクライアントでも同じことを試みましたが、これらの問題が発生しましたresolv.conf
。 VPNクライアントはこのファイルをドメイン値とDNSサーバー値に変更します。次のスクリプトを実行すると、DNS解決エラーが発生します(Chromeで報告されています)。
#!/bin/sh
#Get default gateway
DEFGW=`ip route list | grep default | awk -F' ' '{print $3 }'`
DEVICE=`ip route list | grep default | awk -F' ' '{print $5 }'`
echo "Default Gatway is: $DEFGW on device $DEVICE"
echo "Starting cisco"
sudo /opt/cisco/vpn/bin/vpn connect 134.214.244.203
echo "Adding routes to computers through VPN network interface"
sudo route add -net 132.212.146.156 netmask 255.255.255.255 dev cscotun0
echo "Adding all other routes through standard network interface"
sudo route del default
sudo route add default gw $DEFGW dev $DEVICE
これに関する支援、コメント、トラブルシューティングを歓迎します。
ありがとう
答え1
/etc/resolv.conf
コンピュータがホスト名を解決する方法(たとえば、FQDNではなくホスト名を解決しようとしたときに検索する既定のドメイン名(存在する場合)...既定のルックアップになりwww
ますwww.yourdomain.example.com
)と、ルックアップに使用されるネームサーバーを定義します。 。
VPNクライアントが/etc/resolv.confを変更する可能性が最も高い理由の1つは、VPNクライアントコンピュータにホスト名解決に特定のネームサーバーを使用させることです(たとえば、VPNルーターがキャッシュネームサーバーを実行するする場合)。
/etc/resolv.confを必要に応じて再変更することを防ぐことはできません。また、VPNクライアントソフトウェアはこれを行ういくつかの自動化された方法も提供できます(そうでない場合は、resolv.confのバックアップコピーを再コピーするだけです)。一部の名前を解決するのは難しい場合があります(たとえば、一部のドメインにはパブリックビューとプライベートビューがあります。見ることができます)。
この問題を解決する1つの方法は、元のresolv.confのバックアップコピーではなく、優先ネームサーバーと検索ドメインだけでなく、VPNクライアントソフトウェアに必要なものを含む修正コピーを作成することです。
答え2
/etc/resolv.conf
上場ネームサーバーコンピュータが検索に使用するものドメイン名システム名前。コンピュータにパケットを送信するには、パケットが何であるかを知る必要があります。IPアドレスただし、IPアドレスは、特定のインターネットサービスプロバイダや場所に(やや)関連付けられ、変更される可能性があるため、通常はコンピュータを指定するために使用されません。代わりに DNS 名を使用してください。
通常、インターネットアクセスを提供している人(ISPなど)には、利用可能なネームサーバーがあります。もちろん、ネームサーバー自体はIPアドレスを介してアクセス可能でなければなりません。一般的に接続すると動的ホスト構成プロトコルまたは購買力の評価を使用すると、コンピュータはDNSサーバーアドレスを受信し、ソフトウェアが/etc/resolv.conf
自動的に更新され、プロバイダのDNSサーバーアドレスを追加し、切断したときにそれらを削除します。
簡単な場合は、にリストされている単一のDNSサーバーのみが必要です/etc/resolv.conf
。そのサーバーにクエリへの応答がない場合は、必要に応じて他のサーバーに要求します。通常、プロバイダを介してまたは大規模な組織内で接続すると、プライマリサーバーとバックアップサーバー(プライマリサーバーがオフラインになる場合)の2つのアドレスが表示されます。
Debianベースのディストリビューションの場合は、resolvconf
このパッケージがインストールされていることを確認してください(現在Ubuntuにデフォルトでインストールされています)。/etc/resolv.conf
通常、ジョブは自動的に完了し、そうでない場合は簡単に調整できます。
2つのVPNを介して単一のネームサーバーを使用できる場合は、/etc/resolv.conf
DNSオーバーライドが無視されないようにVPNクライアントを設定することをお勧めします。/etc/resolv.conf
(良いVPNクライアントにはこの機能が必要です。)設定ファイルまたは同伴スクリプトのオプション)。
たとえば、各VPNを介して異なる内部ネットワークにアクセスできるため、複数のネームサーバーが必要な場合は、要求を転送するネームサーバーに接続する必要があります。私はお勧めしますDNSは軽量で構成が簡単で、ほとんどのスタンドアロンおよび小規模ネットワーク設定の要件を満たすのに十分強力です。独自のネームサーバーを実行している場合は、/etc/resolv.conf
含める必要がnameserver 127.0.0.1
あり、含まれてはいけないため、nameserver
VPNクライアントがこのディレクティブを無視しないようにする必要があります。