BOOTP (Bootstrap Protocol) je definován v RFC 951. Slouží k nastavování síťových parametrů s pomocí serveru bez zásahu uživatele. To umožňuje centralizovanou správu síťových adres, bez nutnosti vytvářet na každém počítači v síti konfigurační soubor.
DHCP (Dynamic Host Configuration Protocol) je definován v RFC 2131
(starší verze v RFC 1541). DHCP je založený na BOOTP, který rozšiřuje o další
možnosti, a je s BOOTP zpětně kompatibilní.
V současné době existují tři různí DHCP klienti pro Linux: dhcpcd, pump a dhclient.
Dhcpcd je možné najít na /ftp://ftp.phystech.com/pub/.
Kompiluje se standardně: ./configure
, make
a make install
.
Po kompilaci můžeme dhcpcd
spustit. Dhcpcd
defaultně pracuje s rozhraním "eth0", takže stačí napsat dhcpcd
.
Dhcpcd by měl získat od DHCP serveru IP adresu a některé další údaje,
nakonfigurovat rozhraní "eth0" a přepnout se na pozadí. Jestli všechno
proběhlo správně zjistíme pomocí ifconfig
, kde by měla ve výpisu
být u eth0 v položce inet adr smysluplná IP adresa.
Pokud všechno funguje jak má, můžeme přidat dhcpcd
do
startovacích skriptů.
Po rozbalení archivu se zkompiluje pomocí
./configure
, make
a make install
.
Konfigurační soubor dhcpd je /etc/dhcpd.conf
Příklad konfiguračního souboru:
# Sample /etc/dhcpd.conf default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.org"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }Tato konfigurace znamená, že DHCP sever přidělí klientovi IP adresu z rozsahu 192.168.1.10-192.168.1.100 nebo 192.168.1.150-192.168.1.200. Dále mu sdělí, že by měl používat 255.255.255.0 jako masku podsítě, 192.168.1.255 jako adresu pro všesměrové vysílání, 192.168.1.254 jako router/gateway a 192.168.1.1 a 192.168.1.2 jako DNS servery.
Pokud chceme přidělit specifickou IP adresu na základě ethernetové adresy použijeme:
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; }
Protokol BOOTP je možné použít pro zavedení operačního systému po síti na bezdiskovou pracovní stanici.
Pro svůj chod pořebuje bezdisková stanice:
Pro získáni identity lze použít protokol BOOTP (nebo DHCP), K přenosu operačního systému se používá TFTP (Trivial File Transfer Protocol). TFTP je protokol pro přenos souborů jako FTP, ale proti FTP je hodně zjednodušený. Neobsahuje autentizaci a běží nad UDP. Kořenový systém souborů lze připojit pomocí NFS.
Síťová karta na bezdiskové stanici musí podporovat bootování po síťi. Typicky obsahuje paměť ROM, ve kreré je program (Net Loader), který obsluhuje BOOTP dotazy a TFTP a pak předá řízení operačnímu systému.
BOOTP
BOOTP se spouští většinou přes inetd přidáním řádku
bootps dgram udp wait root /usr/sbin/in.bootpd bootpddo /etc/inetd.conf.
Dále je potřeba namapovat ethernetové adresy na IP adresy. Toto mapování obsahuje soubor /etc/bootptab.
Příklad /etc/bootptab
global.prof:\ :sm=255.255.255.0:\ :ds=192.168.1.5:\ :gw=192.168.1.19:\ :ht=ethernet:\ :bf=linux: machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140 machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141 machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142global.prof obsahuje společné nasavení, kde
TFTP
Tftpd se normálně startuje přes inetd přidáním řádku
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /tftpbootdo /etc/inetd.conf.
Protože TFTP neobsahuje autentizaci je bezpečnější spouštět tftpd v chrootovaném prostředí (parametr -s se jménem adresáře).
NFS
Z mnoha důvodů není dobrý nápad používat na klientech kořenový adresář serveru jako kořenový adresář. Doporučuje se vytvořit nový kořenový adresář pro každou bezdiskovou stanici zvlášt do nějakého podadresáře (např. /export/ip_počítače).
Pak stačí vytvořit soubor /etc/exports
, který bude obsahovat
řádky jako například tento:
/export/192.168.1.100 aldebaran.foo.com(rw,no_root_squash)