PingLord Posted July 14, 2012 Report Posted July 14, 2012 Azi avem tutorialul despre DHCP :1.Protocolul DHCP2.Compilare si instalare server3.Configurare server1.Protocolul DHCP (Dynamic Host Configuration Protocol) este definit in RFC2131 si se foloseste pentru configurarea automata a placii de retea (IP, Network Mask, Default Gateway, DNS Servers etc). DHCP ruleaza client-server, serverul fiind acela care inchiriaza o anumita configuratie clientului pentru o anumita perioada de timp numita "lease time".DHCP este urmasul protocolului BOOTP.Toate sistemele de operare moderne includ un client de DHCP. Cel mai folosit server DHCP OpenSource este cel de la ISC (Internet System Consortium).Modul de operare se imparte in 4 etape distincte si exista 4 tipuri de mesaje care se schimba intre client si server :1. DHCP DiscoveryClientul trimite DHCP Discovery folosind IP destinatie de tip "limited broadcast" si anume 255.255.255.255 iar ca IP sursa 0.0.0.0Se foloseste protocolul UDP. Clientul utilizeaza portul 68, iar serverul 67. Acestea nu trebuie sa fie filtrate de vreun firewall.IP Sursa=0.0.0.0IP Destinatie=255.255.255.255Port Sursa=68Port Destinatie=672. DHCP OfferServerele DHCP (pot exista mai multe intr-un LAN) care au primit DHCP Discovery raspund cu un mesaj numit DHCP Offer in care ofera clientului o anumita configuratie (IP, Masca, DG, DNS etc). Configuratia poate fi statica, stabilita de catre administrator in functie de MAC.IP Sursa=Server_IPIP Destinatie=255.255.255.255Port Sursa=67Port Destinatie=683. DHCP RequestClientul alege o oferta (daca exista mai multe servere de la care a primit) trimitand un pachet numit DHCP Request - in general pe prima primita - si trimite un broadcast in care isi face cunoscuta alegerea. In pachet se gaseste IP-ul serverului ales astfel incat toate celelalte servere sa cunoasca alegerea clientului si sa elibereze oferta facuta in caz ca nu a fost aleasa de client.IP Sursa=0.0.0.0IP Destinatie=255.255.255.255Port Sursa=68Port Destinatie=674. DHCP AcknowledgmentServerul ales trimite DHCPACK clientului in care precizeaza "lease time" precum si alte informatii necesare.IP Sursa= DHCP_Server_IPIP Destinatie=255.255.255.255Port Sursa=67Port Destinatie=68In momentul in care "lease time" pentru oferta primita expira, clientul trebuie sa reinnoiasca configuratia de la server. Acesta trimite doar DHCP Request pentru aceiasi configuratie, iar serverul raspunde cu DHCP ACK.2.Compilare si instalare serverISC este o organizatie non-profit al carei scop este dezvoltarea de software pentru Internet. Cele mai cunoscute aplicatii sunt serverul DNS numit BIND si serverul DHCP. Ambele sunt si cele mai folosite servere de DNS respectiv de DHCP OpenSource. ISC DHCP reprezinta o suita de programe (dhcp daemon, dhpc client si dhcp relay agent) care implementeaza toate aspectele protocolului DHCP definit in RFC2131. Pasi de urmat :1.Download sursele ultimei versiuni ISC DHCP de pe site-ul producatorului Internet Systems Consortium | Internet Systems Consortiumwget -c http://ftp.isc.org/isc/dhcp/dhcp-3.0.7.tar.gz2.Decomprimare si dezarhivare arhivatar -xzvf dhcp-3.0.7.tar.gz3.Rularea scriptului configure care verifica sistemul si anume daca acesta contine toate componentele necesare compilarii si instalarii serverului DHCP. ./configure4.CompilareaRecomand compilarea oricarei aplicatii de catre un user neprivilegiat.In urma compilarii rezulta din fisierele sursa fisiere executabilemake5.InstalareaInstalarea presupune doar mutarea fisierelor executabile rezultate in urma compilarii in directoarele corespunzatoare precum /sbin/, /usr/bin etc. Comanda poate fi executata doar de rootmake install3.Configurarea serveruluiCa si in cazul celorlalte servere configurarea serverului dhcp presupune editarea catorva fisiere text de configurare.Serverul ISC DHCP foloseste 2 fisiere:1. In fisierul /var/state/dhcp/dhcpd.leases se pastreaza informatii despre configuratiile inchiriate deja clientilor, leased time pentru fiecare etc FOARTE IMPORTANT : Dupa instalarea serverului fisierul /var/state/dhcp/dhcpd.leases nu exista.El trebuie creat manual.touch /var/state/dhcp/dhcpd.leases2. Fisierul de configurare al serverului care este by default /etc/dhcpd.confExemplu /etc/dhcpd.conf :authoritative; #(diez) reprezinta un comentariu ddns-update-style interim; #interim sau none. DHCPD face update la fisierul zona al clientului de pe serverul DNS#ignore client-updates;#allow client-updates; #vezi man dhcpd.confsubnet 192.168.0.0 netmask 255.255.255.0 { #stabileste subnetul pentru care va furniza serviciirange 192.168.0.50 192.168.0.60; #range-ul de IP furnizatrange 192.168.0.100 192.168.0.120; #un al doilea range#allow unknown-clients;default-lease-time 600; #lease time default daca clientul nu cere un anumit timpmax-lease-time 7200; #max lease timeoption routers 192.168.0.1;option subnet-mask 255.255.255.0;option domain-name-servers 193.231.236.25,193.231.236.30;option domain-name "pinglord.gov";host pc1 { hardware ethernet 00:03:47:F6:B0:44; fixed-address 192.168.0.125; option routers 192.168.0.10; #primeste Default Gateway diferit }}Detalii fisier dhcpd.conf:• fiecare linie se termina cu ";" (punct si virgula)• sintaxa este extrem de sensibila, orice caracter precum ; (punct si virgula) lipsa reprezinta o eroare fatala;• semnul "#" (diez) inseamna un comentariu;• subnet 192.168.0.0 netmask 255.255.255.0 - se stabileste subnetul din care serverul va furniza IP-uri• range 192.168.0.50 192.168.0.60; - se stabileste range-ul din care serverul va funiza IP-uri. In exemplul nostru primul client va primi 192.168.0.50, al doilea 192.168.0.51 etc. Pot exista mai multe directive range. Atentie ! Ip-urile setate static pe alte hosturi trebuie excluse;• option routers 192.168.0.1; - stabileste Default Gateway oferit clientilor;• option subnet-mask 255.255.255.0; - stabileste masca retelei oferite clientilor• option domain-name "pinglord.gov"; - stabileste un domeniu care va fi oferit clientilor, acestia facand parte din el;• daca se doreste furnizarea unei configuratii in functie de MAC-ul clientului, pentru FIECARE astfel de client in fisierul de configurare al serverului si anume dhcpd.conf trebuie sa apara un container de tip host in care se specifica MAC-ul precum si configuratia oferita. Daca nu se specifica un anumit parametru (exemplu servere DNS), clientul respectiv va primi serverele DNS specificate in sectiunea globala;• allow unknown-clients; - specifica daca serverul va oferi configuratie clientilor al caror MAC nu se gaseste intr-un container de tip host;3.Pornire serverRuleaza serverul in foreground cu trimiterea mesajelor de debug la consoladhcpd -d –fOptiuni dhcpd:-cf file.conf #specificarea unui fisier de configurare alternativ-p port #specifica un alt port pe care sa asculte serverul. By default foloseste portul UDP 67.-t #testeaza fisierul de configurare fara a porni serverul.Pornirea serverului in modul Debug are loc doar dupa instalare sau in perioade de teste pentru a observa modul de comunicatie al acestuia cu clientii. Pe un server stabil, serverul DHCP trebuie sa porneasca automat la butare folosind fisierele de management ale serviciilor (/etc/inid.d/). In cazul compilarii, fisierul care porneste serverul nu exista si trebuie creat. O sa fac o modificare mai tarziu si o sa va arat cum se face un script in /etc/init.d/ Quote