Sieci komputerowe Zajęcia 3 Protokoły ARP, RARP, DHCP, nagłówek IP
Przykład adresacji IP
Ruting dla poprzedniego przykładu Użyjemy rutingu statycznego Należy dokonać odpowiednich wpisów do tablicy rutowania route add -net 193.0.96.0/26 gw 193.0.96.193 eth1 route add -net 193.0.96.64/26 gw 193.0.96.194 eth1... Jeśli używamy dynamicznego protokołu rutowania, nie trzeba ręcznie modyfikować tablicy rutowania
Protokół ARP ARP (Address Resolution Protocol) umożliwia znalezienie adresu fizycznego (MAC) odpowiadającego adresowi IP
Eth Eth adres adres przezn źródła aczenia Typ Rodzaj (0x0806) sprzętu (1 eth) Ramka ARP Rodzaj prot (IP 0x0800) Rozm. adresu sprzęt. Rozm. adresu prot. Op (1- zapyta nie ARP) Adres Eth wysyłaj ącego Adres IP Adres Eth Adres IP wysyłaj przezn przezn ącego aczenia aczenia ------nagł. Ethernet---------- --------------------------zapytanie/odpowiedź arp --------------------------------- Zapytanie i odpowiedź ARP zawarte są w ramce Ethernet Zapytania ARP wykorzystują mechanizm broadcast Ethernetu Adres MAC docelowy jest ustawiany na wartość: ff:ff:ff:ff:ff:ff
Polecenie arp Mapowania adresów IP na MAC są przechowywane w pamięci podręcznej ARP (dla zwiększenia wydajności) Polecenie arp służy do manipulowania wpisami do pamięci ARP Wynik działania polecenia arp -an (10.1.1.8) at 00:90:27:2A:7A:A2 [ether] on eth0.11 (10.1.2.211) at 00:0E:7B:9A:25:5F [ether] on eth0.12 (10.1.3.83) at 00:E0:7D:84:C8:4B [ether] on eth0.13 (10.1.2.4) at 00:0B:DB:93:10:6B [ether] on eth0.12
Protokół RARP i BOOTP RARP (Reverse ARP zapewnia odwzorowanie odwrotne w porównaniu z ARP MAC na IP Bootp dodatkowo udostępnia jeszcze inne dane
Eth adres przezna czenia Eth adres źródła Typ (0x8035) Ramka RARP Rodzaj sprzętu Rodzaj prot Rozm. adresu (1 eth) (IP-0x08 sprzęt. 00) Rozm. adresu prot. Op (3- zapytan ie RARP) Adres Eth wysyłaj ącego Adres IP wysyłaj ącego Adres Eth przezna czenia ------nagł. Ethernet----------- --------------------------zapytanie/odpowiedź arp --------------------------------- Adres IP przezna czenia Ramka RARP ma taki sam format jak ramka ARP Protokół RARP nie jest częścią implementacji stosu TCP/IP
Protokół DHCP BOOTP i DHCP stosuje się do konfiguracji interfejsów sieciowych hostów Ułatwia to czynności administracyjne związane z zarządzaniem adresacją IP
DHCPDISCOVER DHCPDISCOVER (broadcast) kierowany przez klienta Broadcast kierowany na adres IP 255.255.255.255 DHCP używa UDP jako protokołu transportowego Port 67 Discover powoduje, iż serwer lub serwery DHCP powinny przedstawić ofertę
DHCPOFFER DHCPOFFER to oferta dla klienta w postaci adresu IP i zwykle innych informacji, np. maski podsieci itp. Lista przekazywanych parametrów m.in. maska, DNS, nazwa hosta, routing statyczny, adres serwera TFTP, nazwa domeny, root path, bootfile name i wiele innych
DHCPREQUEST Klient może uzyskać odpowiedź od wielu serwerów Zaakceptuje ofertę od jednego Pozostałe serwery na podstawie DHCPREQUEST dowiedzą się, że ich oferta nie została zaakceptowana i ją wycofają Dołączą oferowane zasoby znów do puli jako dostępne DHCPREQUEST jest wysyłany jako broadcast
DHCPACK Wysyłane przez serwer do klienta Ostatnia faza konfiguracji, klient może zacząć korzystać z otrzymanych informacji Np. powinien skonfigurować interfejs sieciowy Serwer przesyła czas dzierżawy
DHCPNAK, DHCPDECLINE itd. Serwer wysyła DHCPNAK np. wtedy, gdy klient poprosił o niewłaściwy adres IP Klient może prosić o adres, którego używał wcześniej DHCPDECLINE wysyła klient, gdy stwierdza, że otrzymany adres jest używany DHCPRELEASE wysyła klient, gdy chce zwolnić adres
Popularna implementacja ISC dhcpd (serwer) http://www.isc.org/
/etc/dhcpd.conf Przykład konfiguracji authoritative; default-lease-time 2700; max-lease-time 3600; subnet 10.2.0.0 netmask 255.255.240.0 { option subnet-mask 255.255.240.0; option broadcast-address 10.2.15.255; option routers 10.2.0.1; option domain-name-servers 10.0.0.2, 10.2.0.2; option domain-name "mimuw.edu.pl"; option lpr-servers absurd.mimuw.edu.pl; option font-servers fontserv.mimuw.edu.pl; range 10.2.5.0 10.2.8.255; host octopus-mgmt { hardware ethernet 00:09:3D:14:C2:28; fixed-address octopus-mgmt; } host chrobry { hardware ethernet 00:19:B9:28:FD:94; fixed-address chrobry; }
DHCP zarządzanie adresacją Pula adresów, możliwe przydzielanie dynamiczne (z limitem czasu dzierżawy) Lub przyporządkowanie wg adresu MAC Zalety DHCP: Łatwa konfiguracja stacji roboczych, Łatwość wprowadzania zmian w adresacji. Konfiguracja statyczna jest niewygodna Choć zalecana np. dla serwerów usług
DHCP a bezpieczeństwo Podstawowy problem to pojawienie się innego serwera DHCP w sieci Można oferować np. inne adresy serwerów DNS... Inne kłopoty nawet niezwiązane z bezpieczeństwem (jakie?)
Nagłówek protokołu IP + Bity 0-3 4-7 8-15 16-18 19-31 0 Wersja Długość nagłówka Typ usługi (ToS) Całkowita długość 32 Numer identyfikacyjny Znaczniki Przesunięcie fragmentacji 64 Czas życia pakietu (TTL) Protokół warstwy wyższej 96 Adres źródłowy 128 Adres przeznaczenia 160 Opcje 192 Dane Suma kontrolna nagłówka Długość nagłówka wynosi 20 bajtów (bez pola opcje)
Najważniejsze pola nagłówka IP Pierwsze, 4-bitowe pole zawiera numer wersji protokołu IP (dla IPv4 jest to 4) Kolejne 4-bitowe pole zawiera długość samego nagłówka protokołu (bez danych) Następne 8 bitów prezentuje tzw. "typ usługi" (ang. Type of Service). Jest to najbardziej podstawowy sposób wyznaczania priorytetu danego datagramu Kolejnym 16-bitowym polem jest całkowita długość pakietu (razem z danymi). Jego długość (wynosząca 2 16 ) umożliwia ustawienie rozmiaru datagramu na 65536 bajtów
Pola nagłówka IP c.d. Kolejne 16-bitowe pole to numer identyfikacyjny, służy do fragmentacji i defragmentacji datagramów Dalej leżące 3-bitowe pole to znaczniki, używane przy fragmentacji datagramów Następne 13-bitowe pole służy do odpowiedniego oznaczania fragmentów datagramów Pole TTL (8 bitów) to czas życia pakietów (ang. Time To Live). Jest to liczba z zakresu 0-255. Przy trasowaniu pakietu przez router jest ona zmniejszana o jeden. W momencie osiągnięcia przez TTL wartości 0, pakiet nie jest dalej przekazywany
Pola nagłówka IP c.d. Kolejne, 8-bitowe określa rodzaj protokołu warstwy wyższej, takimi jak TCP czy UDP Następnym polem jest suma kontrolna nagłówka datagramu Dalsze pola zawierają adresy źródłowy i przeznaczenia. Na ich podstawie można określić pochodzenie i miejsce docelowe datagramu w sieci Ostatnim, 32-bitowym polem są opcje, które w normalnej transmisji zwykle nie są używane
Fragmentacja Datagram: Nagłówek IP Nagłówek Dane UDP UDP 20 bajtów 8 bajtów 1473 bajty 20+8+1473=1501 1501>MTU dla sieci Ethernet, konieczna jest fragmentacja : pierwszy pakiet: Nagłówek IP Nagłówek UDP Dane UDP 20 bajtów 8 bajtów 1472 bajty drugi pakiet: Nagłówek IP Dane UDP 20 bajtów 1 bajt W kolejnych fragmentach nie ma nagłówka UDP!
Fragmentacja c.d. W przypadku pierwszego fragmentu, numer identyfikacyjny może mieć wartość np. 26304, pole przesunięcie fragmentacji będzie miało wartość 0 W przypadku drugiego fragmentu wartość numeru identyfikacyjnego pozostaje ta sama, natomiast przesunięcie fragmentacji będzie równe 1480. Oznacza to, że drugi fragment zaczyna się po 1480 bajcie oryginalnego datagramu Wartości te można obserwować np. programem tcpdump
Terminologia Porcję danych w warstwie łącza nazywamy ramką W warstwie sieciowej jest to datagram lub pakiet W warstwie transportu stosujemy nazwę segment