web-dev-qa-db-ja.com

UDP経由のトンネルまたはTCP

DPまたはTCPを介してのみIPIPまたはGREトンネルに似たものを作成する方法はありますか?

2つのサーバー間にGREトンネルがあり、パケットをドロップし始めることがあることに気づきました。同時に、インターネットを介してサーバー間でpingを実行しても、問題はありません。

これは私のプロバイダーからのトラフィックシェーピングの問題だと思います(GREプロトコルは考慮されていません)。 IPIPトンネルも試しましたが、同じ結果になりました。

7
nicudotro

Openvpnを試してみてください。 UDPまたはTCPを介してトンネルを作成できます。

13
Nathan

特定の問題の原因はわかりませんが、一般に、トンネルでは信頼できるものよりも信頼できないトランスポートストリーム(つまりUDP)を使用する方がよいことに注意してください。

これは、パケット損失が発生した場合、tunnelled TCPレイヤーが再送信を管理するレイヤーであり、実際のトランスポートレイヤーではないためです。

両方のレイヤーに再送信が組み込まれている場合、再送信戦争が発生し始め、最終的にスループットが低下する可能性があります。

また、トンネリングプロトコルを使用すると、有効なMTU(したがって、TCP MSS)が減少することを忘れないでください。MTUとMSSが適切に調整されていない場合、過度の断片化や/またはドロップされたパケット。

9
Alnitak

GREパケットをドロップするのか、GREトンネルでトンネリングされるパケットをドロップするのか知っていますか?あらゆる種類のトンネリングで、ほぼすべての種類のトンネリングでMTUの問題が発生することは珍しくありません。小さいパケット(デフォルトのpingなど)はトンネルを問題なく通過するため、MTUの問題を診断するのは難しい場合があります。より大きなパケットでのみ問題が発生し、通常はアプリケーションまたはシステムがDF(フラグメント化しない)ビットを設定している場合にのみ発生します。残念ながらこれはかなり一般的です。

大きなパケットサイズとDFビットセット)のpingを使用して、ネットワークパス全体で最小のMTUをエンドツーエンドでテストできます。

Windowsでは、DFビットを-fオプションで設定し、パケットサイズを-lオプションで次のように設定できます。

ping -f -l 1450

Linuxでは、次のように、「-Mdo」オプションを使用してDFビットを設定し、-sオプションを使用してパケットサイズを設定します。

ping -M do -s 1450

GREエンドポイントに何を使用しているのかは言わなかった。Ciscoルーターの場合、 このリンク はかなり良い。そうでない場合は、グーグルでGRE MTUの問題を検索すると、大量の情報が見つかります。

3
Bob McCormick

PPP over SSH おそらく?

1
vartec

この小さな トンネリングのガイド は正しいものを選択するのに役立つかもしれません。

  • Alnitakが言ったように、TCPでバックアップされたものはすべてレイテンシーにかなり悪いです(IPはTCPが提供する信頼性を必要とせず、コストがかかります)。通常、SSH経由のPPPまたはHTTP経由のPPPは、最終的にファイアウォールを通過できるようにするために最も役立ちます。
  • Pingsは通常、ICMPプロトコルを介して実行されるため、通常、早期ドロップを実装する過負荷のルーターによって最後にドロップされます。 UDPまたはTCP "pings"でもドロップが発生するかどうかを確認するのは興味深いことです。パケットのドロップはインターネット上で非常に一般的です。
1
Steve Schnepp