VPNでは、pingは最初のパケットに対してのみ機能し、マシン間でSSHを実行することはできません。


0

リモート表示用にいくつかのカメラをセットアップしています。各カメラはRaspberry Pi(最新バージョンのraspianを実行している)に接続されています。私は今のところ私の家( "サイトA")に一つのカメラと私の両親の家( "サイトB")に一つのカメラを持っています。私はハブとして使用する静的IPとVPNアプライアンスを持つ3番目のサイト(「サイトC」)もあります。具体的な接続は次のとおりです。

  • サイトA< => IPsecトンネル経由のサイトCサイトAは、Windows 10マシンでホストされているlubuntu仮想マシンでStrongSwan VPNサーバーを実行しています。サイトBにはVPNルーターがあります。がある ここで実行されているトンネル:サイトAのサブネットをサイトCのローカルサブネットに接続します。 2つ目は、サイトAのサブネットを、サイトCがコールインロードウォリアー用に定義したサブネットに接続します。
  • サイトB< => 「ロードウォリアー」構成のIPsec / L2TP経由のサイトC。これは、カメラ付きのラズベリーパイがサイトBからのVPN上にあることを意味します。
  • サイトAとサイトBの間に「直接」の接続はありません。

各サイトには独自のサブネットがあります。サイトAは192​​.168.1.0 / 24、サイトB(VPNから見た場合の単一マシン)は192.168.2.1 / 32、サイトCは192.168.3.0 / 24です。ルーティングテーブルは、VPNを通過するために必要なマシンに必要に応じて設定されます。

両方のラズベリーPisはワイヤレスで接続されています。サイトBのものは高い信号品質(68/70)を示し、サイトAのものは中から低品質(40/70)を示します。

サイトAサブネット上のWindows 10マシン(有線接続)から、セットアップを使用して両方のPisにSSH接続できます。これは両方のマシンにとって非常にうまくいきます。同じWindows 10マシンから、Internet Explorerを使用して、どちらのマシンでホストされているWebページにもアクセスできます。 (Bでは、私は自分のWebページを設定しています。AではこれまでのところApacheテストページを持っています。)これは画像があるところで少しゆっくりとロードします。

今、私はサイトAのPiにサイトBのWebサイトのミラーを設定しようとしています。私はBからAに直接設定ファイルをscpしようとすることから始めました、そしてそれはハングしていました。それから私は何が悪いのかを確かめるためにいくつかの実験を試みました:

  1. AからBへのPiからのping。 pingを停止してすぐに再開すると、2回目の試行ですべてのパケットが失敗します。試行間に少し待つと、最初のパケットが失敗し、その後のパケットが失われるという元の動作に戻ります。
  2. AのBをPiにpingします。#1と同じです。
  3. AからBまでPiからtracerouteを実行します。これにより、適切な数のホップが通過し、識別された(つまり、*。*。*。*として表示されない)ホップは正しく見えます。
  4. AでBからPiまでtracerouteを実行します。#3と同じです。
  5. BでホストされているWebページを取得するには、AのPiでwgetを実行します。これは長時間ハングすることがありますが失敗することがあります。
  6. AでPiでホストされているWebページを取得するには、Bでwgetを実行します。#5と同じです。 (現時点ではAのPiはApacheのスタートページを表示しているだけです。)
  7. 重複したIPアドレスを探しましたが、どのサブネットにも表示されません。
  8. 主要なニュースWebサイトからホームページを取得するには、各Piでwgetを実行します。両方のPisがこのタスクをほぼ瞬時に完了できます。
  9. サイトAのWindows 10マシンから両方のPisにpingします。これは両方のPIに作用し、すなわちパケットは失われない。

サイトAでPiへの無線接続がうまくいっていないのを見たとき、それがすべてを説明するかもしれないと思いましたが、今はまったく納得できません。接続不良は上記の5〜6を説明し、3〜4と一致する可能性がありますが、1〜2または9を説明するとは思いません。有線のWindowsマシンですべてがうまく機能する理由も説明されていませんサブネットAでも、#8がそれほど早く完了することを説明していません。

私はSEや1-2のような振る舞いを説明する他のサイトでいくつかのスレッドを見つけましたが、私が言うことができる最もよいように、そこで識別された原因は私の状況には当てはまりません。 特に、私はマシン間の経路を確実に持っているように見えますし、IPアドレスの競合があるようにも見えません。

この問題に対するいくつかの回避策が考えられますが、ここではその動作をそのまま理解したいと思います。誰がここで何が間違っているかもしれないかについての考えを持っていますか? 1台のコンピュータへのワイヤレス接続が不十分なだけですか?もしそうなら、それはどのようにうまくいくのか?ワイヤレス接続の強さではない場合、他に何がこれを引き起こす可能性がありますか?

更新

サイトAのPiを有線接続に移動しました。これは悪いWiFi接続からの問題を排除するはずです。それは振る舞いを変えないようです。

AからBへのpingもしばらくの間実行し続けました。 300番目のパケットごとに動作し、それ以外のすべてのパケットはドロップされるという奇妙な動作が発生します。たとえば、パケット1、301、601などです。1201まで上げます。この動作は明らかに再現可能です。

回答:


0

私はついにサイトAでVPNサーバーをホストしている(仮想)Linuxマシンの設定を変更することによってこれを解決しました。私はシステムパラメータの1つを変更しなければなりませんでした:

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

これでうまくいくので問題は解決しましたが(今のところ!)、すべてがWindowsクライアントを使用して動作し、Linuxクライアントを使用できない理由はわかりません。誰かがそのより広い答えに一緒に来たら、私はそれを見たいです!

完全を期すためには、これらも必要です。

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

私の場合、それらの値はすでにそのように設定されています。編集してこれらを永続的にすることもできます /etc/sysctl.conf 上記と同じ値を反映する net.ipv4.ip_forwardnet.ipv4.conf.all.accept_redirects、そして net.ipv4.conf.all.send_redirects

注:上記の変更は、rootアクセス権で行う必要があります。

コマンドライン版を使った echo 最初にしてから、すべてをリロードしました。 sudo sysctl --system、 に続く sudo IPsec restart、私の特定の接続を開始するためのコマンドが続きます。しかし、これらすべての「再起動」が必要かどうかはわかりません。

私はこの情報のほとんどをに見つけました このサイト これには、別の問題について他の人に役立つかもしれない追加情報も含まれています。

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