===== DHCP =====
* Komunikaty: discover, offer, request, nack, ack, release
* Przepływ wiadomości dla przyznawania, odnawiania i zwalniania adresu - https://docs.oracle.com/cd/E23823_01/html/816-4554/dhcp-overview-3.html
* Zakres adresów, pula (address pool)
* Dzierżawa (lease)
* Opcje (options) przekazywane przez DHCP - [[http://pl.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Parametry_konfiguracji_przekazywane_do_klienta|[1]]] [[https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml|[2]]]
* Stały adres IP a DHCP
Przykładowa wymiana pakietów między serwerem DHCP a klientem: {{:sk1:dhcp.pcap|}}
==== [ekstra] Serwer DHCP (na przykładzie ISC DHCP server) ====
- Przed konfiguracją serwera ustawi maskaradę adresów dla pakietów wychodzących prze br0 i pozwól na przekazywanie pakietów: \\ ''iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE'' \\ ''sysctl net.ipv4.conf.all.forwarding=1''
- Zainstaluj ISC DHCP server [[https://www.isc.org/downloads/dhcp/|[1]]] [[https://en.wikipedia.org/wiki/DHCPD|[2]]] komendą: \\ ''zypper install dhcp-server''
- Stwórz plik dzierżaw (w domyślnej lokalizacji): \\ ''touch /var/lib/dhcp/db/dhcpd.leases''
- Na podstawie poniższego przykładu stwórz plik konfiguracyjny ''dhcpd.conf'':
#ddns-update-style none;
#default-lease-time 600;
#max-lease-time 7200;
#option domain-name "cs.put.poznan.pl";
option domain-name-servers 150.254.32.129, 150.254.30.30, 150.254.5.4;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.2 10.0.0.12;
option routers 10.0.0.1;
}
#host example {
# hardware ethernet 02:00:00:00:00:00;
# fixed-address 10.0.0.15;
#}
- Skonfiguruj interfejs na którym będzie działać serwer DHCP, przykładowo dla ''p4p2'':\\ ''ip link set p4p2 up'' \\ ''ip addr add 10.0.0.1/24 dev p4p2''
- Uruchom serwer DHCP w trybie diagnostycznym (''-d'') z właściwym plikiem konfiguracyjnym (''-cf''): \\ ''dhcpd -d -cf dhcpd.conf p4p2''
Innym często wykorzystywanym serwerem DHCP jest program łączący funkcje serwera DHCP i proxy DNS – dnsmasq https://pl.wikipedia.org/wiki/Dnsmasq
==== Klienty DHCP ====
Istnieje wiele implementacji klientów DHCP, przykładowe:
* dhclient – https://www.isc.org/downloads/dhcp/ – fragment ISC DHCP
* żądanie adresu IP: ''dhclient [-d] [-v] //eth0//''
* uwolnienie adresu IP: ''dhclient -r //eth0//''
* dhcpcd – https://roy.marples.name/projects/dhcpcd – popularny klient DHCP dla Linuksów
* żądanie adresu IP: ''dhcpcd [-d] [-d] //eth0//''
* uwolnienie adresu IP: ''dhcpcd -k //eth0//''
* udhcpc – https://en.wikipedia.org/wiki/Udhcpc – fragment busyboxa, popularny na urządzeniach wbudowanych
* żądanie adresu IP: ''udhcpc -i //eth0//''
===== Konfiguracja adresów IP bez DHCP =====
Zeroconf (http://en.wikipedia.org/wiki/Zero_configuration_networking), [[https://en.wikipedia.org/wiki/Link-local_address|adres link-local]] (blok adresów 169.254.0.0/16), APIPA, Avahi, Bonjour