Dlaczego uzyskanie adresu IP przez DHCP zajmuje kilka sekund?

24

Z ciekawości, dlaczego często konfiguracja sieci przez DHCP zajmuje kilka sekund, skoro procesor jest w stanie przetwarzać miliony operacji na sekundę, a ping do routera zajmuje kilka milisekund?

W moim środowisku domowym z jednym routerem Wi-Fi i około 5 urządzeniami nierzadko zdarza się widzieć czasy takie jak 5-10 sekund.

Borek Bernard
źródło

Odpowiedzi:

22

Oprócz faktycznego nabycia dzierżawy DHCP z serwera DHCP (co zwykle nie trwa bardzo długo), niektóre serwery najpierw pingują adres IP, który ma zamiar rozdać, zanim wręczą go w celu sprawdzenia, czy jeszcze nie jest w użyciu w sieci - przekroczenie limitu czasu zajmuje kilka sekund. Klient czasami robi to samo (ponownie, aby zapobiec konfliktom adresów IP), co wydłuży czas. Ponadto niektórzy klienci zarejestrują również swoje wpisy DNS itp.

Dan
źródło
3
Serwer dhcp w mojej pracy wykorzystuje żądania ARP do wykrywania konfliktów adresów IP.
erichui
9

DHCP może potrwać nieco dłużej, ponieważ wiąże się z serią transakcji, nie z jednym serwerem, ale ze wszystkimi urządzeniami w sieci podczas pierwszego żądania, ponieważ wysyła wiadomość rozgłoszeniową.

Jeśli sprawdzisz RFC dla DHCP,

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

wyraźnie widać serię negocjacji. Na początku klient wysyła DHCPDISCOVER do wszystkich urządzeń w sieci LAN, a następnie serwery z usługą dhcp zwracają komunikat DHCPOFFER. Klient może również poczekać na odpowiedź ze wszystkich dostępnych serwerów DHCP, zanim wybierze jeden. Następnie wysyła DHCPREQUEST z identyfikatorem wskazującym, który serwer wybrał jako swojego dostawcę IP. Wreszcie otrzymuje DHCPACK ze wszystkimi parametrami konfiguracji. To tylko podsumowanie „3.1 Interakcja klient-serwer - przydzielanie adresu sieciowego” z RFC.

Z mojego doświadczenia wynika, że ​​dhcp zajmuje dużo czasu głównie w dużych sieciach LAN z wieloma połączonymi węzłami. W homenetwork z tylko jednym serwerem dhcp (na przykład routerem WIFI) i jednym lub dwoma komputerami jest dość szybki.

Daniel t.
źródło
W mojej sieci domowej z jednym routerem Wi-Fi i około 5 urządzeniami zajmuje to około 5-10 sekund, co uważam za dość wolne. Ale dzięki za wyjaśnienie.
Borek Bernard
upewnij się, że masz jeden serwer dhcp. Jeśli jest to tylko 5 urządzeń, możesz zarezerwować adresy IP dla każdego urządzenia na serwerze dhcp. Ale jeśli jesteś wystarczająco ciekawy, możesz użyć tcpdump, aby spojrzeć na faktyczne negocjacje i zobaczyć, co jest przyczyną opóźnienia.
Daniel t.
W zależności od serwera dhcp może to potrwać kilka sekund bez względu na aktywność sieci lub szybkość procesora. Dzieje się tak, ponieważ serwer najpierw wysyła zapytanie do sieci, aby sprawdzić, czy używany jest adres, zanim zaoferuje go klientowi, i musi czekać przynajmniej chwilę na odpowiedź. Ten limit czasu jest częścią opóźnienia, które zauważysz, i będzie istnieć nawet w najcichszej sieci.
әɹsәɹoɈ
2

Dwa powody (i rozwiązania) znalazłem, gdy potrzebowałem szybkich odpowiedzi z mojego serwera DHCP.

1) Mój DHCP wykonał polecenie ping adresu, który chciał przydzielić. To dodało 3 sekundy opóźnienia. Usunąłem to, zmieniając konfigurację DHCP na mapowanie adresu MAC na adres IP. Jest to w zasadzie użycie DHCP do przydzielenia adresu statycznego. To usunęło dla mnie 3-sekundowe opóźnienie.

2) Mam izolowaną sieć, jednak czasami możesz ją uzyskać. Przeprowadzono wyszukiwanie DNS, co dla mnie spowodowało wiele sekund opóźnienia w uzyskaniu adresu IP z DHCP. W konfiguracji serwera DHCP były opcje dla naszej domeny i serwerów DNS. Po usunięciu opcji DNS i powyższych zmian otrzymałem natychmiastowe odpowiedzi z serwera DHCP. (**)

Te problemy znalazłem w mojej konfiguracji. Twój przebieg może się różnić.

Twoje zdrowie

FUNT

(**) Gdybym miał grosz za każdym razem, gdy nieudane wyszukiwanie DNS spowodowało opóźnienie, które spowodowało dziwny efekt domina, który spowodował, że podrapałem się po głowie, miałbym wiele groszy.

LazyBrush
źródło
1

Nie wiem, jaki masz scenariusz, ale w prawdziwym świecie dostajesz adres IP ... itd. Ze starego serwera (serwer dhcp to zawsze ten z najstarszym sprzętem :)) z dużą ilością żądań, za firewallem , jeden lub kilka routerów / przełączników ... Opóźnienie, moc procesora ... a w świecie Windows implementacja dhcp nie jest tak wydajna, jak byśmy tego chcieli !.

C_Sense
źródło
1
„w świecie Windows implementacja protokołu dhcp nie jest tak wydajna, jak byśmy tego chcieli!” Czy masz dokumentację lub źródła, aby wykonać kopię zapasową tego, co tu powiedziałeś?
mfinni
Nie, ale na przykład .... Linux zapewnia przełączanie awaryjne DHCP w bardzo łatwy sposób. Oprócz wbudowanej funkcji Active Directory w systemie Windows, istnieją inne kwestie, które należy uznać za potencjalne problemy z bezpieczeństwem.
C_Sense
2
Myślę, że powracasz do hiperboli zebranej po latach czytania zbyt wielu postów w Internecie. „Microsoft jest zły”. "Czemu?" „Ponieważ wszyscy tak mówią”.
joeqwerty
Można wykonywać nakładające się zakresy DHCP na serwerach DHCP systemu Windows. Z Win2k8 R2 najwyraźniej dostępna jest również nowa opcja przełączania awaryjnego. Może Linux jest lepszy. Nic z tego nie ma nic wspólnego z „wydajnością”. A do jakich „problemów bezpieczeństwa” w Windows DHCP masz na myśli? Poprosiłem cię o źródła, a zamiast tego wyrzucasz więcej roszczeń.
mfinni
0

Jeśli występują problemy z wydajnością programu dhcp;

  1. Sprawdź opóźnienie sieci
  2. Spójrz na negocjację WPH pakietu WPR. Powinieneś być w stanie zobaczyć, jakie działanie zajmuje dużo czasu. (problem może nie dotyczyć serwera dhcp, kto na kogo czeka?)
  3. Sprawdź obciążenie serwera DHCP i dzienniki.
Niebieski
źródło
To scenariusz sieci domowej, zaktualizowałem pytanie.
Borek Bernard
ಠ_ಠ JESZCZE NIE PYTAJ SUPERUSERA?
Ablue
Może dlatego, że jest to związane z siecią i tutaj jest najlepsze miejsce na to?
Kedare