ご挨拶、
VPNクライアントにvpnc
を使用しています。また、route
を使用して、ローカルネットワークなどに引き続きアクセスできるようにするために、いくつかの注意を払っています(ここでの詳細はあまり重要ではありません)。
ルーティングテーブルを取得することがあるので、ジャッキアップしてping: sendto: Network is unreachable
他の方法で解決する必要があるURL。
現在、Mac OS Xを再起動すると、すべてが正常に戻ります。私がしたいことは、ルーティングテーブルを「デフォルト」にリセットすることです(たとえば、ブート時に設定されます)システム全体の再起動なし 。
ステップ1はroute flush
(すべてのルートを削除します)。また、ステップ2では、すべてのデフォルトルートをリロードする必要があります。
これを行う方法について何か考えはありますか? (例:ステップ2とは?)
[〜#〜] edit [〜#〜]また、問題のアドレスでtraceroute
も失敗するという別の症状があることにも気づきました。例えば:
traceroute the.good.dns.name
traceroute: bind: Can't assign requested address
ルートをフラッシュする必要があります。 route -n flushを数回使用します。その後、ルート追加でルートを追加します。
ホームOpenVPNサーバーを使用していて、MacのTunnelblickアプリケーションを使用してサーバーに接続しているときに、この問題が発生していました。
私の側で起こっていたのは、VPNから切断した後、ホームIPを宛先とし、誤ったゲートウェイを使用したルートが残っていたということです。このルートを削除すると、問題は簡単に解決されました
$ Sudo route -n delete the.good.dns.name
例:私は学校に通っており、コンピュータを再起動した後、ワイヤレスネットワークに接続します。 Tunnelblickで自宅のOpenVPNサーバーに接続します。
$ netstat -nr
Destination Gateway
....
[home-ip]/32 [school-default-gateway-1] ....
....
VPNサーバーから切断します。無線ネットワークを変更します。これにより、デフォルトゲートウェイが変更されます。
$ netstat -nr
Destination Gateway
...
[home-ip]/32 [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...
これが起こった後、どのような状況でもホームネットワーク(VPN、ping、その他)に接続できません。ルートを削除した場合:
$ Sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms
正常に動作します。
これを残すOpenVPNサーバー/クライアントの構成方法に問題がある可能性があります(それが何であるかを知りたいのですが)、このルートの削除を自動化するTunnelblick切断後スクリプトをインストールしました。
まず、ネットワークインターフェイスのルートが必要です。 VPNが切断されている場合は、ネットワークインターフェイスを停止してから、ifconfigを使用して起動してください。次に、ルートコマンドを使用して、デフォルトのgwをビルドします。だから次のようなもの:
ifconfig en0 down
ifconfig en0 up
route add <ip address> default
@Seanと同じ問題が発生していました(OS Xも実行しています)。ホームネットワークと仕事用ネットワークを切り替えたときに、デフォルトルートが削除されていませんでした。
完全を期すため、自宅でVPNに接続して次のコマンドを実行すると、デフォルトゲートウェイが次のように表示されます。
$ netstat -nr
Destination Gateway
...
[home-ip]/32 [work-default-gateway-1]
接続を切断しても、[home-ip]ゲートウェイはまだそこにあります。職場のネットワークに接続するとインターネットにまったく接続できず、OPと同じ問題が発生しました
$ traceroute the.good.dns.name
$ traceroute: bind: Can't assign requested address
次に、手動でルートを削除する必要があります
$ Sudo route -n delete [home-ip]
最初は「route -n delete」をpost-disconnect.sh
スクリプトに入れましたが、少し面倒だったので、代わりにこのリンクを見つけました
https://code.google.com/p/tunnelblick/issues/detail?id=177
どうやらその理由は、私の.ovpn
ファイルに以下を設定するためです
user nobody
group nogroup
つまり、ルートはルートとして設定されますが、接続が切断されると、ユーザーはルートではなくなるため、ルートを削除できません。
.ovpn
ファイルでこれらの2行をコメント化すると、post-disconnect.sh
を使用せずに問題が解決しました。