Administracja systemami operacyjnymi Wiosna 2014 Wykład 6 Zaawansowane usługi sieciowe w Linux/UNIX - DHCP dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz
DHCP DHCP (ang. Dynamic Host Configuration Protocol) - protokół dynamicznego konfigurowania węzłów zdefiniowany w RFC 2131 jest następcą BOOTP. Opublikowany został jako standard w roku 1993. Jest to protokół komunikacyjny umożliwiający komputerom uzyskanie od serwera danych konfiguracyjnych, np. adresu IP hosta, adresu IP bramy sieciowej, adresu serwera DNS, maski sieci. Użycie protokołu DHCP zmniejsza nakład pracy wymagany przy zarządzaniu siecią IP. Protokołem transportowym wykorzystywanym przez protokół DHCP jest UDP (ang. User Datagram Protocol). Klient wysyła komunikaty do serwera na port 67. Serwer wysyła komunikaty do klienta na port 68.
DHCP – pakiety Poszukiwanie serwera DHCP Klient chcący się połączyć z serwerem wysyła do sieci lokalnej pakiety rozgłoszeniowe zaadresowane do wszystkich odbiorców. 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. 3
DHCP – pakiety DHCP offer 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. DHCP Request Żądanie DHCP jest wysyłane przez klienta, który już rozpoznał serwer DHCP, ale chce uzyskać inne parametry konfiguracji. Na przykład – może ponownie zażądać adresu IP 192.168.1.100. RFC 2131 wprowadza dodatkowo zapytanie typu DHCPINFORM. Klient stosuje je, gdy ma już przypisany adres IP (np. ręcznie), lecz nadal nie zna pozostałych wymaganych parametrów. W odpowiedzi serwer wysyła pakiet potwierdzenia DHCP z pustym polem YIADDR oraz nieustawionym czasem dzierżawy adresu. DHCP Acknowledge Potwierdzenie DHCP jest wysyłane jako odpowiedź na żądanie. Zakłada się, że reakcją klienta na potwierdzenie będzie odpowiednie skonfigurowanie interfejsu sieciowego. 4
Przydzielanie adresów IP Protokół DHCP opisuje trzy techniki przydzielania adresów IP: Przydzielanie ręczne oparte na tablicy adresów MAC oraz odpowiednich dla nich adresów IP. Jest ona tworzona przez administratora serwera DHCP. W takiej sytuacji prawo do pracy w sieci mają tylko komputery zarejestrowane wcześniej przez obsługę systemu. Przydzielanie automatyczne Wolne adresy IP z zakresu ustalonego przez administratora są przydzielane kolejnym zgłaszającym się po nie klientom. Przydzielanie dynamiczne Administrator sieci nadaje zakres adresów IP do rozdzielenia. Wszyscy klienci mają tak skonfigurowane interfejsy sieciowe, że po starcie systemu automatycznie pobierają swoje adresy. Każdy adres przydzielany jest na pewien czas. Taka konfiguracja powoduje, że zwykły użytkownik ma ułatwioną pracę z siecią. Serwer DHCP może dodatkowo przydzielić każdemu klientowi własny adres DNS, przekazywany na serwer nazw protokołem zgodnym ze specyfikacją.
Odświeżanie dzierżawy adresu Adres IP jest przyznawany klientowi na tzw. czas dzierżawy (lease). Określa on czas ważności ustawień. W tle pracują dwa zegary – T1 odmierza połowę czasu użytkowania, zaś T2 – 87,5% pełnego czasu użytkowania – wartości są konfigurowane w serwerze. Po upływie czasu T1 klient wysyła komunikat DHCPREQUEST do serwera i pyta, czy serwer może przedłużyć czas użytkowania. Stan ten określa się jako renewing status. Z reguły serwer odpowiada wiadomością DHCPACK i przydziela nowy czas użytkowania. Serwer resetuje wówczas zegary T1 i T2. Jeżeli po upływie czasu T2 klient nie otrzyma wiadomości DHCPACK, rozpoczyna się tak zwany rebinding status. Klient musi wysłać komunikat DHCPREQUEST, żeby uzyskać przedłużenie czasu użytkowania. Serwer może odpowiedzieć na to żądanie potwierdzeniem DHCPACK. Jeżeli jednak i to żądanie pozostanie bez odpowiedzi, klient musi zażądać nowego adresu IP. Wkracza wówczas ponownie opisany na początku mechanizm, który rozsyła zapytania do wszystkich serwerów DHCP w sieci.
DHCP na Linuksie Sprawdzamy jakie pakiety są zainstalowane # apt-cache search dhcpd Jeżeli chcemy zainstalować serwer DHCP, wydajemy polecenie # apt-get install dhcp3-server Uruchanianie serwera DHCP # dhcpd Odświeżenie adresu przez klienta # dhclient eth0 Pliki konfiguracyjne /etc/dhcp/dhclient.conf – steruje zachowaniem klienta DCHP (nadpisując ustawienia serwera DHCP) /etc/default/isc-dhcp-server – konfiguracja nasłuchu na interfejsie
Konfiguracja DHCP na Linuksie Plik /etc/dhcp/dhcpd.conf Plik posiada sekcję ustawień globalnych oraz definicje hostów i podsieci. Podstawowa konfiguracja serwera może wyglądać następująco: ddns-update-style none; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 10.11.22.0 netmask 255.255.255.0 { range 10.11.22.1 10.11.22.20; option routers 10.254.239.1; } ignore unknown-clients; host nazwa1 { hardware ethernet 00:06:1B:AA:BE:33; } host nazwa2 { hardware ethernet 00:06:CC:DD:EE:11; }
Ustawienia konfiguracyjne W pliku dhcpd.conf definiujemy podsieci subnet 10.11.22.0 netmask 255.255.255.0 { … } Zakres przydzielanych adresów IP range 192.168.192.101 192.168.192.199; Adres rozgłoszeniowy w tej sieci. option broadcast-address 192.168.192.255; Maska podsieci option subnet-mask 255.255.255.0; Czasy dzierżaw default-lease-time 600; max-lease-time 7200; Adres serwera WINS option netbios-name-servers 192.168.192.55; option netbios-node-type 8; Adresy serwerów DNS option domain-name-servers 192.168.192.77; Domyśle sufiksy domeny option domain-name "domena.testowa.pl"; Adres IP domyślnej bramy option routers 192.168.192.98; Uwaga – serwer DHCP powinien mieć statyczną konfiguracje IP
Dynamiczny DNS i DHCP /etc/bind/named.conf Serwer BIND9 może dynamicznie rejestrować nazwy hostów. Aby to ustawienie działało, należy pozwolić serwerowi na taką operację. Zakładamy, że DHCP i DNS będą na tym samym komputerze /etc/bind/named.conf controls { inet 127.0.0.1 allow {localhost; } keys { "rndc-key"; }; }; Poniżej znajduje się definicja lokalnej strefy. Tu wskazujemy, która domena będzie automatycznie aktualizowana. Tu inkludujemy plik klucza zone "wojtek.bieniecki.local" { type master; file "/etc/bind/wojtek.bieniecki.local"; allow-update { key "rndc-key"; }; notify yes;}; zone "0.168.192.in-addr.arpa" { file "/etc/bind/db.192.168.0"; include "/etc/bind/rndc.key";
Dynamiczny DNS i DHCP Hasło umieszczamy w pliku /etc/bind/rndc.key Hasło tworzymy poleceniem dnssec-keygen -a alg -b bits -n type [options] name np. dnssec-keygen -a HMAC-MD5 -b 128 -n HOST -r /dev/random rndc-key lub rndc-confgen Hasło umieszczamy w pliku /etc/bind/rndc.key key "rndc-key" { algorithm hmac-md5; secret "lgkbhjhtthgtlghtl6567=="; };
Dynamiczny DNS i DHCP /etc/dhcp/dhcpd.conf # ustawienia globalne – nazwa domeny i włączenie aktualizacji server-identifier server; ddns-updates on; ddns-update-style interim; ddns-domainname "wojtek.bieniecki.local."; ddns-rev-domainname "in-addr.arpa."; ignore client-updates; # plik z kluczem – autentykacja DHCP na BIND include "/etc/bind/rndc.key"; # Strefa komunikacyjna zone wojtek.bieniecki.local. { primary 127.0.0.1; key rndc-key; }
Dynamiczny DNS i DHCP /etc/dhcp/dhcpd.conf – ciąg dalszy # Normalna konfiguracja DHCP option domain-name "wojtek.bieniecki.local."; option domain-name-servers 192.168.0.60, 192.168.0.1; option ntp-servers 192.168.0.60; option ip-forwarding off; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option broadcast-address 192.168.0.255; option routers 192.168.0.1; allow unknown-clients; zone 0.168.192.in-addr.arpa. { primary 192.168.0.60; key "rndc-key"; } zone localdomain. {
Ćwiczenia: 1. Sprawdź stan instalacji DHCP. W razie potrzeby zainstaluj 2. Sprawdź działanie klienta DHCP 3. Wykonaj podstawową konfigurację serwera DHCP i sprawdź jej działanie 4. Wykonaj konfigurację DHCP wraz z dynamicznym DNS.