ISC-DHCP

Fra Bitraf
Revisjon per 8. jun. 2022 kl. 12:36 av Royk (diskusjon | bidrag) (Filer)
Hopp til navigering Hopp til søk
Uferdig dokumentasjon
Dette oppdateres jevnlig (2022-06-08) - det er ikke ferdig.

Innledning

ISC DHCP er en utbredt DHCP-server utvikla på Unix/Linux. Denne kommer ferdigpakka i de fleste linux-distroer og BSD-varianter. Den ligger også i Homebrew for mac. For Windows, er DHCP-serevren som kommer med Windows Server ei bedre løsning.

Merk at dette ikke er relatert til enheters DHP-klient eller hvilket operativsystem som denne kjører på. En dhcp-server deler like godt ut IP-adresser til en klient på Linux, HP/UX eller Android, som den gjør til ei maskin med Windows 11, macOS eller MS/DOS.

Filer

Oppsettet beskrevet her er for Debian og relaterte distroer. For RHEL og varianter, samt SuSE eller BSD, vil oppsettet være noe forskjellig. Hovedprinsippene og programvaren er imidlertid de samme. Filene som nevnes her, er vanlige tekstfiler og redigeres fra Linux-kommandolinja med en editor som nano, vim, emacs, jed, pico, ed eller noe annet og enda mer obskrurt.

Filnavn Beskrivelse Type
/etc/default/isc-dhcp-server Parametre for å starte selve prosessen, dhcpd Konfig
/etc/rsyslog.d/30-dhcpd.conf Oppsett av logging av dhcp-greier til egen fil Konfig
/etc/dhcp/dhcpd.conf Konfigurasjon av DHCP-serveren med detaljer av hva som skal deles ut Konfig
/var/lib/dhcp/dhcpd.leases "Database" for allokerte IP-adresser med tilhørende data Data
/var/log/dhcp.log Logg Data

Videre følger konfigurasjonsfilene hver for seg med dokumentasjon sydd inn som kommentarer i filene. Ubrukte eller irrelevante linjer er fjerna.

/etc/default/isc-dhcp-server

# Vi lytter bare på enp7s0 for IPv4. IPv6 håndeteres av Neighbour Discovery (ND)
# og Router Advertisement (RA).
INTERFACESv4="enp7s0"
INTERFACESv6=""

/etc/rsyslog.d/30-dhcpd.conf

# Logg alt av local3 (normalt bare isc-dhcp) til egen fil
# Bindestrek foran filnavnet betyr async, dvs at alle skrivinger bufres i
# motsetning til å skrive dem rett til disk (sync). Async avlaster systemet
# vesentlig når det ikke er påkrevet at dataene skal rett til disk i
# sanntid.
# & stop betyr "ikke logg dette til noen annen fil"

local3.*        -/var/log/dhcpd.log
& stop

/etc/dhcp/dhcpd.conf

# vim:ts=4:sw=4:sts=4:et:ai:tw=80
#
# dhcpd.conf
#
# Eksempelkonfig for DHCP-server på Bitraf
#
# Merk at alt dette er for IPv4 og ikke relevant for IPv6.
#

# Domenenavn - sendes ut og settes på klientene
option domain-name "bitraf.no";

# Domenesøk - sånn at hvis noen prøver "ping p2k16", så slår pc-en
# automatisk opp p2k16.bitraf.no.
option domain-search "bitraf.no";

# DNS-server(e)
option domain-name-servers 1.1.1.1, 1.0.0.1;

# 1 time normal leietid, 4 timers maks leietid
default-lease-time 3600;
max-lease-time 14400;

# Ikke noe dyndns
ddns-update-style none;

# Vi er DHCP-sjef på dette nettet!
authoritative;

# Logg til local3, slik at loggene sendes til egen fil (se oppsett av rsyslogd
# over)
log-facility local3;

# Dette er nettet der vi skal dele ut adresser. Her kan vi også overstyre de
# globale versiene satt over for DNS-servere, domenenavn etc. Dette er
# kommentert ut under, siden vi ikke trenger det slike konfigfila er skrevet nå.
# For å se hva som ellers kan deles ut av parametre på DCHP, se man dhcp-options
subnet 10.13.37.0 netmask 255.255.255.0 {
    range 10.13.37.50 10.13.37.240;
    option routers 10.13.37.1;
#   option domain-name-servers one.one.one.one.
#   option domain-name "bitraf.no";
#   option domain-search "bitraf.no";
#   option routers 10.13.37.1;
#   option broadcast-address 10.13.37.255;
#   option ntp-servers 158.36.0.91, 129.240.2.6;
#   default-lease-time 600;
#   max-lease-time 7200;
}

# Her lister vi opp klienter med statiske adresser. De navngis og angis med
# MAC-adresse (hardware ethernet) og IPv4-adresse (fixed-address). Disse kan
# være definert innafor eller utafor 'range' satt i subnettet, men husk at hvis
# man tildeler noe innafor, kan det være en klient som har denne adressa
# allerede, kan det medføre IP-konflikt.

# Maskin dhcp-client01, plassert utafor 'range' over.
host dhcp-client01 {
    hardware ethernet    52:54:00:68:37:02;
    fixed-address        10.13.37.45;
}

# Maskin dhcp-client02, plassert innafor 'range' over.
host dhcp-client02 {
    hardware ethernet    52:54:00:68:37:01;
    fixed-address        10.13.37.55;
}

/var/lib/dhcp/dhcpd.leases

DHCP-database for DHCP-serveren i tekstformat. Denne kan lett brukes for å sjekke hvilke MAC-adresser som er tilordna hvilke IP-adresser.