Wo ist die Dokumentation, die besagt, dass der TCP- und UDP-Quellport über 1024 und zufällig sein sollte?

11

Es fällt mir schwer zu finden, wo dokumentiert ist, dass der Quellport zufällig sein sollte und im Bereich von 1024-65535 liegt.

In welchem ​​RFC ist dies dokumentiert?

Bearbeiten: Die
erste Referenz für privilegierte Ports befindet sich in RFC2623.
Dies hängt anscheinend mehr von der TCP / IP-Implementierung ab und ist ein De-facto-Standard.

IANA vergibt die Portnummern (RFC1700)

Mircea Vutcovici
quelle
1
FYR - RFC 1700 (STD 2) befasst sich nur mit der Zuweisung von Listener- Ports (wo Dienste auf Verbindungen warten). Es geht nicht um die Auswahl des Quellports des Verbindungsservers.
voretaq7
Ja, aber die Konsequenz, dass Sie die registrierten Ports "verwenden" sollten, ist, dass Sie sie nicht für andere Zwecke verwenden sollten. Deshalb habe ich es erwähnt.
Mircea Vutcovici
2
iana.org/assignments/service-names-port-numbers/… spricht über die dynamischen und / oder privaten Ports (49152-65535). Es scheint also, dass der Client einen Port aus diesem Bereich verwenden sollte.
Mircea Vutcovici

Antworten:

13

Sie suchen wahrscheinlich nach RFC 6056 - Empfehlungen für die Portierung von Transportprotokoll-Ports ("Best Current Practice").

Technisch gesehen ist es nicht erforderlich, dass der kurzlebige Port> 1024 oder zufällig ist (Sie könnten ein System erstellen, das immer Verbindungen von Port 12 initiiert, weil Sie die Nummer 12 mögen). Dies ist einfach nicht "normal" (und eine schreckliche Idee für eine Reihe von Gründen, von denen einige in diesem RFC beschrieben sind).

voretaq7
quelle
Es sieht so aus, als ob kurzlebige Ports> = 49152 sein sollten. Aber Ihre Antwort kommt meiner Frage am nächsten.
Mircea Vutcovici
3

Das RFC 6335 erklärt dies:

Ports im Bereich Dynamic Ports (49152-65535) wurden speziell für die lokale und dynamische Verwendung reserviert und können nicht über IANA zugewiesen werden. Anwendungssoftware kann einfach jeden dynamischen Port verwenden, der auf dem lokalen Host verfügbar ist, ohne irgendeine Zuordnung. Andererseits darf die Anwendungssoftware NICHT davon ausgehen, dass eine bestimmte Portnummer im Bereich "Dynamische Ports" immer für die Kommunikation verfügbar ist, und eine Portnummer in diesem Bereich darf daher NICHT als Dienstkennung verwendet werden.

Die reservierten Ports:

Ports im Bereich Benutzerports (1024-49151) können über IANA zugewiesen werden und können nach erfolgreicher Zuweisung als Dienstkennungen verwendet werden.

Ports im Bereich System Ports (0-1023) können auch über IANA zugewiesen werden. Da der Bereich der Systemports sowohl der kleinste als auch der am dichtesten zugewiesene Bereich ist, sind die Anforderungen für neue Zuweisungen strenger als für den Bereich der Benutzerports und werden nur im Rahmen der Verfahren "IETF-Überprüfung" oder "IESG-Genehmigung" RFC5226 gewährt .

Die Einleitung erklärt die Verwirrung:

Die Zuweisung neuer Dienstnamen und Portnummernwerte zur Verwendung mit dem Transmission Control Protocol (TCP) [RFC0793] und dem User Datagram Protocol (UDP) [RFC0768] hat seit vielen Jahren weniger
klare Richtlinien.

Es scheint, dass Windows XP RFC6335 nicht folgt, Solaris 10 jedoch.

Mircea Vutcovici
quelle
1

Was voretaq7 sagte zusammen mit diesem , aber es ist pedantisch ist eine technische Anforderung. In der Vergangenheit werden Daemons / Server in * nix auf Ports <1024 ausgeführt (sie werden als Systemports bezeichnet). Um Konflikte zu vermeiden, sind Quellports (Benutzerports)> 1024 (oder genauer gesagt 1024 - 49151). Dies ist jedoch nicht immer der Fall Fall, wie Sie sagen, und es hängt von der Implementierung ab. Alles in allem enthält der obige Link eine Liste der RFCs, aber der wahrscheinlich spezifischste ist RFC5226, der den "Expert Review" -Prozess von IANA beschreibt.

Benutzer
quelle
Einige NFS-Server-Implementierungen erfordern, dass der NFS-Client einen Port <1024 verwendet. Technisch war es also immer möglich, alle Ports als Quellport zu verwenden. Ich bitte um ein Dokument, das für Ports über 1024 verwendet werden soll. Es scheint, dass der Client tatsächlich Ports über 49152 verwenden sollte.
Mircea Vutcovici
1
Das widerlegt meine Antwort nicht. Siehe hier unix.stackexchange.com/questions/16564/… Warum decken Sie die IANA-Zuweisung und RFC 6056 nicht ab? Nachdem Sie immer Empfehlungen geben können, hindert Sie niemand daran, einen Webbrowser zu implementieren, der Port 80 als Quellport verwendet
Benutzer
1
Ebenso pedantisch ist es nicht erforderlich, dass die privilegierten oder "bekannten" Ports nicht als Quellport verwendet werden (siehe Mirceas Gegenbeispiel mit privilegierten NFS-Ports). Dies wird aus den von Ihnen genannten Gründen normalerweise nicht durchgeführt, aber auch nicht verboten. AFAIK Laut TCP- und UDP-RFCs ist jeder nicht verwendete Port ein faires Spiel als Quellport. Die Regeln, die wir darüber hinaus aufstellen, dienen unserer Bequemlichkeit :-)
voretaq7