Де документація, в якій зазначено вихідний порт TCP та UDP, має бути понад 1024 та випадковою?


11

Мені важко знайти місце, де зафіксовано, що вихідний порт повинен бути випадковим і в межах 1024-65535.

У якому RFC це документально підтверджено?

Редагувати:
Перша посилання на привілейовані порти знаходиться в RFC2623
Схоже, що це більше залежить від реалізації TCP / IP і це фактично стандарт.

IANA присвоює номери портів (RFC1700)


1
FYR - RFC 1700 (STD 2) займається лише призначенням портів слухачів (де служби прослуховують з'єднання). Він не стосується вибору вихідного порту підключення сервера.
voretaq7

Так, але висновок, що ви "ДОЛЖЕН" використовувати зареєстровані порти, полягає в тому, що ви не повинні використовувати їх для інших матеріалів. Саме тому я це згадав.
Mircea Vutcovici

2
iana.org/assignments/service-names-port-numbers/… розповідає про динамічні та / або приватні порти (49152-65535). Тож здається, що клієнт повинен використовувати порт із цього діапазону.
Мірча Вутковичі

Відповіді:


13

Ви, ймовірно, шукаєте RFC 6056 - Рекомендації щодо рандомізації порту транспорту-протоколу ("Краща поточна практика").

Технічно немає вимоги, щоб ефемерний порт був> 1024 або випадковим (ви можете створити систему, яка завжди ініціює з'єднання з порту 12, тому що вам подобається число 12), просто це не "нормально" робити це (і жахлива ідея для купа причин, деякі з яких описані в тому RFC).


Здається, що ефемерні порти повинні бути> = 49152. Але ваша відповідь є найближчим до мого питання.
Mircea Vutcovici

3

RFC 6335 пояснює це:

Порти в діапазоні динамічних портів (49152-65535) були спеціально відведені для місцевого та динамічного використання і не можуть бути призначені через IANA. Прикладне програмне забезпечення може просто використовувати будь-який динамічний порт, доступний на локальному хості, без будь-якого призначення. З іншого боку, прикладне програмне забезпечення НЕ МОЖЕ припускати, що певний номер порту в діапазоні "Динамічні порти" завжди буде доступний для зв'язку постійно, а номер порту в цьому діапазоні НЕ МОЖЕ використовуватися як ідентифікатор послуги.

Зарезервовані порти:

Порти в діапазоні Порти користувачів (1024-49151) доступні для призначення через IANA, і МОЖНА використовуватись як ідентифікатори послуг після успішного призначення.

Порти в діапазоні системних портів (0-1023) також доступні для призначення через IANA. Оскільки діапазон системних портів є як найменшим, так і найбільш щільно присвоєним, вимоги до нових завдань суворіші, ніж вимоги до діапазону Портів користувача, і надаватимуться лише в рамках процедур «Огляд IETF» або «Схвалення IESG» RFC5226 .

Вступ пояснює плутанину:

Протягом багатьох років присвоєння нових імен служб та значень номерів портів для використання з протоколом управління передачею (TCP) [RFC0793] та протоколом User Datagram Protocol (UDP) [RFC0768] мало менш
чітких рекомендацій.

Здається, що Windows XP не відповідає RFC6335, але Solaris 10 це робить.


1

Те, що сказав voretaq7 поряд з цим, але бути педантичним, є технічна вимога. Історично демони / сервери в * nix працюють на портах <1024 (називаючи їх системними портами), таким чином, щоб уникнути конфлікту, вихідні порти (порти користувачів) становлять> 1024 (або якщо бути точнішим 1024 - 49151) Однак це не завжди як ви говорите, і це залежить від реалізації. Загалом, вищезазначене посилання містить перелік RFC, але, мабуть, найбільш специфічним є RFC5226, який описує процес "Огляд експертів" IANA.


Деякі реалізації сервера NFS вимагають, щоб клієнт NFS використовував порт <1024. Тож технічно завжди можна було використовувати всі порти як вихідний порт. Що я прошу, це документ, який просять використовувати для портів понад 1024. Здається, що клієнт фактично повинен використовувати порти понад 49152.
Mircea Vutcovici

1
Це не спростує моєї відповіді. Дивіться тут unix.stackexchange.com/questions/16564/… Чому завдання IANA та RFC 6056 не покривають вас? Після того, як ви завжди можете давати рекомендації, ніхто не заважає вам впровадити веб-браузер, який використовуватиме порт 80 як вихідний порт
користувач

1
Будучи однаково педантичним, немає ніякої вимоги, щоб привілейовані або "добре відомі" порти не використовувались як вихідний порт (див. Контрприклад Мірчі з привілейованими портами NFS). Це зазвичай не робиться з вказаних вами причин, але це також не заборонено. AFAIK згідно з TCP та UDP RFC, будь-який невикористаний порт - це чесна гра як вихідний порт. Правила, які ми складаємо,
крім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.