Dlaczego serwer nie może używać docelowego adresu IP 0.0.0.0, jaki jest używany w źródłowym adresie IP usługi DHCP Discover and Request? Może wykorzystywać adres MAC klienta wyuczonego z DHCP Discover i Request, aby skierować ramkę na odpowiedni komputer klienta.Dlaczego emitowane są oferty DHCP i Ack?
Odpowiedz
Wybór unicast lub nadawany jest określony w DHCP RFC 2131:
Jeśli „giaddr” pole w komunikacie DHCP od klienta jest niezerowe, serwer wysyła żadnych wiadomości powrotne do port "serwera DHCP" w agencie przekazującym BOOTP, którego adres pojawia się w 'giaddr'. Jeśli pole "giaddr" wynosi zero, a pole "ciaddr" jest niezerowe, to serwer unicastuje komunikaty DHCPOFFER i DHCPACK na adres w "ciaddr". Jeśli "giaddr" ma wartość zero, a "ciaddr" wynosi zero, a bit rozgłoszeniowy jest ustawiony na , wówczas serwer nadaje komunikaty DHCPOFFER i DHCPACK do 0xffffffff. Jeśli bit transmisji nie jest ustawiony, a "giaddr" wynosi zero, a "ciaddr" wynosi zero, to serwer unicastuje komunikaty DHCPOFFER i DHCPACK na adres sprzętowy klienta i adres "yiaddr". W przypadku wszystkich przypadków, gdy "giaddr" wynosi zero, serwer rozgłasza wszystkie komunikaty DHCPNAK do 0xffffffff.
z ciaddr i giaddr istota:
ciaddr 4 Client IP address; only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests. giaddr 4 Relay agent IP address, used in booting via a relay agent.
więc serwer DHCP zdecyduje się nadaje lub nie odpowiednio do aktualnego stanu klienta (głównie jeśli już adres IP lub nie) i odpowiednio do nadawcy wiadomości, jeśli jest to agent przekazujący lub tylko klient.
W tym przypadku, mój serwer DCHP wybrał emisji pojedynczej DHCPOffer bo moja maszyna już adres IP i nie mam agenta przekaźnika w mojej sieci LAN.
EDIT:
I nikt nie może używać adresu IP 0.0.0.0 jako adres docelowy. Jak określono w IPv4 RFC 5735:
0.0.0.0/8 - Adresy w tym bloku odnoszą się do hostów źródłowych na "to" sieci. Adres 0.0.0.0/32 może być używany jako adres źródłowy dla tego hosta w tej sieci; inne adresy w zakresie 0.0.0.0/8 mogą być użyte do odnoszą się do określonych hostów w tej sieci ([RFC1122], sekcja 3.2.1.3).
Twoje pytanie nie jest wystarczająco jasne. Opublikuj [nowe pytanie] (http://superuser.com/questions/ask) na Superuser szczegółowo opisujące zachowanie zaangażowanych urządzeń, ich rolę i, być może, adresy IP i przechwycone dzienniki. – Avio
Mam podobny problem, ale chodzi o to, że mam urządzenie, które wysyła pakiet DHCP Discover, przeznaczony do 255.255.255.255, serwer otrzymuje ten komunikat (ponieważ używam rejestratora pakietów do przeglądania działań wszystkich węzłów) i odpowiedzi, ta odpowiedź, którą otrzymuje moje urządzenie, jest ramką rozgłoszeniową z serwera DHCP. Ale urządzenie nie akceptuje konfiguracji IP. Jakieś wyjaśnienie tej anomalii? – Abhinav
Dobra odpowiedź. Wyjaśnia, jak działają i czy możliwe jest posiadanie niezaprogramowanego DHCPOFFER. Ale chciałbym również poznać powód posiadania nadawanego DHCPOFFER. Jakieś pomysły? – limitcracker
Od the RFC 2131, strona 24:
Normalnie, serwery DHCP i BOOTP środki przekaźnikowe próbować dostarczyć wiadomości DHCPOffer, DHCPAck i DHCPNack bezpośrednio do klienta przy użyciu dostawę uicast. Adres docelowy IP (w nagłówku IP) jest ustawiony na na adres DHCP "yiaddr", a docelowy adres warstwy łącza to ustawiony na adres "chaddr" DHCP. Niestety, niektóre implementacje klienta nie mogą odbierać takich jednostkowych datagramów IP do momentu, aż implementacja została skonfigurowana z poprawnym adresem IP (prowadząc do zakleszczenia, w którym adres IP klienta nie może być dostarczony, dopóki klient nie zostanie skonfigurowany Adres IP).
Klient, który nie może odbierać unicast datagramy IP, aż jego oprogramowanie protokół został skonfigurowany z adresem IP powinien ustawić bitu nadawane w zakresie do 1 „Flags” w każdym DHCPDiscover lub DHCPRequest wiadomości, które klient wysyła. Bit BROADCAST dostarczy wskazówkę dla serwera DHCP i agenta przekaźnika BOOTP do transmisji wiadomości do klienta w podsieci klienta.
Klient, który może odbierać datagramów IP unicast przed jego oprogramowania protokół został skonfigurowany POWINIEN skasować bit transmisji na 0. BOOTP wyjaśnienia dokument omawia konsekwencje używania TRANSMISJA bit.
Podejrzewam, że jest to potrzebne do pracy w środowiskach, w których istnieje wiele współpracujących serwerów DHCP. Może być potrzebne, aby agenci przekaźnikowi również działali poprawnie. – Flexo