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