Feb 09 2006

DHCP Server

Aceasta pagina contine un set de instructiuni care urmate pas cu pas duc la intalalarea in timp foarte scurt a unui server DHCP.

DHCP – prezentare

DHCP (Dynamic Host Configuration Protocol) este un protocol prin care serverul aloca automat adrese IP clientilor . Serverul DHCP aloca adresele IP astfel incat calculatoarele din retea nu mai trebuie sa seteze manual adresa de IP.

Necesar :

  • dhcpd (dhcp-2.0b1pl6-6.i386.rpm or newer)
  • LAN

Kernelul Linux are componentele necesare compilate in el. Pe partea de retea am doua placi de retea :

  1. eth0 – conectata la Internet
  2. eth4 – conectata la LAN

Daca ai mai multe interfete de retea, trebuie sa ai grija pentru ce interfete activezi serviciul DHCP . In cazul meu, doresc ca serverul DHCP sa raspunda cererilor de pe eth4 (LAN)

Instalare DHCP

In primul rand trebuie instalat serverul DHCP.

  • dhcp-2.0pl5-8.i386.rpm

Acest pachet ar trebui sa fie pe CD-urile distributiei, altfel le poti gasi la http://ww.rpmfind.net sau chiar pe pagina DHCP http://www.isc.org/products/DHCP/.

Configurare /etc/dhcpd.conf

Dupa instalarea DHCP (RPM sau din sursa), trebuie creat fisierul de configurare /etc/dhcpd.conf. Sa pesupunem ca adresele interne LAN sunt 192.168.1.x, atunci fisierul de configuratie trebuie sa arate cam asa :

# /etc/dhcpd.conf
# DHCPD Configuration
default-lease-time 86400;       # one day
max-lease-time 86400;           # one day
ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.2 192.168.1.250;

        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.1;

	## The IP address of the name server
	##
        option domain-name-servers 192.168.1.1;
        option domain-name "mydomain.com";

	## If you have Samba acting as a WINS server
	##
        option netbios-name-servers 192.168.0.1;
        option netbios-dd-server 192.168.1.1;
        option netbios-node-type 8;
        option netbios-scope "";
}

Am Samba si DNS pe masina Linux, de aceea si folosesc extra-optiuni pentru a specifica acest lucru. Pentru setarile tale (sigur diferite de ale mele :) ):

  • daca DNS-urile tale sunt 123.123.123.123 si 123.123.123.124 atunci :option domain-name-servers 123.123.123.123 123.123.123.124;
  • Daca nu ai Samba pe server, ruland ca WINS server primar, atunci trebuiesc comentate liniile de genul “option netbios-”

Configurare /etc/rc.d/init.d/dhcpd

Daca ai instalat DHCP din RPM, vei avea un script de start /etc/rc.d/init.d/dhcpd. care va trebui putin modificat pentru a functiona; liniile cu bold sunt schimbarile facute de mine :

#!/bin/sh
#
# dhcpd         This shell script takes care of starting and stopping
#               dhcpd.
#
# chkconfig: 2345 65 35
# description: dhcpd provide access to Dynamic Host Control Protocol.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/sbin/dhcpd ] || exit 0
[ -f /etc/dhcpd.conf ] || exit 0

# See how we were called.
case "$1" in
  start)
        # Start daemons.
        echo -n "Starting dhcpd: "
        /sbin/route add -host 255.255.255.255 dev eth4 2> /dev/null
        daemon /usr/sbin/dhcpd eth4
        echo
        touch /var/lock/subsys/dhcpd
        ;;
  stop)
        # Stop daemons.
        echo -n "Shutting down dhcpd: "
        /sbin/route del -host 255.255.255.255 dev eth4 2> /dev/null
        killproc dhcpd
        echo
        rm -f /var/lock/subsys/dhcpd
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  status)
        status dhcpd
        ;;
  *)
        echo "Usage: dhcpd {start|stop|restart|status}"
        exit 1
esac

exit 0

Fisierul de configurare implicit poate fi diferit de la o versiune la alta a pachetului, dar in principiu asa arata :)

Am adaugat linia /sbin/route add -host 255.255.255.255 dev eth4 2> /dev/null. Pentru mai multe detalii, vezi documentatia DHCP . Am mai adaugat eth4 la sfarsit pentru a asculta numai interfata eth4 . Modifica acest lucru in concordanta cu reteaua ta :) .

Pornirea serverului DHCP

Daca serverul a fost instalat cu RPM, atunci :

# /etc/rc.d/init.d/dhcpd start

Altfel se porneste manual cu :

route add -host 255.255.255.255 dev eth4 2> /dev/null
dhcpd eth4

Si gata ! Acum doar trebuiesc configurate calculatoarele din LAN sa foloseasca DHCP.

Mai multe detalii :

Pentru mai multe informatii si/sau resurse :

Comentarii