Tại sao phải mất vài giây để có được địa chỉ IP qua DHCP?


24

Vì tò mò, tại sao thường phải mất vài giây để có được cấu hình mạng qua DHCP khi CPU có khả năng xử lý hàng triệu hoạt động mỗi giây và ping đến bộ định tuyến mất vài mili giây?

Trong môi trường nhà tôi có một bộ định tuyến WiFi và khoảng 5 thiết bị, không hiếm khi thấy thời gian như 5-10 giây.

Câu trả lời:


22

Ngoài việc mua lại hợp đồng thuê DHCP thực tế từ máy chủ DHCP (thường không mất nhiều thời gian), trước tiên, một số máy chủ sẽ ping địa chỉ IP mà nó sắp xử lý trước khi thực sự ra tay để xác minh rằng nó chưa được xử lý đang sử dụng trên mạng - việc này sẽ mất vài giây để hết thời gian. Máy khách đôi khi sẽ làm tương tự (một lần nữa, để ngăn xung đột địa chỉ IP) sẽ thêm một số thời gian nữa. Sau đó, trên hết, một số khách hàng cũng sẽ đăng ký các mục DNS của họ, v.v.


3
Máy chủ dhcp tại nơi làm việc của tôi sử dụng các yêu cầu ARP để phát hiện xung đột IP.
erichui

9

DHCP có thể mất nhiều thời gian hơn vì nó liên quan đến một loạt các giao dịch, không phải với một máy chủ duy nhất mà với tất cả các thiết bị trên mạng trong yêu cầu ban đầu, vì nó gửi một tin nhắn quảng bá.

Nếu bạn kiểm tra RFC cho DHCP,

http://www.faqs.org/rfcs/rfc2131.html

bạn có thể thấy rõ chuỗi các cuộc đàm phán liên quan. Lúc đầu, máy khách gửi DHCPDISCOVER đến tất cả các thiết bị trên mạng LAN, sau đó các máy chủ đang chạy dịch vụ dhcp trả về tin nhắn DHCPOFFER. Máy khách cũng có thể đợi để nhận phản hồi từ tất cả các máy chủ dhcp có sẵn trước khi chọn. Sau đó, nó sẽ gửi DHCPREQUEST với một mã định danh cho biết máy chủ nào đã chọn làm nhà cung cấp ip của nó. Cuối cùng, nó nhận được DHCPACK với tất cả các tham số cấu hình. Đây chỉ là một bản tóm tắt về "3.1 Tương tác giữa máy khách và máy chủ - phân bổ địa chỉ mạng" từ RFC.

Theo kinh nghiệm của tôi, dhcp mất nhiều thời gian, chủ yếu ở cài đặt mạng LAN lớn với rất nhiều nút được kết nối. Trong một mạng lưới chỉ với một máy chủ dhcp (ví dụ bộ định tuyến WIFI) và một hoặc hai chiếc, nó khá nhanh.


Trong mạng gia đình của tôi có một bộ định tuyến WiFi và khoảng 5 thiết bị, mất khoảng 5-10 giây mà tôi cho là khá chậm. Nhưng cảm ơn đã giải thích.
Borek Bernard

hãy chắc chắn rằng bạn có một máy chủ dhcp. Nếu chỉ có 5 thiết bị, bạn có thể muốn dự trữ IP cho mỗi thiết bị trong máy chủ dhcp. Nhưng nếu bạn đủ tò mò, bạn có thể sử dụng tcpdump để xem xét đàm phán thực tế và xem điều gì gây ra sự chậm trễ.
Daniel t.

Tùy thuộc vào máy chủ dhcp, có thể mất vài giây bất kể hoạt động mạng hay tốc độ CPU. Điều này là do máy chủ trước tiên truy vấn mạng để xem địa chỉ có được sử dụng hay không trước khi nó cung cấp cho khách hàng và phải chờ ít nhất một chút để có câu trả lời. Thời gian chờ này là một phần của sự chậm trễ mà bạn nhận thấy và nó sẽ tồn tại ngay cả trên mạng yên tĩnh nhất.
ʇsәɹoɈ

2

Hai lý do (và giải pháp) tôi tìm thấy khi tôi muốn trả lời nhanh từ máy chủ DHCP của mình.

1) DHCP của tôi đã ping một địa chỉ mà nó muốn phân bổ. Điều này thêm 3 giây chậm trễ. Tôi đã loại bỏ điều này bằng cách thay đổi cấu hình DHCP để có ánh xạ cho Địa chỉ MAC thành địa chỉ IP. Điều này về cơ bản là sử dụng DHCP để phân bổ một địa chỉ tĩnh. Điều này loại bỏ sự chậm trễ 3 giây cho tôi.

2) Tôi có một mạng bị cô lập, tuy nhiên, đôi khi bạn có thể nhận được điều này. Có một DNS tìm kiếm được thực hiện, mà đối với tôi đã dẫn đến việc chậm trễ nhiều giây để nhận Địa chỉ IP từ DHCP. Trong cấu hình máy chủ DHCP, có các tùy chọn cho máy chủ miền và DNS của chúng tôi. Sau khi loại bỏ các tùy chọn DNS và thay đổi ở trên, tôi nhận được phản hồi ngay lập tức từ máy chủ DHCP. (**)

Những vấn đề này là những gì tôi tìm thấy trong thiết lập của tôi. Milage của bạn có thể thay đổi.

chúc mừng

LB

(**) Nếu tôi có một xu cho mỗi lần tra cứu DNS không thành công gây ra sự chậm trễ dẫn đến tiếng gõ lạ ảnh hưởng đến việc tôi gãi đầu, tôi sẽ có nhiều đồng xu.


1

Tôi không biết bạn có bối cảnh gì, nhưng trong thế giới thực, bạn nhận được địa chỉ IP ... vv từ một máy chủ cũ (máy chủ dhcp luôn là máy chủ có phần cứng lâu đời nhất :)) với rất nhiều yêu cầu, đằng sau tường lửa , một hoặc một vài bộ định tuyến / chuyển mạch ... Độ trễ, nguồn cpu ... và trong thế giới windows, việc triển khai dhcp không hiệu quả như chúng ta mong muốn!.


1
"trong một thế giới windows, việc thực hiện dhcp không hiệu quả như chúng ta mong muốn!." Bạn có bất kỳ tài liệu hoặc nguồn để sao lưu những gì bạn nói ở đây?
mfinni

Không, nhưng ví dụ .... Linux cung cấp các tùy chọn DHCP fail-over một cách rất dễ dàng. Ngoài chức năng thư mục Active dựng sẵn trong Windows, còn có một số điểm khác được coi là vấn đề bảo mật tiềm ẩn.
C_Sense

2
Tôi nghĩ rằng bạn đang hồi sinh cường điệu lượm lặt từ nhiều năm đọc quá nhiều bài đăng trên internet. "Microsoft thật tệ." "Tại sao?" "Bởi vì mọi người đều nói như vậy."
joeqwerty

Bạn có thể thực hiện các phạm vi DHCP chồng chéo trên các máy chủ Windows DHCP. Với win2k8 R2, rõ ràng, cũng có một tùy chọn chuyển đổi dự phòng mới. Có lẽ Linux tốt hơn thế. Không ai trong số đó có liên quan gì đến "hiệu quả". Và "vấn đề bảo mật" nào trong Windows DHCP mà bạn đang đề cập đến? Tôi đã hỏi bạn các nguồn, và thay vào đó bạn đưa ra nhiều yêu cầu hơn.
mfinni

0

Nếu bạn đang gặp vấn đề về hiệu suất với dhcp;

  1. Kiểm tra độ trễ mạng
  2. Nhìn vào gói đàm phán dhcp cap. Bạn sẽ có thể thấy những gì hành động đang mất một thời gian dài. (vấn đề có thể không xảy ra với máy chủ dhcp, ai đang đợi ai?)
  3. Kiểm tra tải máy chủ dhcp và nhật ký.

Đó là một kịch bản mạng gia đình, tôi đã cập nhật câu hỏi.
Borek Bernard

_ಠ YU KHÔNG HỎI SIÊU NÀO?
Ablue

Có lẽ bởi vì nó liên quan đến mạng và đây là nơi tốt nhất cho việc này?
Kedare

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.