Di mana dokumentasi yang menyatakan port sumber TCP dan UDP harus lebih dari 1024 dan acak?

11

Saya mengalami kesulitan untuk menemukan di mana didokumentasikan bahwa port sumber harus acak dan dalam kisaran 1024-65535.

Di mana RFC ini didokumentasikan?

Sunting:
Referensi pertama untuk port istimewa ada di RFC2623
Tampaknya ini lebih tergantung pada implementasi TCP / IP dan ini merupakan standar de-facto.

IANA sedang menetapkan nomor port (RFC1700)

Mircea Vutcovici
sumber
1
FYR - RFC 1700 (STD 2) hanya berurusan dengan penugasan port pendengar (di mana layanan mendengarkan koneksi). Itu tidak berurusan dengan pemilihan port sumber server penghubung.
voretaq7
Ya, tetapi akibat wajar bahwa Anda "HARUS" menggunakan port terdaftar adalah bahwa Anda tidak boleh menggunakannya untuk hal-hal lain. Itu sebabnya saya menyebutkannya.
Mircea Vutcovici
2
iana.org/assignments/service-names-port-numbers/… berbicara tentang Dynamic dan / atau Private Ports (49152-65535). Jadi sepertinya klien harus menggunakan port dari rentang itu.
Mircea Vutcovici

Jawaban:

13

Anda mungkin mencari RFC 6056 - Rekomendasi untuk Pengacakan Port Protokol-Transportasi ("Praktik Terbaik Saat Ini").

Secara teknis tidak ada persyaratan bahwa port ephemeral menjadi> 1024 atau acak (Anda dapat membangun sistem yang selalu memulai koneksi dari port 12 karena Anda suka nomor 12), hanya saja tidak "normal" untuk melakukannya (dan ide buruk untuk banyak alasan, beberapa di antaranya dijelaskan dalam RFC itu).

voretaq7
sumber
Tampaknya port fana harus> = 49152. Tetapi jawaban Anda adalah yang paling dekat dengan pertanyaan saya.
Mircea Vutcovici
3

The RFC 6335 adalah menjelaskan hal ini:

Port dalam rentang Port Dinamis (49152-65535) telah secara khusus disisihkan untuk penggunaan lokal dan dinamis dan tidak dapat ditetapkan melalui IANA. Perangkat lunak aplikasi dapat menggunakan port dinamis apa saja yang tersedia pada host lokal, tanpa jenis penugasan apa pun. Di sisi lain, perangkat lunak aplikasi TIDAK HARUS mengasumsikan bahwa nomor port tertentu dalam rentang Dynamic Ports akan selalu tersedia untuk komunikasi setiap saat, dan nomor port dalam rentang itu sehingga TIDAK HARUS digunakan sebagai pengidentifikasi layanan.

Port yang dipesan:

Port dalam kisaran Port Pengguna (1024-49151) tersedia untuk penugasan melalui IANA, dan MUNGKIN dapat digunakan sebagai pengidentifikasi layanan setelah penugasan yang berhasil.

Ports dalam rentang System Ports (0-1023) juga tersedia untuk penugasan melalui IANA. Karena rentang Port Sistem adalah yang terkecil dan yang paling padat, persyaratan untuk penetapan baru lebih ketat daripada yang untuk kisaran Port Pengguna, dan hanya akan diberikan berdasarkan prosedur "Tinjauan IETF" atau "Persetujuan IESG" RFC5226 .

Pendahuluan menjelaskan kebingungan:

Selama bertahun-tahun, penugasan nama layanan baru dan nilai nomor port untuk digunakan dengan Transmission Control Protocol (TCP) [RFC0793] dan User Datagram Protocol (UDP) [RFC0768] memiliki
pedoman yang kurang jelas.

Tampaknya Windows XP tidak mengikuti RFC6335, tetapi Solaris 10 tidak.

Mircea Vutcovici
sumber
1

Apa yang dikatakan voretaq7 bersamaan dengan ini tetapi karena terlalu banyak ada persyaratan teknis. Secara historis daemon / server di * nix berjalan pada port <1024 (menyebutnya port sistem) sehingga untuk menghindari konflik, port sumber (port Pengguna)> 1024 (atau lebih tepatnya 1024 - 49151) Namun demikian tidak selalu kasus seperti yang Anda katakan dan itu tergantung pada implementasi. Semua dalam semua tautan di atas memberikan daftar RFC tetapi mungkin yang paling spesifik adalah RFC5226 yang menggambarkan proses "Expert Review" dari IANA.

pengguna
sumber
Beberapa implementasi server NFS mengharuskan klien NFS menggunakan port <1024. Jadi secara teknis selalu memungkinkan untuk menggunakan semua port sebagai port sumber. Apa yang saya minta adalah dokumen yang meminta digunakan untuk port lebih dari 1024. Tampaknya sebenarnya klien harus menggunakan port lebih dari 49152.
Mircea Vutcovici
1
Itu tidak membantah jawaban saya. Lihat di sini unix.stackexchange.com/questions/16564/... Mengapa tugas IANA dan RFC 6056 tidak melindungi Anda? Setelah Anda selalu dapat memberikan rekomendasi, tidak ada yang menghentikan Anda untuk mengimplementasikan browser web yang akan menggunakan port 80 sebagai port sumber
pengguna
1
Menjadi sama-sama bertele-tele, tidak ada persyaratan bahwa port istimewa atau "terkenal" tidak digunakan sebagai port sumber (lihat kontra-contoh Mircea dengan port NFS istimewa) - Ini tidak umum dilakukan karena alasan yang Anda sebutkan, tetapi juga tidak terlarang. AFAIK menurut RFC TCP dan UDP setiap port yang tidak digunakan adalah permainan yang adil sebagai port sumber. Aturan yang kami buat di atas itu adalah untuk kenyamanan kami :-)
voretaq7