Tunnel über UDP oder TCP


7

Gibt es eine Möglichkeit, etwas Ähnliches wie einen IPIP- oder GRE-Tunnel nur über UDP oder TCP zu erstellen?

Ich habe einen GRE-Tunnel zwischen zwei Servern und habe festgestellt, dass manchmal Pakete verworfen werden. Gleichzeitig habe ich keine Probleme, wenn ich über das Internet zwischen Servern pinge.

Ich glaube, dies ist ein Traffic-Shaping-Problem meines Providers (das GRE-Protokoll wird nicht berücksichtigt). Ich habe auch einen IPIP-Tunnel mit dem gleichen Ergebnis versucht.


Titel ist gebrochen: 'UDP'
Duncan Smart

Antworten:


13

Geben Sie openvpn eine Chance. Sie können Tunnel über UDP oder TCP erstellen.


9

Ich bin nicht sicher, was Ihr spezielles Problem verursacht, aber Sie sollten beachten, dass es für Tunnel im Allgemeinen besser ist, einen unzuverlässigen Transportstrom (dh UDP) als einen zuverlässigen zu verwenden.

Der Grund dafür ist, dass im Falle eines Paketverlusts die getunnelte TCP-Schicht diejenige sein sollte, die die erneute Übertragung verwaltet, und nicht die eigentliche Transportschicht.

Wenn in beide Ebenen eine erneute Übertragung integriert ist, kann es zu einem erneuten Übertragungskrieg kommen, der letztendlich den Durchsatz beeinträchtigt.

Vergessen Sie auch nicht, dass jedes Tunnelprotokoll die effektive MTU (und folglich die TCP-MSS) verringert. Wenn MTU und MSS nicht richtig angepasst werden, treten übermäßige Fragmentierung und / oder verworfene Pakete auf.


3

Wissen Sie, ob Sie GRE-Pakete oder mit dem GRE-Tunnel getunnelte Pakete verwerfen? Bei jeder Art von Tunnel ist es nicht ungewöhnlich, dass bei nahezu jeder Art von Tunnelung MTU-Probleme auftreten. MTU-Probleme können schwer zu diagnostizieren sein, da kleinere Pakete (wie Standard-Pings) problemlos durch den Tunnel geleitet werden. Sie werden nur Probleme mit größeren Paketen sehen und im Allgemeinen nur, wenn die Anwendung oder das System das DF-Bit (Don't Fragment) setzt. Was leider ziemlich häufig ist.

Sie können End-to-End auf die kleinste MTU im Netzwerkpfad testen, indem Sie Pings mit einer großen Paketgröße und dem gesetzten DF-Bit verwenden.

Unter Windows können Sie das DF-Bit mit der Option -f und die Paketgröße mit der Option -l wie folgt festlegen:

ping -f -l 1450

Unter Linux setzen Sie das DF-Bit mit der Option "-M do" und die Paketgröße mit der Option -s wie folgt:

ping -M do -s 1450

Sie haben nicht angegeben, was Sie für die GRE-Endpunkte verwenden. Wenn es sich um Cisco-Router handelt, ist dieser Link ziemlich gut. Wenn nicht, durchsuchen Sie Google nach GRE MTU-Problemen und Sie werden eine Menge Informationen finden.


1

PPP über SSH vielleicht?


1
PPP über SSH ist zwar ein cooler Hack, leidet jedoch unter dem TCP-in-TCP-Flussproblem. Es gibt viel schönere richtige Lösungen (OpenVPN).
MikeyB

1

Diese kleine Anleitung zum Tunnelbau kann Ihnen bei der Auswahl der richtigen helfen.

  • Wie Alnitak sagte, ist alles, was durch TCP unterstützt wird, ziemlich schlecht für die Latenz (IP benötigt nicht die Zuverlässigkeit, die TCP bietet, und es hat seinen Preis.). In der Regel sind PPP über SSH oder PPP über HTTP meistens nützlich, um eventuell Firewalls passieren zu können.
  • Pings werden normalerweise über das ICMP-Protokoll ausgeführt und daher normalerweise zuletzt von überlasteten Routern gelöscht, die frühe Löschvorgänge implementieren. Es wäre interessant zu sehen, ob bei UDP- oder TCP-Pings auch Einbrüche auftreten. Das Verwerfen von Paketen ist im Internet weit verbreitet.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.