Wyszukiwanie w witrynie

Jak skonfigurować serwer i klienta DHCP w CentOS i Ubuntu


DHCP (skrót od Protokół dynamicznej konfiguracji hosta) to protokół klient/serwer, który umożliwia serwerowi automatyczne przypisywanie adresu IP i innych powiązanych parametrów konfiguracyjnych (takich jak maska podsieci i brama domyślna) do klienta w sieci.

DHCP jest ważny, ponieważ uniemożliwia administratorowi systemu lub sieci ręczne konfigurowanie adresów IP dla nowych komputerów dodawanych do sieci lub komputerów przenoszonych z jednej podsieci do drugiej.

Adres IP przypisany przez serwer DHCP klientowi DHCP jest objęty „dzierżawą”, czas dzierżawy zwykle różni się w zależności od tego, jak długo komputer kliencki prawdopodobnie będzie wymagał połączenia lub konfiguracji DHCP.

W tym artykule wyjaśnimy, jak skonfigurować serwer DHCP w dystrybucjach CentOS i Ubuntu Linuksa, aby automatycznie przydzielał adres IP komputerowi klienckiemu.

Instalowanie serwera DHCP w CentOS i Ubuntu

Pakiet serwera DCHP jest dostępny w oficjalnych repozytoriach głównych dystrybucji Linuksa, instalacja jest dość prosta, wystarczy uruchomić następujące polecenie.

yum install dhcp		        #CentOS
sudo apt install isc-dhcp-server	#Ubuntu

Po zakończeniu instalacji skonfiguruj interfejs, na którym demon DHCP ma obsługiwać żądania, w pliku konfiguracyjnym /etc/default/isc-dhcp-server lub /etc/sysconfig/dhcpd.

vim /etc/sysconfig/dhcpd		 #CentOS
sudo vim /etc/default/isc-dhcp-server	 #Ubuntu

Na przykład, jeśli chcesz, aby demon DHCPD nasłuchiwał na eth0, ustaw go za pomocą poniższej dyrektywy.

DHCPDARGS=”eth0”

Zapisz plik i wyjdź.

Konfigurowanie serwera DHCP w CentOS i Ubuntu

Główny plik konfiguracyjny DHCP znajduje się pod adresem /etc/dhcp/dhcpd.conf i powinien zawierać ustawienia tego, co i gdzie robić, oraz wszystkie parametry sieciowe, które mają zapewnić klientom.

Plik ten zasadniczo składa się z listy stwierdzeń pogrupowanych w dwie szerokie kategorie:

  • Parametry globalne: określ, jak wykonać zadanie, czy wykonać zadanie lub jakie parametry konfiguracji sieci mają zapewnić klientowi DHCP.
  • Deklaracje: zdefiniuj topologię sieci, stan, w którym znajdują się klienci, oferuj adresy klientom lub zastosuj grupę parametrów do grupy deklaracji.

Teraz otwórz i edytuj plik konfiguracyjny, aby skonfigurować serwer DHCP.

------------ On CentOS ------------ 
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf	
vi /etc/dhcp/dhcpd.conf	

------------ On Ubuntu ------------
sudo vim /etc/dhcp/dhcpd.conf				

Zacznij od zdefiniowania parametrów globalnych, które są wspólne dla wszystkich obsługiwanych sieci, na górze pliku. Będą one miały zastosowanie do wszystkich deklaracji:

option domain-name "tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600; 
max-lease-time 7200;
authoritative;

Następnie musisz zdefiniować podsieć dla podsieci wewnętrznej, tj. 192.168.1.0/24, jak pokazano.

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        option domain-search            "tecmint.lan";
        option domain-name-servers      192.168.1.1;
        range   192.168.10.10   192.168.10.100;
        range   192.168.10.110   192.168.10.200;
}

Pamiętaj, że hosty wymagające specjalnych opcji konfiguracyjnych mogą być wymienione w instrukcjach hostów (patrz strona podręcznika dhcpd.conf).

Teraz, gdy skonfigurowałeś demona serwera DHCP, musisz na jakiś czas uruchomić usługę i włączyć jej automatyczne uruchamianie przy następnym uruchomieniu systemu, a także sprawdzić, czy działa i działa, używając poniższych poleceń.

------------ On CentOS ------------ 
systemctl start dhcpd
systemctl enable dhcpd
systemctl enable dhcpd

------------ On Ubuntu ------------
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl enable isc-dhcp-server

Następnie zezwól na żądania kierowane do demona DHCP w zaporze sieciowej, który nasłuchuje na porcie 67/UDP, uruchamiając.

------------ On CentOS ------------ 
firewall-cmd --zone=public --permanent --add-service=dhcp
firewall-cmd --reload 

#------------ On Ubuntu ------------
sudo ufw allow 67/udp
sudo ufw reload

Konfiguracja klientów DHCP

Na koniec musisz sprawdzić, czy serwer DHCP działa prawidłowo. Zaloguj się do kilku komputerów klienckich w sieci i skonfiguruj je tak, aby automatycznie otrzymywały adresy IP z serwera.

Zmodyfikuj odpowiedni plik konfiguracyjny dla interfejsu, na którym klienci będą automatycznie odbierać adresy IP.

Konfiguracja klienta DHCP w CentOS

W CentOS pliki konfiguracyjne interfejsu znajdowały się w /etc/sysconfig/network-scripts/.

vim /etc/sysconfig/network-scripts/ifcfg-eth0

Dodaj poniższe opcje:

DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

Zapisz plik i zrestartuj usługę sieciową (lub zrestartuj system).

systemctl restart network

Konfiguracja klienta DHCP w systemie Ubuntu

W Ubuntu 16.04 cały interfejs możesz skonfigurować w pliku konfiguracyjnym /etc/network/interfaces.

   
sudo vi /etc/network/interfaces

Dodaj w nim te linie:

auto  eth0
iface eth0 inet dhcp

Zapisz plik i uruchom ponownie usługi sieciowe (lub zrestartuj system).

sudo systemctl restart networking

W Ubuntu 18.04 siecią zarządza program Netplan. Musisz edytować odpowiedni plik np. w katalogu /etc/netplan/.

sudo vim /etc/netplan/01-netcfg.yaml 

Następnie włącz dhcp4 w określonym interfejsie, na przykład w Ethernets, ens0 i skomentuj konfiguracje związane ze statycznym adresem IP:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens0:
      dhcp4: yes

Zapisz zmiany i uruchom następujące polecenie, aby zastosować zmiany.

sudo netplan apply 

Więcej informacji znajdziesz na stronach podręcznika dhcpd i dhcpd.conf.

man dhcpd
man dhcpd.conf

W tym artykule wyjaśniliśmy, jak skonfigurować serwer DHCP w dystrybucjach CentOS i Ubuntu Linux. Jeśli potrzebujesz dodatkowych wyjaśnień w jakimkolwiek punkcie, możesz zadać pytanie za pomocą poniższego formularza opinii lub po prostu podzielić się z nami swoimi uwagami.