2009-11-24 34 views
8

Nếu giả sử client không nghe cổng 68, khi máy chủ DHCP nhận yêu cầu, nó có thể gửi nó đến địa chỉ từ nơi nó nhận được yêu cầu (với cổng tạm thời do khách hàng chọn tại thời điểm gửi), thì tại sao giao thức chỉ định máy khách được lắng nghe trên cổng 68?Tại sao DHCP client lắng nghe trên cổng 68?

Trả lời

1

Vì trong RFC (Yêu cầu nhận xét) chỉ định cách hoạt động của DHCP. RFC 2131 là tài liệu chỉ rõ cách máy khách DHCP và máy chủ hoạt động như thế nào.

Xem here để biết thêm thông tin về DHCP (mục 4.1 nói riêng). Xem here để biết thông tin về RFC.

+5

Câu hỏi đọc "tại sao giao thức chỉ định ứng dụng khách đang nghe trên cổng 68?", Vì vậy những gì họ đang yêu cầu có vẻ nhiều hơn "tại sao RFC lại nói như vậy?" –

+1

DHCP dựa trên giao thức BOOTP trước đó sử dụng cổng 67 (máy chủ) và 68 (máy khách).Tại sao BOOTP sử dụng các cổng đó có lẽ là do chúng không được sử dụng bởi bất kỳ giao thức nào khác vào lúc đó (SMTP sử dụng 25, FTP sử dụng 21, v.v.). Trong khi một máy chủ thường có một địa chỉ IP duy nhất, nó có thể có hàng ngàn cổng. Bằng cách gán các số cổng cụ thể cho các giao thức cụ thể, nhiều bên có thể phát triển các dịch vụ và khách hàng tiêu chuẩn. Miễn là bạn nghe trên cổng bên phải, bạn có thể viết máy khách hoặc máy chủ DHCP của riêng bạn. – TLiebe

+1

Ok nghĩa là không có lý do kỹ thuật? – avd

16

Lý do chính là máy chủ DHCP có thể phát "phiếu mua hàng DHCP" trên cấp độ mac, thay vì gửi nó unicast đến địa chỉ mac mà nó đã nhận được yêu cầu. Nếu cổng không đổi, một số máy chủ đang lắng nghe cơ hội đến cùng một cổng ngẫu nhiên này, sẽ chấp nhận gói tin đến lớp 5 - lớp ứng dụng. Nói cách khác, một ứng dụng sẽ nhận được tin nhắn từ ứng dụng hoàn toàn khác, chứ không phải là một tình huống lành mạnh.

+0

Câu trả lời này có vẻ không khác với câu trả lời từ 3 năm trước. Nếu bạn muốn thêm nội dung nào đó, hãy cân nhắc đề xuất chỉnh sửa cho câu trả lời hiện có, được chấp nhận :) –

+3

Cảm ơn, đây thực sự là câu trả lời đúng. – Parzifal

+0

Câu hỏi liên quan: Tôi có thể tắt tường lửa một cách an toàn khỏi cổng này trong một thiết lập bình thường trong đó máy khách DHCP được sử dụng để lấy địa chỉ IP không? I E. là * có thể * có liên quan trong thế giới thực? – Zero3

1

Tôi chỉ phải đối mặt với cùng một câu hỏi bản thân mình, và sau khi một số nghiên cứu, tôi thấy sau trên RFC 2131, trong đó mô tả các giao thức DHCP, dưới phần 1.6 Thiết kế Mục tiêu:

  • DHCP phải cung cấp dịch vụ cho khách hàng BOOTP hiện

Cũng trên RFC 951, trong đó mô tả các giao thức BOOTP, chúng ta có thể tìm thấy những điều sau đây:

Phần header UDP chứa số cổng nguồn và đích. Giao thức BOOTP sử dụng hai số cổng được đặt trước, 'BOOTP client' (68) và 'BOOTP server' (67). Máy khách gửi các yêu cầu bằng cách sử dụng 'BOOTP máy chủ' làm cổng đích; đây thường là một chương trình phát sóng. Máy chủ gửi thư trả lời bằng cách sử dụng 'BOOTP client' làm cổng đích; tùy thuộc vào nhân hoặc trình điều khiển trong máy chủ, điều này có thể hoặc có thể không phát sóng (điều này được giải thích thêm trong phần có tiêu đề 'Gà/trứng vấn đề' bên dưới). Lý do HAI cổng dành riêng được sử dụng, là để tránh 'thức dậy' và lên lịch cho máy chủ BOOTP các trình tiện ích, khi một bản khởi động phải được phát tới một máy khách. Vì máy chủ và các máy chủ khác sẽ không nghe trên cổng 'BOOTP client', mọi chương trình phát sóng đến như vậy sẽ được lọc ra ở cấp hạt nhân . Chúng tôi không thể đơn giản cho phép khách hàng chọn một cổng 'ngẫu nhiên' số cho trường cổng nguồn UDP; vì trả lời của máy chủ có thể là phát sóng , một số cổng được chọn ngẫu nhiên có thể gây nhầm lẫn cho các máy chủ khác xảy ra khi nghe trên cổng đó.

Vì vậy, câu trả lời cho câu hỏi đến từ trên. Các máy khách DHCP cần sử dụng cổng UDP 68, để DHCP tương thích với giao thức BOOTP và giao thức BOOTP yêu cầu một cổng cụ thể cho máy khách, vì BOOTPREPLIES có thể được phát và nếu một cổng ngẫu nhiên được chọn cho máy khách , nó có thể dẫn đến sự nhầm lẫn của các máy chủ khác lắng nghe trên cùng một cổng.

Các vấn đề liên quan