===== 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