DHCP & spol

Tom� Kotrla, xkotrla(at)fi.muni.cz


Obsah


Bezdiskov� stanice a mobiln� za��zen�

Jak vypl�v� z n�zvu, bezdiskov� stanice nemaj� zrovna moc mo�nost�, kde si lok�ln� pamatovat konfiguraci a dal�� informace. �e�en�m je bootov�n� ze s�t� s vyu�it�m server�, kter� stanic�m p�i startu konfiguraci sd�l� (BootP/DHCP), kter� jim poskytnou zavad�� a j�dro (TFTP) a kter� jim zp��stupn� ��st sv�ho diskov�ho prostoru (NFS).

I kdy� stanice disk m�, je vhodn� konfiguraci s�t� uchov�vat a spravovat centralizovan�. Pokud je takov� stanice nav�c mobiln�, chce se od n�, aby si sama zjistila konfigurace s�t�, ve kter� se pr�v� nach�z� (DHCP/IPv6).


Protokoly

BootP (Bootstrap Protocol)

Protokol BootP (RFC 951, 1532 a 1542) slou�� k z�skan� konfigurace. Klient ve sv�m po�adavku (BOOTREQUEST) uv�d� svou hardwarovou adresu a voliteln� svou IP adresu, jm�no serveru a po�adovan� boot soubor. Server v odpov�di (BOOTREPLY) po�le po�adovanou IP adresu, IP adresu gateway, svou IP adresu a jm�no.

DHCP (Dynamic Host Configuration Protocol)

Protokol DHCP (RFC 2131 a �ada dal��ch) roz�i�uje star�� protokol BootP, zachov�v� stejn� form�t zpr�v. Slou�� tak� k z�skan� konfigurace, nav�c m� informace jako: maska pods�t�, broadcastov� adresa, adresa routeru, dom�na, adresa DNS serveru atd.

Komunikace:
za��n� klient broadcastem po�adavku DHCPDISCOVER
server(y) odpov�daj� svou nab�dkou DHCPOFFER
klient si vybere a p��jme nab�dku posl�n�m DHCPREQUEST
server potvrd� DHCPACK nebo zam�tne DHCPNAK

Platnost p�id�len� IP adresy je v�t�inou omezen�, p�ed jej�m vypr�en�m mus� klient po��dat o prodlou�en�. Kdy� u� klient p�id�lenou IP adresu nepot�ebuje, pos�l� DHCPRELEASE zpr�vu.

TFTP (Trivial File Transfer Protocol)

Protokol TFTP (RFC 783 a 1350) slou�� pro p�enos dat po s�ti. Jedn� se o odleh�en� FTP, neumo��uje nap�. listov�n� adres��� a authentizaci. Spojen� se nav�e na portu 69 (UDP) a pokra�uje na n�hodn� zvolen�m portu.

Typy paket�:
RRQ ��dost o �ten�, obsahuje jm�no souboru a m�d (netascii, octet, mail)
WRQ ��dost o z�pis, obsahuje jm�no souboru a m�d (netascii, octet, mail)
DATA p�en�en� data, sou��st� ��slo bloku
ACK potvrzen� p�ijat�ho paketu, sou��st� ��slo bloku
ERROR chyba, obsahuje k�d chyby a zpr�vu


Konfigurace

Autorem protokolu DHCP je
Internet System Consortium, na jeho str�nk�ch lze nal�zt i voln� �i�itelnou implementaci. Ve v�t�in� distribuc� je k dispozici DHCP package. Instalace je tradi�n�, tak se j� zde ani nebudu v�ce v�novat.

DHCP server

Ke konfiguraci slou�� soubor /etc/dhcpd.conf, kter� nen� vytv��en automaticky p�i instalaci. Nejjednodu��� je zkop�rovat n�jak� konfigura�n� soubor (t�eba vzorov� /usr/share/doc/dhcp-<version-number>/dhcpd.conf.sample) a upravit jej pro vlastn� pot�ebu. D�le�it� je m�t subnet sekci pro ka�d� rozhran�. D�le je vhodn� vytvo�it pr�zdn� soubor /var/lib/dhcp/dhcpd.leases, ve kter�m si server p�i b�hu uchov�v� informace o p�id�len�ch IP adres�ch.

# cat /etc/dhcpd.conf
authoritative;
ddns-update-style none;

subnet 10.0.40.0 netmask 255.255.255.0 {
    range 10.0.40.100 10.0.40.199;
    default-lease-time 21600;
    max-lease-time 43200;

    option domain-name  "lab.fi.muni.cz";
    option routers 10.0.40.1;
    option ip-forwarding off;
    option broadcast-address 10.0.40.255;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 10.0.40.1;

    next-server 10.0.40.1;
    filename "pxelinux.0";

    host speo-beta {
        allow booting;
        hardware ethernet 00:01:02:19:09:F6;
        fixed-address 10.0.40.2;
   }
}

subnet 10.0.0.0 netmask 255.255.255.0 {
}

DHCP client

Konfigura�n�m souborem je /etc/dhclient.conf, v�t�inou posta�� defaultn� nastaven� (pr�zdn� soubor). Z�skan� informace jsou ulo�eny v souboru dhclient.leases, jsou pou�iv�ny nap��klad p�i nedostupnosti DHCP serveru. D�le uveden� obsah souboru /etc/sysconfig/network-scripts/ifcfg-eth0 nastavuje pou�it� DHCP pro konfiguraci s�t� p�i bootov�n�.

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# cat /usr/share/doc/dhclient-3.0pl2/dhclient.conf.sample
send host-name "andare.fugue.com";
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
send dhcp-lease-time 3600;
supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
script "/etc/dhclient-script";
media "-link0 -link1 -link2", "link0 link1";
reject 192.33.137.209;

alias {
  interface "ep0";
  fixed-address 192.5.5.213;
  option subnet-mask 255.255.255.255;
}

lease {
  interface "ep0";
  fixed-address 192.33.137.200;
  medium "link0 link1";
  option host-name "andare.swiftmedia.com";
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.33.137.255;
  option routers 192.33.137.250;
  option domain-name-servers 127.0.0.1;
  renew 2 2000/1/12 00:00:01;
  rebind 2 2000/1/12 00:00:01;
  expire 2 2000/1/12 00:00:01;
}

TFTP

Zn�mou implementac� TFTP je
tftp-hpa. Server nem� ��dn� konfigura�n� soubor, pro zm�nu nastaven� je pot�eba editovat spou�t�c� skript /etc/xinetd.d/tftp. D�le�it� je slu�bu povolit a nastavit dob�e adres�� pro chrootovan� b�h.
# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

PXELinux

PXELinux funguje na principu postupn�ho zav�d�n�. Bootuj�c� stanice nejd��ve zjist� konfiguraci s�t�, s n� i jm�no souboru zavad��e (pxelinux.0), kter� st�hne pou�it�m TFTP. N�sledn� je st�hnuto a spu�t�no j�dro. Konfigura�n� soubory jsou v adres��i pxelinux.conf, jejich jm�na jsou hexadecim�ln�m z�pisy adres stanic (nebo ��st adresy), jejich� konfiguraci obsahuj�. Pokud se pro stanici nenajde odpov�daj�c� soubor, pou�ije se nastaven� z default.

# ktera konfigurace sa ma spustit defaultne
DEFAULT nfs

# cekej 3 sekundy pred natahovanim jadra
TIMEOUT 30

# zobraz boot prompt
PROMPT 	1
LABEL disk
	 # cesty jsou relativne k TFTP server root
	KERNEL 10.0.40.2/bzImage
	 # parametry jadra
	APPEND	root=/dev/hda3
	 # pripojit k parametrum jadra i informace o siti
	 # IP stanice,bootserver,gateway,netmask,
	IPAPPEND 1
LABEL nfs
	KERNEL 10.0.40.2/bzImage
	APPEND root=/dev/nfs rw nfsroot=10.0.40.1:/tftpboot/10.0.40.2
	IPAPPEND 1

Odkazy