Ich betreibe einen Dienst, der mehr als 65535 Ports benötigt, und verwende einen AWS VPS
Ich habe mich gefragt, was passiert, wenn ich mehr statische IPs an diesen VPS anschließe. Bekommt jede dieser IPs 65535 Ports, während sie mit dem Hauptserver verbunden ist, oder sind sie alle nur Aliase füreinander?
Antwort1
TCP-Tupel werden durch Ziel-IP und Port identifiziertUndQuell-IP und -Port.
Theoretisch also, 2001:db8:2943:a::1
und 2001:db8:2943:a::2
kannjede2001:db8:2943:b::3
64K-mal mit einem Zielport verbinden 443
. In Wirklichkeit sind weniger temporäre Ports verfügbar und es ist ein großer und gut abgestimmter Host erforderlich, um 64K-Verbindungen von nicht trivialen Dingen herzustellen.
Angenommen, es wurde eine weitere Server-IP hinzugefügt 2001:db8:2943:b::4
.JedeQuell-IP kann eine Verbindung herstellenein anderer64.000-mal an diese andere Ziel-IP, alles über den Zielport 443
.
Es ist sehr unwahrscheinlich, dass Sie in der Praxis alle Ports ausschöpfen. Sie könnten eine Million verschiedene Quell-IP-Adressen haben und das 64K-Limit gilt nicht.
Vielleicht ein Load Balancer mit einer IP, der 64K-Verbindungen zu einer IP und einem Port herstellt. Das ist schon ziemlich groß, aber bei Bedarf können Sie dem Backend-Host eine weitere IP hinzufügen und diese ebenfalls verwenden.
Oder 64.000 unabhängige Instanzen eines Objekts, die jeweils auf einem eindeutigen Zielport lauschen. Das ist eine enorme Anzahl von Prozessen, die ausgeführt werden müssen. Man könnte weniger Abhörports ausführen und die Komplexität in die Anwendungsschicht verlagern. Beispiel: Virtuelles Hosting basierend auf HTTP-Namen.