DHCP mini-HOGYANVladimirVuksanvuksan@veus.hrv4.122000 október 22.vv
A dokumentum azokra az alapvető kérdésekre próbál választ adni, amelyek
egy Linuxot futtató gép DHCP szerverként illetve kliensként való alkalmazásakor
felmerülnek.
BevezetésÁltalános jogi nyilatkozat
A szerző nem feltétlenül ért egyet a dokumentum teljes tartalmával.
Használd a saját felelősségedre az összes elképzelést, példát és a dokumentum egyéb tartalmát.
Mivel ez a dokumentum egy újabb kiadása, előfordulhatnak benne hibák
és pontatlanságok, amelyek esetleg kárt tehetnek a rendszeredben.
Ezen figyelmeztetés után olvasd tovább, és bár nagyon sajnálatos,
mindezekért semmilyen felelősséget nem vállalok.
Azt is tartsd észben, hogy ez NEM hivatalos információ.
A dokumentum legnagyobb része feltételezés, amelyre az emberek munkájuk
során jutottak. Az információkat saját felelősségedre használd.
A dokumentum új változatai
A dokumentum új változata megtalálható a következő helyen:
http://www.oswg.org/oswg-nightly/DHCP.html
A DHCP mini-HOGYAN következő fordításai érhetők el:
kínai - http://www.linux.org.tw/CLDP/mini/DHCP.htmljapán - http://www.linux.or.jp/JF/JFdocs/DHCP.htmlspanyol - ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/DHCP-mini-Como/
Az engedélyt ezennel minden olyan személynek megadom, aki szeretné
lefordítani ezt a dokumentumot a saját nyelvére. Mindössze azt kérem,
hogy készíts egy hivatkozást erre a dokumentumra, valamint tudasd
velem a fordításod URL címét, hogy itt közölhessem azt.
Visszajelzés
Szívesen fogadok visszajelzést ezzel a dokumentummal kapcsolatban.
A beadványaitok és észrevételeitek nélkül ez a dokumentum
nem létezne. Szóval kiegészítéseiteket, megjegyzéseiteket
és kritikátokat küldjétek a vuksan-feedback@veus.hr címre.
Közreműködők
Ez a dokumentum a Paul Makeev által készített eredeti
változat módosítása.
A következő emberek működtek közre ezen mini-HOGYAN elkészítésében:
Heiko SchlittermannJonathan SmithDan KhabazaHal SadofskyHenrik StoernerPaul Rossingtonés még sokan másokSzerzői jog
Eme dokumentum szerzői jogait (c) 1998 Vladimir Vuksan birtokolja, a dokumentum
az OpenContent License (OPL) feltételei szerint terjeszthető. A licenc
teljes szövegét megtalálod a következő honlapon:
http://www.opencontent.org/opl.shtmlMagyar fordítás
A magyar fordítást Szíjjártó László készítette (2002.07.17).
A lektorálást Kilián Magdolna végezte el (2003.01.22).
Bármilyen fordítással kapcsolatos észrevételt a linuxhowto@sch.bme.hu címre küldjetek.
A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.
A DHCP protokoll
Egy dinamikus, számítógépek beállítására szolgáló (Dinamic Host
Configuration) protokoll. A kliensek legfontosabb hálózati beállításainak
vezérlésére szolgál, a szerver segítségével. A DHCP visszafelé kompatibilis a
BOOTP protokollal. További információért olvasd el az RFC 2131 (a régi RFC 1541)
és más dokumentumokat. (Például a doksi végén található Internetes Források
fejezetet). Ezen kívül ajánlatos elolvasni a
http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html honlapot.
Ez a mini-HOGYAN mind a DHCP _SERVER_ démonnal, mind a DHCP _KLIENS_ démonnal foglalkozik.
A legtöbb felhasználónak a kliens démonra van szüksége, amit a munkaállomások használnak arra,
hogy a szervertől lekérjék a hálózati információkat. A szerver démont a rendszergazdák használják,
hogy ezeket az információkat közzétegyék a hálózaton belül, ezért ha hétköznapi felhasználó
vagy, akkor csak a _KLIENS_ démonra van szükséged.
A kliens beállítása
Jelenleg három különböző DHCP kliens létezik Linuxra: a dhcpcd, a pump és a
dhclient. Ez a mini-HOGYAN elsősorban a dhcpcd démonnal foglalkozik.
A kliens démon letöltése (dhcpcd)
A Linux összeállításodtól függően lehet, hogy le kell töltened a
DHCP kliens-démont. Ha a forrásból le is akarod fordítani,
akkor a csomag neve dhcpcd lesz , és az aktuális verzió az 1.3.18 XXX.
A csomag karbantartója Sergei Viznyuk sergei@phystech.com ,
és manapság a legtöbb Linux összeállításban bináris - lefordított - változatban is hozzáférhető.
A dhcpcd forráskódját a következő helyekről töltheted le:
ftp://ftp.phystech.com/pub/ (elsődleges lelőhely)http://www.cps.msu.edu/~dunham/out/
Majd kövesd az alábbi útmutatást.
Slackware
A DHCPcd program legutolsó változatát letöltheted egy Metalab tükörszerverről
vagy a következő helyekről:
ftp://metalab.unc.edu/pub/Linux/system/network/daemonsftp://ftp.phystech.com/pub/ (elsődleges hely)
Töltsd le a dhcpcd.tar.gz legutolsó változatát.
Csomagold ki
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
Lépj be a létrejött könyvtárba és fordítsd le
cd dhcpcd-1.3.18pl1make
Ezek után telepítsd (a következő parancsot rendszergazdaként futtasd)
make install
Ez a parancs létrehozza a /etc/dhcpc könyvtárat, ahol a démon az információit
tárolja, a dhcpcd bináris fájl pedig a /usr/sbin könyvtárba kerül.
Ahhoz, hogy a rendszer a induláskor a DHCP szolgáltatást elindítsa, gépeld be:
cd /etc/rc.dmv rc.inet1 rc.inet1.OLD
Ez a régi beállítószkriptet átnevezi
rc.inet1.OLD-ra.
Ezek után el kell készítened az új rc.inet1 szkriptet.
A következő kódrészletre van szükség:
#!/bin/sh
#
# rc.inet1 Ez a shell szkript indítja az alapértelmezett INET rendszert.
HOSTNAME=`cat /etc/HOSTNAME` #Ez talán nem szükséges, de én mindig
#benne hagyom.
# A loopback eszköz beállítása.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# HA ETHERNET KAPCSOLATOD VAN, használd a következő sorokat az eth0
# eszköz beállítására. Ha csak a loopback-et vagy SLIP-et használsz,
# ne hagyd meg a fájl további sorait.
/usr/sbin/dhcpcd
Mentsd el és indítsd újra a gépet.
Amikor kész vagy, ugorj az utolsó lépésre.
RedHat 6.x és Mandrake 6.x
A RedHat 6+ alatt a DHCPcd beállítása nagyon egyszerű. A grafikus felületen indítsd el a
Control Panelt (ha nincs menüben, akkor X terminálról a control-panel paranccsal, majd:.
Válaszd ki a "Network Configuration" menüpontotKattints az "Interfaces"-reKattints az "Add"-raVálaszd ki az "Ethernet"-etAz "Edit Ethernet/Bus Interface" alatt válaszd ki az "Activate interface at
boot time" lehetőséget, valamint a "DHCP"-t, mint "Interface
configuration protocol"-t
Figyelem: a RedHat 6.x verziók az alapértelmezettként nem a dhcpcd démont, hanem a
pump kliens programot tartalmazzák. A telepítő CD tartalmazza a dhcpcd csomagot, ezért
ha nincs szerencséd a pump programmal, próbáld a dhcpcd programot. Miután telepítetted
(pl. rpm -i dhcpcd-1.3.17pl2-1.i386.rpm),
néhány változtatást kell eszközölnöd.
Alexander Stevenson további megjegyzései
alexander.stevenson@home.com:
Nem volt szerencsém a DHCPcd démonnal. Ami végül bejött, az a RedHat 6.0 pump programja volt,
ami gondolom a többi RedHat verzióban is benne van. A következő parancsot
használtam:
pump -i eth0 -h hostname
Mindegy, hogy a "hostname" mi volt, de e nélkül a szerver nem fog
válaszolni.
Ezek után megváltoztattam a /sbin/ifup szkriptemet, hogy tükrözze a változást;
az alapértelmezett verzió nem tartalmazta a -h kapcsolót, ezért nem is működött
nálam.
Alapvetően, ha a linuxconf-ot használod, és a csatoló "DHCP"-re való átállítása
után az nem működik, próbáld ki, hogy a "-h
hostname" kapcsolót hozzáadod a pump sorához a
/sbin/ifup szkriptben. Az enyém így néz ki:
...
if [ -n "$PUMP" ]; then
echo -n "Determining IP information for $DEVICE..."
if /sbin/pump -i $DEVICE -h hostname; then
echo " done."
else
echo " failed."
exit 1
fi
else ...
Egy másik, még elegánsabb módszert a hostname mező hozzáadásához Aad van der Klaauw ajánlott:
Most állítok be egy átjárót otthon, be kell állítanom
a MAC address-t a '-h hostname' használata nélkül. Ezért elhatároztam,
hogy *nem* változtatom meg a szkriptet, hanem a konfigurációs fájlt használom.
Az /etc/sysconfig/network-scripts/ifcfg-eth0 fájlhoz hozzáadtam a következő sorokat:
DEVICE="eth0"
MACADDR="00:11:22:33:44:55"
DHCP_HOSTNAME="trigger_for_terayon"
Ez túl fogja élni a frissítéseket, és szerintem ez egy "tiszta" módszer.
Ennyi az egész. Indítsd újra a gépet vagy add ki a /sbin/ifup eth0 parancsot.
RedHat 5.x
A DHCPcd beállítása Redhat 5.0+ alatt nagyon könnyű. A grafikus felületen indítsd el a Control Panelt
(ha nincs menüben, akkor X terminálról a control-panel paranccsal), majd:.
Válaszd ki a "Network Configuration" menüpontotKattints az "Interfaces" gombraVálaszd ki az "Ethernet"-etAz "Edit Ethernet/Bus Interface" alatt válaszd ki az "Activate interface at
boot time" lehetőséget, valamint a "DHCP" -t, mint "Interface configuration
protocol"-t.
Amikor kész vagy, ugorj az utolsó lépésre.
RedHat 4.x és Caldera OpenLinux 1.1/1.2
A DHCPcd csomagot tartalmazza a RedHat standard disztribúció mint RPM és megtalálhatód
a disztribúciós cd-n az RPMS könyvtárban vagy letöltheted a következő csomagot:
ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm
Telepítsd a következő paranccsal: rpm -i dhcpcd-0.6-2.i386.rpm.
De a saját verziódat a
következő lépésekkel is fordíthatod a nél kiemelt sorokat követve...
A következő információt nothing szolgáltatta
nothing@cc.gatech.edu.
Eltávolítottam az állandó IP-címemet és nevemet a
/etc/resolv.conf könyvtárból. De ott hagytam a kereső sorban és a két névszerverem sorát is
(valamiért a dhcpcd csomagom sose hozza létre az /etc/dhcpc/resolv.conf fájlt, így az
állandó /etc/resolv.conf) fájlt kell használnom.
Az /etc/sysconfig/network fájlból eltávolítottam a HOSTNAME
és GATEWAY bejegyzéseket. A többit hagytam ahogy volt (NETWORKING,
DOMAINNAME, GATEWAYDEV).
Az /etc/sysconfig/network-scripts/ifcfg-eth0 fájlból
eltávolítottam az IPADDR, NETMASK, NETWORK, és BROADCAST bejegyzéseket. A
DEVICE és ONBOOT bejegyzéseket változatlanul hagytam. Megváltoztattam a BOOTPROTO sort
BOOTPROTO=dhcp sorra.
Mentsd el a fájlt és indítsd újra a gépet.
Amikor kész vagy, ugorj az utolsó lépésre.
Debian
DHCPcd csomagot a Debianhoz a következő helyen találsz:
http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/
Vagy kövesd a telepítésénél megadott utasításokat.
A deb csomag telepítéséhez használd a dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb parancsot.
Úgy néz ki, hogy semmilyen konfigurációra nem lesz szükség:
Írta: Heiko Schlittermann
heiko@os.inf.tu-dresden.de
A dhcpcd csomag az indítószkriptjeit a Debian csomagjainál megszokott módon az
/etc/init.d/csomag_neve könyvtárba telepíti,
jelen esetben ez az /etc/init.d/dhcpcd,
és ezt linkeli a különböző /etc/rc?.d/ könyvtárakhoz.
Az /etc/rc?.d/ könyvtárak tartalma minden induláskor végrehajtódik.
Ha nem
akarod újraindítani a gépet, akkor kézzel kell elindítanod a démont az /etc/init.d/dhcpcd start paranccsal.
Amikor végeztél, menj az utolsó lépésre.
LinuxPPC és MkLinux
A következő részt R. Shapiro írta:
Az "1999" (R5) kiadású LinuxPPC majdnem teljesen
kompatibilis a RedHat 6-tal, egy kivétellel (lásd alább).
Általánosságban a beállítás ugyanaz, mint a
esetében.
A probléma az, hogy a RedHat 6 a pump klienst használja a DHCP-hez
alapértelmezettként, ami viszont nem működik megbízhatóan a LinuxPPC alatt. A megoldáshoz telepítsd a legfrissebb Sergei Viznyuk-féle dhcpcd démont,
és szerkeszd át az
/sbin/ifup szkriptet, hogy a dhcpcd klienst
használja a pump helyett.
Változtasd meg ezt:
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
PUMP=true
fi
if [ -n "$PUMP" ]; then
erre:
if [ "$BOOTPROTO" = bootp ]; then
echo " done."
else
echo " failed."
exit 1
fi
elif [ "$BOOTPROTO" = dhcp ]; then
echo -n "Determining IP information for $DEVICE..."
if /sbin/dhcpcd -d $DEVICE ; then
if [ -f /etc/dhcpc/dhcpcd-${DEVICE}.exe ]; then
/etc/dhcpc/dhcpcd-${DEVICE}.exe
fi
valamint ennek megfelelően a ifdown szkriptben, ezt:
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
....
fi
erre:
if [ "$BOOTPROTO" = bootp ]; then
fi
if [ "$BOOTPROTO" = dhcp ]; then
if [ -f /var/run/dhcpcd-${DEVICE}.pid ]; then
kill `cat /var/run/dhcpcd-${DEVICE}.pid`
rm -f /var/run/dhcpcd-${DEVICE}.pid
fi
fi
Egy működő PPC rpm a dhcpcd-hez megtalálható a LinuxPPC 1999 CD-n; egy kissé
későbbi rpm pedig a "contrib" könyvtárban a
ftp://ftp.linuxppc.org/ címen.
A forráskódot - amelyből ez a csomag készült - megtalálod a ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz helyen.
Utolsó lépés
Miután a géped újraindult, a hálózati eszközödnek már működőképesnek kell lennie.
Gépeld be: ifconfig.
Valami hasonlónak kell megjelennie a képernyőn:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:302 errors:0 dropped:0 overruns:0 frame:0
TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0
^^^^^^^^^^^^^^^^^^^^^^^
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
Interrupt:10 Base address:0x300
Ha valamilyen normális számot látsz az inet addr mellett, akkor készen vagy.
Ha azt látod: 0.0.0.0 , ne ess kétségbe, ez egy átmeneti beállítás, mielőtt a
dhcpcd lekérné
az IP címet. Ha néhány perc múlva is ezt látod, kérlek nézd meg
a fejezetet. A DHCPcd egy démon,
és addig fut, míg a géped működik. Három óránként kapcsolatba lép a
DHCP szerverrel, és próbálja megújítani az IP cím-kérést. Minden üzenetét
a rendszernaplóban tárolja ( a Slakware-nél
/var/adm/syslog, RedHat/OpenLinux esetén
/var/log/syslog).
Még egy dolog. Meg kell adnod a névszervereidet is. Ezt kétféleképpen teheted meg;
vagy megkérdezed a szolgáltatódat, hogy adja meg, és beírod az
/etc/resolv.conf fájlba (pl. egy ilyen sort kell beírni:
nameserver 1.2.3.4 - a ford.), vagy a DHCPcd fogja
lekérni a szervertől a listát, és készít egy
resolv.conf fájlt az /etc/dhcpc könyvtárban.
Én úgy döntöttem, hogy a DHCPcd resolv.conf fájlját használom:
Készíts biztonsági másolatot az /etc/resolv.conf fájlról: mv /etc/resolv.conf
/etc/resolv.conf.OLD
Ha még nincs /etc/dhcpc könyvtárad,
készíts egyet: mkdir /etc/dhcpc
Készíts egy hivatkozást (link) az /etc/dhcpc/resolv.conf fájlról az
/etc/resolv.conf fájlra: ln -s
/etc/dhcpc/resolv.conf /etc/resolv.conf
Ha ez nem működne, próbáld ki a következőket (a megoldást
nothing@cc.gatech.edu ajánlotta Henrik
Stoerner közreműködésével):
"Ezt az utolsó lépést csak azért csináltam , mert az én dhcpcd csomagom nem készítette
el az /etc/dhcpc/resolv.conf fájlt. Az /etc/sysconfig/network-scripts/ifup fájlban
a következőket módosítottam (nem szépségdíjas,
de nekem működött):
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for ${DEVICE}... "
/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
^^^^
echo "failed."
exit 1
Ezt megváltoztattam erre:
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for ${DEVICE}... "
/sbin/dhcpcd
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
^^^^^^
echo "failed."
exit 1
Jegyezd meg, hogy ott a ! (felkiáltójel) a következő sorban: if [ ! -f
/var/run/dhcp-wait-${DEVICE}.pid ];
Most dőlj hátra és örülj :-).
Különféle megjegyzések
A következő lépés(ek) nem szükségesek, de hasznosak lehetnek néhány felhasználó
számára:
Ha csak néha van szükséged a dhcpcd démonra,
indíthatod kézzel is a parancssorból
(ehhez root jogokkal kell rendelkezned): /usr/sbin/dhcpcd.
Ha le kell állítanod a hálózatot, akkor pedig add ki a
/usr/sbin/dhcpcd -k parancsot.
Hibaelhárítás
Ha követted a fenti lépéseket, és mégsem tudsz a hálózaton dolgozni, akkor íme
néhány lehetséges megoldás:
A hálózati kártyád nincs jól beállítva
Az induláskor a Linuxod teszteli a hálózati kártyát és valami hasonlót írhat ki:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Ha ilyen sor nincs az üzenetek között (később a dmesg parancs kiadásával is meg
lehet nézni - a ford.), akkor a hálózati kártyádat nem ismerte fel az operációs
rendszer. Ha hagyományos NE2000 kompatibilis kártyád van, akkor kapnod kell
vele egy lemezt DOS programokkal, amelyekkel be tudod állítani a kártyát.
Próbálkozz az IRQ-kal és a memóriacímekkel, amíg a Linux fel nem ismeri
(általában az IRQ 9, 10, 12 jók).
A DHCP szerver az RFC 1541-et támogatja/a szerver Windows NT
rendszeren fut
Próbáld meg a dhcpcd démont a dhcpcd -r paranccsal futtatni.
Használd az ifconfig programot, hogy ellenőrizd a beállítások helyességét (adj
néhány percet a beállítási folyamatnak, először azt fogja mondani,
hogy Inet.addr=0.0.0.0)
Ha ez megoldja a problémát, akkor add hozzá az "-r" kapcsolót az indítófájlokhoz,
a például /sbin/dhcpcd helyett legyen
/sbin/dhcpcd -r.
RedHat alatt szerkeszd át az
/etc/sysconfig/network-scripts/ifup
szkriptet a következő módon:
IFNAME=$[ {DEVICE} \
"/sbin/dhcpcd -r -c /etc/"- etc etc.
A rendszer indulásakor a következő hibaüzenetet kapom: "Using DHCP for
eth0...failed", viszont a rendszer jól működik
Valószínűleg RedHat-ot használsz, és nem követted rendesen a fenti
instrukciókat :) A felkiáltójel hiányzik valamelyik utasításból.
Nézd meg itt, hogyan kell jól beállítani.
A hálózat néhány percig jól működik,
de aztán nem válaszol
Néhány visszajelzés szerint a gated (a gateway démon) összegubancolja az
útválasztást a fenti problémával küzdő gépeken. Ellenőrizd,
hogy fut-e a gated a ps -auxww | grep gate parancs futtatásával.
Ha fut, próbáld meg eltávolítani a RedHat csomagkezelőjével, vagy a megfelelő
bejegyzés eltávolításával az /etc/rc.d/ könyvtárból.
A hálózati kártyámat felismerte a rendszer,
de "NO DHCPOFFER" üzeneteket látok a naplófájlokban.
Ja, és PCMCIA kártyám van.
Biztosnak kell lenned abban, hogy a 10BaseT aljzat (a "telefon" aljzat) a
kártyádon aktiválva van. A legjobb módszer annak ellenőrzésére, hogy melyik
csatlakozó lett beállítva induláskor például:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Kaptam visszajelzést laptopos felhasználóktól, akiknek ilyen problémájuk volt,
és a PCMCIA segédprogramokkal lehetett összefüggésbe hozni (különösen az
ifport-tal), amelyek a csatoló típusát 10Base2-re (thinnet) állítják. Neked
biztosnak kell lenni abban, hogy 10BaseT-t használsz. Ha nem, állítsd át a
kártyát, és indítsd újra a gépet.
A DHCP kliensem kiadja a broadcast üzenetet, de nincs rá válasz (Peter
Amstutz közreműködésével)
Néhány rendszeren valamilyen gépnevet kell megadnod, mint a kérés részét. A
dhcpcd démonnal ezt a dhcpcd -h
foohost paranccsal tudod megtenni.
Ez a gépnév valószínűleg megegyezik a hálózati belépéshez használt neveddel.
Minden lépést követtem, de még mindig nem tudok kapcsolatot létesíteni
A kábelmodemek általában megjegyzik a kártya ethernet címét,
így amikor új gépet csatlakoztatsz vagy kicseréled a hálókártyát,
valahogy meg kell "tanítani" a kábelmodemet,
hogy felismerje az új gépet/kártyát. Általában csak ki kell
kapcsolni, majd vissza a modemet, míg a gép működik, vagy fel kell hívnod a
szolgáltatót, és bejelenteni a hálókártya változását.
Lehetnek olyan tűzfal-szabályaid (ipfwadm, ipchains vagy iptables szabályok)
amelyek letiltják a 67/68-as portokat, amelyeken a DHCP forgalmazza a beállítási
információkat. Ellenőrizd alaposan a szabályokat.
MediOne Express szolgáltatásom van és nem tudok
kapcsolódni
Úgy néz ki, hogy a MediOne olyan dolgokat ad hozzá a DHCP-hez,
amiknek nem kéne ott lenniük. Feltehetően ez már nem probléma,
de ha gondokkal találkozol, ellenőrizd ezeket.
Ha egy Windows NT szerencsés (?) felhasználója vagy, az
Eseménynaplóban (Event Viewer) a következőt láthatod:
DHCP received an unknown option 067 of length 005. The raw option data is
given below.
0000: 62 61 73 69 63 basic
Ha ez probléma, látogass el az
ftp://vanbuer.ddns.org/pub/
címre és töltsd le a bináris programot, vagy a forrást a változtatáshoz.
Alternatív DHCP kliens (ISC dhclient)
Ha sehogy sem sikerült a dhcpcd démonnal kapcsolatot létesítened, kipróbálhatod az
ISC dhclient programot. A dhclient hozzáférhető az ISC által kiadott DHCP
disztribúcióban,
és mind kliens, mind szerverprogramot tartalmaz. Arról, hogy hogyan szerezheted
meg és fordíthatod le a szervert, itt olvashatsz.
Amikor kész vagy,
kérlek térj vissza ide a kliens beállítását illetően.
a következő információkat
Ted Lemon mellon@isc.org
a dhclient szerzőinek egyike adta közre.
A DHCP kliens jelenlegi verziójához igazándiból nem kell
dhclient.conf fájl. Csak meg
kell hívni a programot, például: /sbin/dhclient.
Ez minden broadcast eszközt beállít.
Ha ez nem működik, vagy csak egyetlen eszközt akarsz megadni, készíts egy
/etc/dhclient.conf fájlt ezzel a
tartalommal:
interface "eth0" {
send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
send dhcp-lease-time 86400;
}
Feltételeztük, hogy az ethernet eszköz neve eth0.
Ha nem, változtasd meg. Ezen kívül írd át a xx:xx.xx.xx.xx.xx jeleket
az eszköz ethernet címére. Ez a dhclient.conf
nagyon hasonlóvá teszi a klienst egy Win95 klienshez.
DHCP szerver beállításDHCP szerver UNIX rendszerekhez
Többféle DHCP szerver létezik a UN*X-szerű operációs rendszerekhez, mind pénzes,
mind szabad felhasználású. Az egyik legnépszerűbb szabad szoftver a Paul
Vixie/ISC- féle DHCPd. Jelenleg a legutolsó verzió a 2.0 (a legtöbb felhasználó
számára javasolt), de a 3.0 is bétatesztelés alatt áll. Letöltheted a
ftp://ftp.isc.org/isc/dhcp/ webhelyről.
Néhány Linux összeállítás tartalmazza a bináris dhcpd csomagot,
ezért átugorhatod a következő részt, ha ezen a módon telepítetted.
Miután letöltötted, csomagold ki, majd lépj be a forráskönyvtárba. Itt add ki a
./configure parancsot.
Eltart egy kis ideig, amíg beállítja a dolgokat. Amikor
kész, add ki a make, majd a make install parancsokat.
DHCP szerver beállítás
Miután kész a telepítés, add ki az ifconfig -a parancsot. Valami hasonlót kell
látnod:
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2875542 errors:0 dropped:0 overruns:0
TX packets:218647 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x210
Ha nem látható a MULTICAST szó a kiírásban, újra kell fordítanod a kerneled,
hogy benne legyen a támogatás. A legtöbb rendszeren azonban erre nincs szükség.
A következő lépés az útválasztás beállítása a 255.255.255.255 címre. Részlet a
DHCPd README fájlból:
A válogatós DHCP kliensekkel (pl. Win95) való korrekt együttműködés
érdekében a 255.255.255.255 címre is képesnek kell lennie csomagokat küldeni.
Sajnos, a Linux ragaszkodik ahhoz, hogy a 255.255.255.255-öt a helyi
broadcast címként állítsa be (itt ez 192.5.5.223). Ez a DHCP protokoll
megsértése, és amíg a legtöbb DHCP kliens nem veszi észre a problémát,
néhány (pl. az összes Microsoft kliens) igen. Az ilyen problémával
küzdő kliensek nem "látják" a szervertől
érkező "DHCPOFFER" üzeneteket.
Gépeld be: route add -host 255.255.255.255 dev eth0
Ha a "255.255.255.255: Unknown host" választ kapod,
akkor próbáld meg a következő bejegyzést hozzáadni az
/etc/hosts fájlhoz:
255.255.255.255 all-ones
Aztán pedig:
route add -host all-ones dev eth0
vagy
route add 255.255.255.0 dev eth0
Itt természetesen az eth0 a hálózati eszköz neve, ha
nálad más, változtasd meg.
DHCPd beállítások
Most konfigurálni kell a DHCPd démont. Ennek érdekében meg kell csinálnod, vagy
módosítanod kell az /etc/dhcpd.conf fájlt. Van ehhez grafikus program is a KDE
alatt ( http://www.kde.org/ ), amit kcmdhcpd-nek hívnak és nagyon hasonlít a
Windows NT beállítóprogramjára. A KDE 2.0 kiadásakor benne lesz a csomagban
vagy letölthető az
ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/ webhelyről.
Ha kézzel akarod konfigurálni a démont, akkor kövesd az alábbi utasításokat.
A legáltalánosabb esetben a címeket véletlenszerűen akarod kiosztani. Ez a
következő beállításokkal elérhető:
# Sample /etc/dhcpd.conf
# (add your comments here)
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;
}
Ez azt eredményezi, hogy a szerver a 192.168.1.10-192.168.1.100 vagy
192.168.1.150-192.168.1.200 tartományból fog IP címeket kiadni. 600 másodpercig
biztosítja az IP címet, ha a kliens nem kér más időkeretet. Egyébként, a
maximális (megengedett) "bérleti idő" 7200 mp. A szerver ezen kívül ajánlja,
hogy a kliens a 255.255.255.0 alhálózati maszkot, a 192.168.1.255-ös broadcast
címet, a 192.168.1.254-et, mint a router címét és a 192.168.1.1 és 192.168.1.2
című névszervereket használja.
Ha WINS szervert kell a Windows kliensek számára
megadni, akkor beszúrhatod még a netbios-name-servers beállítást is, például:
option netbios-name-servers 192.168.1.1;
Ezen kívül specifikus IP címeket adhatsz meg, amik a kliens hálókártyájának
ethernet címén alapulnak, például:
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
Ez a példa a 192.168.1.122 címet osztja ki a
08:00:2b:4c:59:23 ethernet azonosítójú kártyával rendelkező kliensnek.
Ezeket keverheted is, például ha van néhány kliens
aminek fix IP cím kell, másoknak pedig (pl. laptopos felhasználók)
dinamikus címkiosztás. Egy csomó más lehetőség
is van, például NIS szerver címek, időszerverek címei stb.
Ha bármelyikre szükséged van, olvasd el a
dhcpd.conf kézikönyv oldalt.
A szerver indítása
Egy dolgot kell tenned, mielőtt a szervert indítanád. A legtöbb esetben a
DHCP telepítés nem készíti el a dhcpd.leases
. Ezt a szerver használja
abból a célból, hogy tárolja az aktuális kiosztási információkat. Ez sima
szöveges formátumú, tehát a démon működése közben is megnézheted a tartalmát.
A dhcpd.leases elkészítéséhez gépeld be:
touch /var/state/dhcp/dhcpd.leases
Ez egy üres fájlt készít (méret = 0). Néhány régebbi 2.0-ás szerververzió
/etc/dhcpd.leases fájlt igényel. Neked nem kell semmit sem tenned a fájllal, ezt
a dhcpd kezeli. Ha olyan hibaüzenetet kapsz, hogy a fájl már létezik, simán
figyelmen kívül hagyhatod és menj a következő lépésre.
Most már indíthatod a DHCP szervert. Gépeld be (vagy rakd be az
indítószkriptekbe):
/usr/sbin/dhcpd
Ez az eth0 eszközön elindítja a szervert. Ha más eszközre akarod felhúzni,
akkor add meg a parancssorban, például:
/usr/sbin/dhcpd eth1
Ellenőrzési és hibakeresési célból először "debug" módban és
előtérben futtatva indítsd el, ezt így teheted meg:
/usr/sbin/dhcpd -d -f
Ezek után indítsd el az egyik kliensedet, és figyeld a szerver konzolját. Számos
hibaellenőrző üzenetet fogsz látni. Ha minden működik, akkor kész vagy :)
Állítsd le a dhcpd-t és indítsd újra
-d és -f paraméter nélkül. Ha rendszerinduláskor is
el akarod indítani, akkor tedd be például az
/etc/rc.d/rc.local
fájlba (vagy inkább a
szabványos indítási folyamatba - a ford.)
Egyéb érdekes olvasnivalók
A Linux Magazine egy nagyon jó cikket közöl egyik számában
Network
Nirvana: How to make Network Configuration as easy as DHCP
(Hálózati Mennyország: Hogyan végezzük el hálózati beállításainkat könnyedén) címmel.
ami a DHCP beállítását taglalja.