Konfiguracja i opis działania servera DHCP pod linuxem

Wstęp

Możliwość centralnego przechowywania konfiguracji hostów w obecnych czasach wydaje się czymś całkowicie naturalnym. Większość routerów dostepu do internetu i modemów dostępowych posiada funkcję serwers DHCP. Również nasz linux może stać się takim serwerem i rozdzielać adresy IP, servery DNS itd.

DHCP (Dynamic Host Configuration Protocol) Protokół ten jest następcą starszego protokołu BOOTP. Jak nie trudno się domyślić możliwość centralnego przechowywania konfiguracji hostów ułatwia prace administratorom. Zmiana adresu IP routera, serwera DNS czy zmiana adresów sieci nie powoduje już konieczności ręcznego ustawiania wszystkich parametrów na każdym z hostów. Wystarczy zmienić ustawienia serwera DHCP a komputery klientów pobiorą uaktualnione informacje.

Wprowadzenie serwera DHCP pozwala też na uniknięcie problemów związanych z informowaniem klientów jakie mają adresy IP, bram, sieci, DNS itd. Nie musimy też więcej martwić się że ktoś przez pomyłkę ustawi zajęty adres IP lub że szef przyjeżdżając z wizytą nie będzie wiedział
jak skonfigurować swojego laptopa do pracy w naszej sieci.

Oto lista ustawień jakie możemy rozpropagować do naszych klientów poprzez DHCP:

  1. adres IP klienta
  2. maskę sieciową
  3. broadcast
  4. adresy gatewaya
  5. adresy serwerów DNS
  6. adres serwera nazw WINS
  7. wiele innych zaawansowanych ustawień.

Ponadto możemy definiować stałe adresy IP dla poszczególnych hostów znając ich adresy MAC. W ten sposób możemy centralnie konfigurować adresy serwerów w naszej sieci np. www, ftp itd.

Możemy też dynamicznie przydzielać adresy IP które po wyłączeniu komputerów mogą być ponownie przydzielone. Ma to znaczenie jeśli mamy więcej komputerów niż adresów publicznych. Z względu na ogromną popularność maskowania adresów sieci wewnętrznej ta cecha jest coraz żadziej stosowana.

Jak działa protokół DHCP

Protokół DHCP opiera się na rozgłoszeniach. Są to rozgłoszenia na poziomie protokołu IP więc pakiety mogą być przekazywane przez routery pomiędzy sieciami (jeśli tylko zostaną odpowiednio do tego skonfigurowane).

Komunikacja klienta z serwerem DHCP wygląda następująco:

  1. W chwili uruchomienia klienta DHCP, oprogramowanie wysyła pakiet rozgłoszeniowy DHCP DISCOVER. Pakiet posiada adres IP nadawcy 0.0.0.0 oraz adresem odbiorcy 255.255.255.255 i numerem portu UDP 68
  2. Servery które są skonfigurowane do obsługi danego klienta odpowiadają również pakietem rozgłoszeniowym z adresem odbiorcy 255.255.255.255 oraz własnym adresem IP nadawcy. Serwer wysyła pakiet na port UDP 67. Pakiet z odpowiedzią nazywany jest DHCP OFFER i zawiera proponowaną konfigurację jaką serwer może przydzielić klientowi
  3. Klient po odebraniu oferty wysyła pakiet DHCP REQUEST. Pakiet nadal jest pakietem rozgłoszeniowym ponieważ klient nie posiada jeszcze praw do korzystania z nowego adresu IP. Dlatego też adres docelowy to nadal 255.255.255.255 a adres nadawcy 0.0.0.0. Wysyłając pakiet REQUEST rozgłoszeniem dajemy też informacje pozostałym serwerom DHCP że nie skorzystamy z ich ofert
  4. Ostatnim krokiem jest wysłanie przez serwer pakietu DHCP ACK. Pakiet posiada adres IP serwera w polu nadawcy, lecz adresem odbiorcy jest nadal 255.255.255.255 (więc jest to nadal komunikacja rozgłoszeniowa). Wysłanie tego pakietu kończy konfigurację
  5. Po tych krokach klient posiada już konfigurację z której może korzystać a dalsza komunikacja pomiędzy serwerem a klientem jest już za pomocom normalnych pakietów IP z użyciem nadanego adresu klienta.

Dalsza komunikacja pomiędzy serwerem a klientem związana jest z przedłużaniem oraz zwalnianiem dzierżawy (lease). Dzierżawa konfiguracji (głównie chodzi tu o adres IP) nadawana jest na określony czas. Przed upływem tego czasu klient powinien przedłużyć czas dzierżawy (z końcem dzierżawy klient przestaje mieć prawa do używania adresu).

W dalszej komunikacji klient może wysyłać następujące komunikaty:

  1. Klient może zrezygnować z dzierżawy wysyłając pakiet DHCP RELEASE co spowoduje zwolnienie dzierżawionego adresu IP. Klient nie może od tej chwili z niego korzystać a serwer może przydzielić go innemu klientowi.
  2. Dzierżawa wydawana jest przez serwer na określony czas. Po upływie połowy czasu klient powinien wysłać pakiet DHCP REQUEST z prośbą o odnowienie dzierżawy. Jeśli serwer odpowie ACK czas zostaje przedłużony. Jeśli natomiast serwer nie odpowie lub odmówi przedłużenia klient poprosi ponownie po upływie 85% czasu. Jeśli za tym razem znów nie zostanie udzielone przedłużenie powinien poprzez rozgłaszanie postarać się o nowy adres IP od dowolnego z serwerów DHCP
  3. Ponadto klient wysyłając DHCP REQUEST może prosić o ostatnio używany adres IP (przez to pomimo dynamicznego przydzielania adresów kmoputery posiadają przeważnie te same adresy)

Uwaga

Sever DHCP jest bardz ważnym i niskopoziomowym elementem sieci komputerowej. Błąd w konfiguracji może spowodować nie tylko błędy w działaniu naszej nowej sieci ale może doprowadzić do trudnych do wykrycia anomalii czy całkowicie unieruchomić sieć lokalną. Nie raz zdarzyło się że studenci lub pracownicy instalując nowy komputer uruchomili usługę DHCP ktora będąc przekonana że jest pełnoprawnym serverem DHCP zaczęła rozdawać adresy IP.

Pamiętaj więc żeby testować swoje konfiguracje w izolowanym segmencie sieci jesli nie jesteś podłączony do większej sieci której nie jesteś administratorem.

Plik konfiguracyjny dhcpd.conf

Serwer DHCP w knoppix / debian to dhcpd3. Plik konfiguracyjny znajduje się w

/etc/dhcp3/dhcpd.conf

Plik posiada sekcję ustawień globalnych oraz definicje hostów i podsieci. Zupełnie 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;
}
ignore unknown-clients;
host nazwa1 { hardware ethernet 00:06:1B:AA:BE:33; }
host nazwa2 { hardware ethernet 00:06:CC:DD:EE:11; }

Ustawienia globalne w tym wypadku mówią nam tylko o poziomie logowania komunikatów, czasach dzierżaw oraz że serwer DNS nie ma być informowany o ustawieniach klientów.

Sekcja podsieci posiada jak widać adres sieci oraz maskę. We wnętrzu mamy tylko dwa parametry. Pierwszy określa jakie adresy IP możemy nadawać, drugi mówi jaki jest adres IP gatewaya.

Ponadto zdecydowaliśmy że nieznane hosty będą ignorowane (to też jest parametr globalny) i zdefiniowaliśmy dwa hosty. Nie jest to konieczne ale przyda nam się do określenia jakie komputery będą obsługiwane przez nasz serwer. Problem w tym że uruchamiając w sieci uczelnianej serwery
DHCP możemy zablokować dostęp do prawdziwego serwera DHCP. Aby tego uniknąć będziemy określać które adresy MAC będą dopuszczane, a wszystkie pozostałe zignorujemy.

Poniżej zamieszczam listę przydatnych opcji które możemy wpisać w sekcji podsieci:

  • 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 możemy określać też na poziomie podsieci.

    default-lease-time 600;
    max-lease-time 7200;
    
  • Powyższe ustawienia pozwalają na ustawienie na komputerze klienta serwera WINS.

    option netbios-name-servers 192.168.192.55;
    
  • Typ rozwiązywania nazw netbios jako WINS a jeśli się nie uda to broadcast.

    option netbios-node-type 8;
    
  • Adresy IP serwerów DNS których ma używać klient.

    option domain-name-servers 192.168.192.77, 192.168.192.60;
    
  • Nazwa domeny wyszukiwania (zamiast kolos.math.uni.lodz.pl samo kolos).

    option domain-name "domena.testowa.pl";
    
  • Adres IP gateway'a.

    option routers 192.168.192.98;
    

Dalsza pomoc

Dokumentacja systemowa nie posiada wszystkich dostępnych opcji. Listę dostępnych opcji serwera możemy obejrzeć np. pod adresem:
http://home.t ele2.ch/spblinux/doc/dhcp-options.html

Aby zobaczyć komunikaty o błędach w konfiguracji oraz informacje pomocnicze proponuję uruchamianie serwera za pomocą polecenia:

dhcpd3 -s eth0

Zatrzymać serwer możemy poleceniem:

killall dhcpd3

W celu dokładnego przeanalizowania konfiguracji serwera polecam:

man dhcpd.conf
man dhcpd3

Opis konfiguracji klienta DHCP pod windows

W systemie windows karty sieciowe domyślnie konfigurowane są poprzez DHCP. Gdybyśmy mieli wątpliwości możemy wejść we właściwości połączenia sieciowego, następnie we właściwości protokołu TCP/IP. Aby konfiguracja karty była pobierana z DHCP należy zaznaczyć 2 "ptaszki".

Opis konfiguracji klienta DHCP pod linuxem

Aby nasz linux korzystał z DHCP musimy uruchomić klienta DHCP. Pod linuxem są to przeważnie pump lub dhcpcd. Należy tylko pamiętać którą kartę sieciową chcemy skonfigurować i podać jej nazwę jako parametr (domyślnie eth0).

Comments

Post new comment

Image CAPTCHA