เอกสารที่ระบุว่าพอร์ตต้นทาง 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/…พูดถึง Dynamic และ / หรือ Private Ports (49152-65535) ดังนั้นดูเหมือนว่าลูกค้าควรใช้พอร์ตจากช่วงนั้น
Mircea Vutcovici

คำตอบ:


13

คุณอาจกำลังมองหาRFC 6056 - คำแนะนำสำหรับการสุ่มพอร์ต Transport-Protocol ("วิธีปฏิบัติที่ดีที่สุดในปัจจุบัน")

ในทางเทคนิคแล้วไม่มีข้อกำหนดว่าพอร์ตชั่วคราวจะเป็น> 1024 หรือแบบสุ่ม (คุณสามารถสร้างระบบที่เริ่มต้นการเชื่อมต่อจากพอร์ต 12 เพราะคุณชอบหมายเลข 12) ไม่ใช่แค่ "ปกติ" ที่จะทำเช่นนั้น (และเป็นความคิดอันยิ่งใหญ่สำหรับ เหตุผลหลายประการซึ่งมีการอธิบายไว้ใน RFC นั้น)


ดูเหมือนว่าพอร์ตชั่วคราวควร>> 49152 แต่คำตอบของคุณคือคำถามของฉันที่ใกล้เคียงที่สุด
Mircea Vutcovici

3

RFC 6335จะอธิบายนี้:

พอร์ตในช่วงไดนามิกพอร์ต (49152-65535) ได้รับการตั้งค่าเป็นพิเศษสำหรับการใช้งานในท้องถิ่นและแบบไดนามิกและไม่สามารถกำหนดผ่าน IANA แอพพลิเคชั่นซอฟต์แวร์อาจใช้พอร์ตแบบไดนามิกใด ๆ ที่มีอยู่บนโลคัลโฮสต์ ในทางกลับกันแอพพลิเคชั่นซอฟต์แวร์จะต้องไม่สมมติว่าหมายเลขพอร์ตเฉพาะในช่วง Dynamic Ports จะสามารถใช้งานได้ตลอดเวลาในการสื่อสารและหมายเลขพอร์ตในช่วงนั้นจะต้องไม่ถูกใช้เป็นตัวระบุบริการ

พอร์ตที่สงวนไว้:

พอร์ตในช่วงพอร์ตผู้ใช้ (1024-49151) พร้อมใช้งานสำหรับการกำหนดผ่าน IANA และอาจใช้เป็นตัวระบุบริการเมื่อการมอบหมายสำเร็จ

พอร์ตในช่วงพอร์ตระบบ (0-1023) มีให้สำหรับการกำหนดผ่าน IANA เพราะพอร์ตระบบช่วงเป็นทั้งที่เล็กที่สุดและที่ได้รับมอบหมายหนาแน่นที่สุดความต้องการสำหรับการมอบหมายงานใหม่ที่เข้มงวดมากขึ้นกว่าที่สำหรับผู้ใช้ช่วงพอร์ตและจะได้รับเฉพาะภายใต้ "IETF รีวิว" หรือ "การอนุมัติ IESG" ขั้นตอนRFC5226

บทนำอธิบายความสับสน:

หลายปีที่ผ่านมาการกำหนดชื่อบริการใหม่และค่าหมายเลขพอร์ตสำหรับใช้กับ Transmission Control Protocol (TCP) [RFC0793] และ User Datagram Protocol (UDP) [RFC0768] มี
แนวทางที่ชัดเจนน้อยกว่า

ดูเหมือนว่า Windows XP ไม่ได้ติดตาม RFC6335 แต่ Solaris 10 ทำเช่นนั้น


1

สิ่งที่ voretaq7 พูดพร้อมกับสิ่งนี้ แต่การใช้ความคล่องแคล่วนั้นมีข้อกำหนดทางเทคนิค ในอดีต daemons / เซิร์ฟเวอร์ใน * nix กำลังทำงานบนพอร์ต <1024 (เรียกพวกเขาว่าพอร์ตระบบ) ดังนั้นเพื่อหลีกเลี่ยงความขัดแย้งพอร์ตต้นทาง (พอร์ตผู้ใช้) คือ> 1024 (หรือแม่นยำ 1024 - 49151) อย่างไรก็ตามนั่นไม่ใช่ กรณีที่คุณพูดและขึ้นอยู่กับการใช้งาน ในลิงค์ด้านบนทั้งหมดแสดงรายการของ RFC แต่น่าจะเป็นสิ่งที่เฉพาะเจาะจงที่สุดคือ RFC5226ซึ่งอธิบายกระบวนการ "ผู้เชี่ยวชาญรีวิว" ของ IANA


การปรับใช้เซิร์ฟเวอร์ NFS บางตัวต้องการให้ไคลเอ็นต์ NFS ใช้พอร์ต <1024 ในทางเทคนิคแล้วมันเป็นไปได้เสมอที่จะใช้พอร์ตทั้งหมดเป็นพอร์ตต้นทาง สิ่งที่ผมขอให้เป็นเอกสารที่ขอที่จะใช้สำหรับพอร์ตมากกว่า 1024 ดูเหมือนว่าที่จริงลูกค้าควรใช้พอร์ตมากกว่า 49152.
เมอร์เซี Vutcovici

1
นั่นไม่ได้หักล้างคำตอบของฉัน ดูที่นี่unix.stackexchange.com/questions/16564/…เหตุใดการกำหนด IANA และ RFC 6056 จึงไม่ครอบคลุมคุณ หลังจากที่คุณสามารถให้คำแนะนำได้ตลอดไม่มีใครหยุดคุณจากการใช้เว็บเบราว์เซอร์ที่จะใช้พอร์ต 80 เป็นพอร์ตต้นทาง
ผู้ใช้

1
ไม่มีความต้องการที่พอร์ตพิเศษหรือ "ที่รู้จักกันดี" จะไม่ถูกใช้เป็นพอร์ตต้นทาง (ดูตัวอย่างของ Mircea กับพอร์ต NFS ที่มีสิทธิพิเศษ) - มันไม่ได้ทำกันโดยทั่วไปด้วยเหตุผลที่คุณพูดถึง แต่มันก็ไม่ใช่ ต้องห้าม AFAIK ตาม TCP และ UDP RFCs พอร์ตใด ๆ ที่ไม่ได้ใช้เป็นเกมที่ยุติธรรมในฐานะพอร์ตต้นทาง กฎที่เราทำขึ้นมานั้นมีไว้เพื่อความสะดวกของเรา :-)
voretaq7
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.