DHCP
(→Példa-konfiguráció) |
(→A működés elve) |
||
14. sor: | 14. sor: | ||
A DHCP broadcast-alapú protokoll, leegyszerűsítve úgy működik, hogy a host "belekiabál" (=broadcast) a hálózatba, hogy címet kér. A DHCP szerver feladata az ilyen kérésekre figyelni, és IP-címet, továbbá -nem kötelező, de praktikusan mindig használt- opciókat ajánlani a hosztnak. |
A DHCP broadcast-alapú protokoll, leegyszerűsítve úgy működik, hogy a host "belekiabál" (=broadcast) a hálózatba, hogy címet kér. A DHCP szerver feladata az ilyen kérésekre figyelni, és IP-címet, továbbá -nem kötelező, de praktikusan mindig használt- opciókat ajánlani a hosztnak. |
||
− | A címek kiosztása csak bizonyos ideig érvényes, ezt az időt a szerver(t konfiguráló személy) határozza. Ha az ún "dhcp lease" érvényessége lejárt, akkor a kliensnek el kell dobnia az IP-címét, és újat kell igényelnie. |
+ | A címek kiosztása csak bizonyos ideig érvényes, ezt az időt a szerver(t konfiguráló személy) határozza meg. Ha az ún "dhcp lease" érvényessége lejárt, akkor a kliensnek el kell dobnia az IP-címét, és újat kell igényelnie. |
===A három fontos szereplő: szerver, kliens(ek), relay agent=== |
===A három fontos szereplő: szerver, kliens(ek), relay agent=== |
A lap 2007. március 11., 23:19-kori változata
Tartalomjegyzék[elrejtés] |
1 DHCP
A Dynamic Host Configuration Protocol elsősorban arra szolgál, hogy hostok egyedi címeket kaphassanak a hálózaton. Pillanatnyi levegővétel után el lehet azon merengeni, hogy jelen esetben a 'host' elnevezés alatt mi minden is érthető: érthetünk alatta egy PC-t, IP-telefont, Access Pointot stb. Egyre kevésbé lepődünk meg a különféle hálózati interfészekkel végrehajtott mutatványokon, és így egyre hálátlanabb feladat lenne ékes anyanyelvünkön mindent lefedő kifejezést találni. Gyakorlati jelentősége úgyis inkább az egyediségnek van: a kézi konfiguráció a hostok számának növekedésével egyre körülményesebbé, a hibák elkerülésének a szempontjából pedig egyre bizonytalanabbá válik.
A protokoll lehetővé teszi, hogy ún. opciók segítségével további információkat is közöljünk a hostokkal; a használhatóság nem kis részben innen fakad. Opciók lehetnek az általában elvárt default gateway, névfeloldáshoz használandó DNS szerver IP-címei; érdemes tudni, hogy a lista meglepően hosszú, és például arra is "megkérhetünk" hostot, hogy az ip forwarding bekapcsolásával kezdjen el routerként üzemelni.
1.1 A felhasználás leggyakoribb módja
Legegyszerűbb esetben annyit szoktunk egy DHCP szervertől elvárni, hogy IP-címet, default gateway IP-címét, DNS szerver IP címét legyen képes átadni egy hostnak. Ha precízek akarunk lenni, akkor tartsuk észben: a DHCP kliensnek, amit a host futtat.
1.2 A működés elve
A DHCP broadcast-alapú protokoll, leegyszerűsítve úgy működik, hogy a host "belekiabál" (=broadcast) a hálózatba, hogy címet kér. A DHCP szerver feladata az ilyen kérésekre figyelni, és IP-címet, továbbá -nem kötelező, de praktikusan mindig használt- opciókat ajánlani a hosztnak.
A címek kiosztása csak bizonyos ideig érvényes, ezt az időt a szerver(t konfiguráló személy) határozza meg. Ha az ún "dhcp lease" érvényessége lejárt, akkor a kliensnek el kell dobnia az IP-címét, és újat kell igényelnie.
1.3 A három fontos szereplő: szerver, kliens(ek), relay agent
A DHCP szervert a dhcp csomag tartalmazza. Azért felel, hogy a DHCP kliensek kéréseire figyeljen és a konfigurációnak (erről lesz még szó) megfelelően kiszolgálja azokat.
Kliensből többféle közül válogathatunk: dhcpcd, pump, udhcpc, dhclient. Amennyiben nincs semmi speciális igényünk, akkor válasszuk a dhcpcd-t, esetleg pump-ot.
Magyarázatot a relay agent igényelhet. Fontos tudni, hogy a DHCP broadcast-alapú protokoll, következésképp a DHCP szerver csak egy broadcast domainen belül képes a kéréseket kiszolgálni. Broadcast domainek a hálózatnak azok a részei, ahol érvényesek a broadcast üzenetek. Broadcast üzeneteket routerek nem továbbítanak; egyszerűen összekötött switchek viszont broadcast domaineket fognak alkotni. (Kitérő: a hálózatok annál hatékonyabban működnek, minél kisebbek a broadcast domainek. Egyre népszerűbb sportág a LAN-okat VLAN szegmensekre szegmentálni -ha kell, ha nem-. Fontos tudni, hogy a VLAN-ok külön broadcast domaineket alkotnak.)
Térjünk vissza a relay agent magyarázatára. A hálózatunk nagyon könnyen állhat több különálló broadcast domainből, például távoli fiókirodák vagy VLAN-okra szegmentált helyi hálózat esetén általában ez a helyzet. (Kivéve, ha L2TP vagy "tap" drivert használó VPN megoldást használunk. Ez általában nem cél.) Az egyes broadcast domainekbe telepíthetünk külön DHCP szervereket, vagy alkalmazhatjuk a "dhcp relay" néven ismert technikát: a relay agent azért felel, hogy a DHCP kéréseket unicastként továbbítsa a -számára ismert- DHCP szerver felé. A szerver az agentnek fog válaszolni (címet, opciókat ajánlani), aki a kérést elindító hostnak továbbadja a választ. A DHCP relaying elegánsabb megoldás, mint külön DHCP szervereket alkalmazni; központilag adminisztrálható lesz a címek kiosztása, a hálózatüzemeltetők is nyugodtabbak (az egy -fogalmi- hálózaton elhelyezett második DHCP szerver sokakban babonás félelmeket kelt), a hálózati aktív eszközök "dhcp relay" vagy "ip helper" néven szoktak relay agentet tartalmazni. A dhcp csomag is tartalmaz egy relay agentet, ennek neve dhcrelay.
1.4 Szerver telepítése
A szerver telepítésére kérjük meg a csomagkezelőt: Debianon ez minden bizonnyal azapt-get dhcpparancs kiadásával történik, Gentoo alatt az
emerge dhcpjár hasonló eredménnyel. Fontosabb tudnivaló, hogy a lease-eket tartalmazó file-t kézzel kell létrehoznunk, ne felejtsük el!
touch /var/lib/dhcp/dhcpd.leasesA szerver telepítésével végeztünk is, két lépés maradt hátra: konfigurálnunk kell azt (ehhez rövid bevezetést a következő fejezet tartalmaz), továbbá érdemes megoldani, hogy a szerver (ettől a ponttól nevezzük is nevén: dhcpd, a.k.a. dhcp daemon) automatikusan fusson a szerver-PC indításakor. Ezt Gentoo-specifikusan az
rc-update add dhcpd defaultparanccsal érhetjük el.
Kitérő: a Gentoo Linux init-rendszere nagyon egyszerűen kezelhető a fentebb leírt rc-update parancs segítségével. Ha ennél kicsit kifinomultabbat szeretnénk (például daemontoolst), akkor sem bonyolult a dolgunk:
emerge daemontools rc-update add svscan boot
Innentől ha azt szeretnénk, hogy egy adott szolgáltatást a daemontools felügyeljen, akkor átadhatjuk annak.
1.5 Példa-konfiguráció
A konfiguráció szerkesztése az /etc/dhcp/dhcpd.conf fileban történik. Egyszerűbb, mint gondolnánk; a következőkben alapesetekre foguk példát látni.
# dhcpd.conf # # option definitions common to all supported networks... # option domain-name "example.org"; # option domain-name-servers ns1.example.org, ns2.example.org; ddns-update-style none; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; #### Eddig tartott a globalis konfiguracio
A különböző kiosztandó tartományokra vonatkozó információkat a subnet felkiáltással kezdve, fűzzük hozzá ugyanehhez a filehoz.
# Subnet for AP 2620's. subnet 26.20.1.0 netmask 255.255.255.0 { host AP1 {hardware ethernet 00:0F:BB:09:10:91; fixed-address 26.20.1.1; } host AP2 {hardware ethernet 00:0F:BB:09:10:92; fixed-address 26.20.1.2; } # host T_NB {hardware ethernet 00:A0:D1:29:23:39; # fixed-address 26.20.1.3; } range 26.20.1.100 26.20.1.150; option routers 26.20.1.254; option slp-directory-agent true 10.1.1.4; }
Mi is történt itt? Kijelöltük a 26.20.1.0/24 alhálózatot (innen osztunk címeket), majd ebben definiáltunk három hostot, akiknek fixen akarunk címeket osztani, a MAC-címük alapján. Ebből a harmadik ki van kommentezve. Ezen felül kijelöltük (a range felkiáltással) egy tartományt a 26.20.1.100-tól 26.20.1.150-ig, ahová nagy szeretettel várjuk a további hostokat. Látunk példát két opció használatára is: routers alatt adhatjuk át a default gateway IP-címét (de egynél többet is megadhatunk). Az SLP directory agent opció esetén általánosan is látjuk egy opció felvételének menetét:
Az option után kötőjelekkel leírjuk az opció nevét. Ezt követik az opciónak megfelelő értékek, amik lehetnek flagek (true/false), boolean értékek (ismét true/false), stringek, IP-címek, számok (uint). Erről szerencsére elég jól érthető man oldalt találunk:
man dhcp-options
Érdemes megnézni, meglepő mennyiségben állnak rendelkezésre opciók. Megkérhetünk vele hostot, hogy váltson router üzemmódba, felvetethetünk statikus route-okat, smtp és pop szerverek címeit adhatjuk át stb.
A következőkben három kijelölt subnetet láthatunk (amiből az egyik ki van kapcsolva):
## Subnet for optiPoint telephones # #subnet 15.1.1.0 netmask 255.255.255.0 { # range 15.1.1.1 15.1.1.253; # option routers 15.1.1.254; #} # Subnet wireless experiments subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.1 192.168.3.250; option routers 192.168.3.254; option domain-name-servers 192.168.5.1; } # Home, sweet home subnet 192.168.5.0 netmask 255.255.255.0 { range 192.168.5.1 192.168.5.250; option routers 192.168.5.254; }
1.6 Biztonság
DHCP spoofing
Mindenképpen tartsuk észben, hogy a DHCP szerver egyszerűen használható eszköz és gyakorlatilag egyedül képes a hostok interfészeit L3 szinten konfigurálni. Így egy címet kérő hostnak nyugodtan lehet olyat mondani, hogy a -normálisan használt- x.x.x.0 hálózat helyett ő legyen csak az x.x.y.0 hálózatban, a default gateway pedig majd a gonosz támadó PC-je lesz. Esetleg a DNS szerver is. Erre point'n click eszköz is létezik, ilyen például az ettercap. Nagyon kellemetlen lehet.