Wireshark - DHCP: Różnice pomiędzy wersjami

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania
(Utworzono nową stronę "__FORCETOC__ ==DHCP - trochę teorii== DHCP (ang. Dynamic Host Configuration Protocol – protokół dynamicznego konfigurowania hostów) – protokół komunikacyjny...")
 
Linia 103: Linia 103:
  
 
# DHCPDISCOVER – Klient chcący się połączyć z serwerem wysyła do sieci lokalnej pakiety rozgłoszeniowe zaadresowane do wszystkich odbiorców. Procedura ta nosi nazwę DHCP DISCOVER – odkrywanie DHCP. Czasami routery są konfigurowane, aby przekazywały pakiety DHCP do właściwego serwera w innej podsieci. Pakiety mają adres docelowy rozgłoszeniowy 255.255.255.255 i zawierają prośbę o ostatnio używany adres IP (np. 192.168.1.100). Może ona zostać zignorowana przez serwer.
 
# DHCPDISCOVER – Klient chcący się połączyć z serwerem wysyła do sieci lokalnej pakiety rozgłoszeniowe zaadresowane do wszystkich odbiorców. Procedura ta nosi nazwę DHCP DISCOVER – odkrywanie DHCP. Czasami routery są konfigurowane, aby przekazywały pakiety DHCP do właściwego serwera w innej podsieci. Pakiety mają adres docelowy rozgłoszeniowy 255.255.255.255 i zawierają prośbę o ostatnio używany adres IP (np. 192.168.1.100). Może ona zostać zignorowana przez serwer.
# DHCPOFFER – Oferta DHCP jest składana przez serwer, który określa właściwą konfigurację klienta na podstawie sprzętowego adresu urządzenia sieciowego określonego w polu CHADDR (w sieci lokalnej to adres MAC). W polu YIADDR serwer przekazuje klientowi jego adres IP.
+
# DHCPOFFER – Oferta DHCP jest składana przez serwer, który określa właściwą konfigurację klienta na podstawie sprzętowego adresu urządzenia sieciowego określonego w polu CHADDR (w sieci lokalnej to adres MAC). W polu YIADDR (adres IP klienta) serwer przekazuje klientowi jego adres IP.
 
# DHCPREQUEST – W odpowiedzi na ofertę klient wysyła Żądanie DHCP, w którym żada zaoferowanego adresu.
 
# DHCPREQUEST – W odpowiedzi na ofertę klient wysyła Żądanie DHCP, w którym żada zaoferowanego adresu.
 
# DHCPACK – Potwierdzenie DHCP (ang. DHCP Acknowledge) jest wysyłane jako odpowiedź na żądanie. Zakłada się, że reakcją klienta na potwierdzenie będzie odpowiednie skonfigurowanie interfejsu sieciowego.[https://pl.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol]
 
# DHCPACK – Potwierdzenie DHCP (ang. DHCP Acknowledge) jest wysyłane jako odpowiedź na żądanie. Zakłada się, że reakcją klienta na potwierdzenie będzie odpowiednie skonfigurowanie interfejsu sieciowego.[https://pl.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol]

Wersja z 17:54, 13 lut 2019


DHCP - trochę teorii

DHCP (ang. Dynamic Host Configuration Protocol – protokół dynamicznego konfigurowania hostów) – protokół komunikacyjny umożliwiający hostom uzyskanie od serwera danych konfiguracyjnych, np. adresu IP hosta, adresu IP bramy sieciowej, adresu serwera DNS, maski podsieci. Protokół DHCP jest zdefiniowany w RFC 2131 i jest następcą BOOTP. DHCP został opublikowany jako standard w roku 1993.

W kolejnej generacji protokołu IP, czyli IPv6, jako integralną część dodano nową wersję DHCP, czyli DHCPv6. Jego specyfikacja została opisana w RFC 3315.

W sieci opartej na protokole TCP/IP każdy komputer ma co najmniej jeden adres IP i jedną maskę podsieci; dzięki temu może się komunikować z innymi urządzeniami w sieci.

Komunikaty

  • DHCPDISCOVER – zlokalizowanie serwerów
  • DHCPOFFER – przesyłanie parametrów
  • DHCPREQUEST – żądanie przydzielenia używanych parametrów
  • DHCPACK – potwierdzenie przydziału parametrów
  • DHCPNAK – odmowa przydziału parametrów
  • DHCPDECLINE – wskazanie że adres sieciowy jest już używany
  • DHCPRELEASE – zwolnienie adresu
  • DHCPINFORM – żądanie przydziału parametrów (bez adresu IP)

Nagłówek DHCP

00 – 07 08 – 15 16 – 23 24 – 31
operacja typ sprzętu długość adresu sprzętowego liczba skoków
xid (identyfikator transakcji)
liczba sekund flagi
adres IP klienta
przydzielony adres IP klienta
adres IP serwera
adres IP bramki (routera)
adres sprzętowy klienta (16 oktetów)
nazwa serwera (64 oktety)
plik startowy (128 oktetów)
opcje producenta (długość zmienna)
Operacja
Typ nagłówka. 1 = BOOTREQUEST, 2 = BOOTREPLY
Typ sprzętu
Liczba z zakresu 1-28 oznaczająca typ sprzętu (karty sieciowej). Dla sieci ethernetowej przyjmuje wartość 1.
Długość adresu sprzętowego
Oznaczenie długości używanego adresu sprzętowego np. 6 dla Ethernetu 10 Mbps.
Liczba skoków
Pole jest opcjonalne. Zlicza liczbę pośrednich routerów biorących udział w transmisji pakietu.
Identyfikator transakcji
Wybierany losowo przez klienta identyfikator (w sytuacji, gdy serwer nie będzie w stanie "zrozumieć" adresu sprzętowego klienta. Wyśle odpowiedź na broadcast, a xid będzie jedynym sposobem rozpoznania odpowiedzi kierowanej do klienta).
Liczba sekund
Mierzony w sekundach czas, jaki upłynął od momentu pierwszego wysłania przez klienta wiadomości typu BOOTREQUEST.
Flagi
W tej chwili używany tylko 1 bit (BROADCAST flag). Pozostałe 15 bitów jest zarezerwowane na zastosowanie w przyszłości.
Adres IP klienta
Pole nieobowiązkowe. Wypełniane w przypadku np. odświeżania adresu.
Przydzielony adres IP klienta
Trzy możliwości przydzielania adresu: ręcznie (na podstawie MAC), automatycznie (kolejność zgłaszania) i dynamicznie (tylko na pewien okres).
Adres IP serwera
Ustawiane przez serwer.
Adres IP bramki
Ustawiane przez serwer.
Adres sprzętowy klienta
Adres MAC klienta.
Nazwa serwera
Pole opcjonalne. Nazwa hosta serwera.
Plik startowy
Używany w mechanizmie ciasteczek (Magic Cookie).
Opcje
Zestaw ponumerowanych opcji 0-254 np.
DHCP option 50: 192.168.1.100 requested
Klient prosi serwer o przydzielenie danego adres IP [1]


Przechwycenie pakietów

  1. Uruchom Wireshark
  2. Włącz przechwytywanie
  3. Wpisz ipconfig /release
  4. Wpisz ipconfig /renew
  5. Wyłącz przechwytywanie
  6. Filtrujemy wyniki wpisując bootp.option.type == 53 lub udp.port == 68, lub udp.port == 67

Powinniśmy uzyskać taki efekt.

Wirehark-dhcp1.png

DHCP Release

Jak widzimy na obrazku, pierwszy pojawił się komunikat DHCP Release. Jest to efekt wydania polecenie ipconfig /release, które jak wiadomo służy do porzucenie automatycznej adresacji.

Informacje nagłówkowe są widocze w programie Wireshark

Wirehark-dhcp2.png

Uzyskanie automatycznego adresu

Wirehark-dhcp3.png

DHCP session.svg

Jak widać po kolei:

  1. DHCPDISCOVER – Klient chcący się połączyć z serwerem wysyła do sieci lokalnej pakiety rozgłoszeniowe zaadresowane do wszystkich odbiorców. Procedura ta nosi nazwę DHCP DISCOVER – odkrywanie DHCP. Czasami routery są konfigurowane, aby przekazywały pakiety DHCP do właściwego serwera w innej podsieci. Pakiety mają adres docelowy rozgłoszeniowy 255.255.255.255 i zawierają prośbę o ostatnio używany adres IP (np. 192.168.1.100). Może ona zostać zignorowana przez serwer.
  2. DHCPOFFER – Oferta DHCP jest składana przez serwer, który określa właściwą konfigurację klienta na podstawie sprzętowego adresu urządzenia sieciowego określonego w polu CHADDR (w sieci lokalnej to adres MAC). W polu YIADDR (adres IP klienta) serwer przekazuje klientowi jego adres IP.
  3. DHCPREQUEST – W odpowiedzi na ofertę klient wysyła Żądanie DHCP, w którym żada zaoferowanego adresu.
  4. DHCPACK – Potwierdzenie DHCP (ang. DHCP Acknowledge) jest wysyłane jako odpowiedź na żądanie. Zakłada się, że reakcją klienta na potwierdzenie będzie odpowiednie skonfigurowanie interfejsu sieciowego.[2]

Przykładowe nagłówki

Poniżej przykładowe nagłówki [3]

DHCPDISCOVER

Example DHCPDISCOVER message

Ethernet: source= sender's MAC; destination=FF:FF:FF:FF:FF:FF

IP: source=0.0.0.0; destination=255.255.255.255
UDP: source port=68; destination port=67

Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0x00000000
SIADDR (Server IP address)
0x00000000
GIADDR (Gateway IP address)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0s, or overflow space for additional options; BOOTP legacy.
Magic cookie
0x63825363
DHCP options
0x350101 53: 1 (DHCP Discover)
0x3204c0a80164 50: 192.168.1.100 requested
0x370401030f06 55 (Parameter Request List):
 1 (Request Subnet Mask),
 3 (Router),
 15 (Domain Name),
 6 (Domain Name Server)
0xff 255 (Endmark)

DHCPOFFER

DHCPOFFER message

Ethernet: source= sender's MAC; destination=client mac address

IP: source=192.168.1.1; destination=255.255.255.255
UDP: source port=67; destination port=68

Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0xC0A80164 (192.168.1.100)
SIADDR (Server IP address)
0xC0A80101 (192.168.1.1)
GIADDR (Gateway IP address)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0s; BOOTP legacy.
Magic cookie
0x63825363
DHCP options
53: 2 (DHCP Offer)
1 (subnet mask): 255.255.255.0
3 (Router): 192.168.1.1
51 (IP address lease time): 86400s (1 day)
54 (DHCP server): 192.168.1.1
6 (DNS servers): 9.7.10.15, 9.7.10.16, 9.7.10.18

DHCPREQUEST

DHCPREQUEST message

Ethernet: source= sender's MAC; destination=FF:FF:FF:FF:FF:FF

IP: source=0.0.0.0 destination=255.255.255.255;Szablon:Efn
UDP: source port=68; destination port=67

Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0x00000000
SIADDR (Server IP address)
0xC0A80101 (192.168.1.1)
GIADDR (Gateway IP address)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octets of 0s; BOOTP legacy.
Magic cookie
0x63825363
DHCP options
53: 3 (DHCP Request)
50: 192.168.1.100 requested
54 (DHCP server): 192.168.1.1

DHCPACK

DHCPACK message

Ethernet: source= sender's MAC; destination=client's MAC

IP: source=192.168.1.1; destination=192.168.1.100
UDP: source port=67; destination port=68

Octet 0 Octet 1 Octet 2 Octet 3
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR (Client IP address)
0x00000000
YIADDR (Your IP address)
0xC0A80164 (192.168.1.100)
SIADDR (Server IP address)
0xC0A80101 (192.168.1.1)
GIADDR (Gateway IP address switched by relay)
0x00000000
CHADDR (Client hardware address)
0x00053C04
0x8D590000
0x00000000

0x00000000
192 octets of 0s. BOOTP legacy
Magic cookie
0x63825363
DHCP options
53: 5 (DHCP ACK) or 6 (DHCP NAK)
1 (subnet mask): 255.255.255.0
3 (Router): 192.168.1.1
51 (IP address lease time): 86400s (1 day)
54 (DHCP server): 192.168.1.1
6 (DNS servers): 9.7.10.15, 9.7.10.16, 9.7.10.18