<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article lang="hu">
<artheader>

   <title>DHCP mini-HOGYAN</title>

   <author>
      <firstname>Vladimir</firstname>
      <surname>Vuksan</surname>
      <affiliation>
         <address>
            <email>vuksan@veus.hr</email>
         </address>
      </affiliation>
   </author>

   <revhistory>
      <revision>
         <revnumber>v4.12</revnumber>
         <date>2000 október 22.</date>
         <authorinitials>vv</authorinitials>
      </revision>
   </revhistory>

   <abstract>
      <para>
      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.
      </para>
   </abstract>

</artheader>

<sect1>
<title>Bevezetés</title>

<sect2>
<title>Általános jogi nyilatkozat</title>
<para>

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.
</para>
<para>
Azt is tartsd észben, hogy ez <emphasis>NEM</emphasis> 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.
</para>
</sect2>

<sect2>
<title>A dokumentum új változatai</title>
<para>
A dokumentum új változata megtalálható a következő helyen:
</para>
<para>
<ulink
url="http://www.oswg.org/oswg-nightly/DHCP.html">http://www.oswg.org/oswg-nightly/DHCP.html</ulink>
</para>
<para>
A DHCP mini-HOGYAN következő fordításai érhetők el:
</para>

<itemizedlist>
<listitem><para>kínai - <ulink
url="http://www.linux.org.tw/CLDP/mini/DHCP.html">http://www.linux.org.tw/CLDP/mini/DHCP.html</ulink></para></listitem>
<listitem><para>japán - <ulink
url="http://www.linux.or.jp/JF/JFdocs/DHCP.html">http://www.linux.or.jp/JF/JFdocs/DHCP.html</ulink></para></listitem>
<listitem><para>spanyol - <ulink
url="ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/DHCP-mini-Como/">ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/DHCP-mini-Como/</ulink></para></listitem>
</itemizedlist>

<para>
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.
</para>

</sect2>

<sect2>
<title>Visszajelzés</title>
<para>
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 <email>vuksan-feedback@veus.hr</email> címre.
</para>
</sect2>

<sect2>
<title>Közreműködők</title>
<para>
Ez a dokumentum a Paul Makeev által készített eredeti
változat módosítása.
</para>
<para>
A következő emberek működtek közre ezen mini-HOGYAN elkészítésében:
</para>

<itemizedlist>
<listitem><para>Heiko Schlittermann</para></listitem>
<listitem><para>Jonathan Smith</para></listitem>
<listitem><para>Dan Khabaza</para></listitem>
<listitem><para>Hal Sadofsky</para></listitem>
<listitem><para>Henrik Stoerner</para></listitem>
<listitem><para>Paul Rossington</para></listitem>
<listitem><para>és még sokan mások</para></listitem>
</itemizedlist>

</sect2>

<sect2>
<title>Szerzői jog</title>
<para>
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:
</para>
<para>
<ulink
url="http://www.opencontent.org/opl.shtml">http://www.opencontent.org/opl.shtml</ulink>
</para>
</sect2>

<sect2>
<title>Magyar fordítás</title>
<para>
A magyar fordítást <ulink url="mailto:laca@janus.gimsz.sulinet.hu_NO_SPAM">Szíjjártó László</ulink> készítette (2002.07.17).
A lektorálást <ulink url="mailto:souly1@freemail.hu_NO_SPAM">Kilián Magdolna</ulink> végezte el (2003.01.22).
Bármilyen fordítással kapcsolatos észrevételt a <ulink url="mailto:linuxhowto@sch.bme.hu_NO_SPAM">linuxhowto@sch.bme.hu</ulink> címre küldjetek.
A dokumentum legfrissebb változata megtalálható a <ulink url="http://tldp.fsf.hu/index.html">Magyar Linux Dokumentációs Projekt</ulink> honlapján.
</para>
</sect2>

</sect1>

<sect1>
<title>A DHCP protokoll</title>
<para>
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
<ulink
url="http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html">http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html</ulink> honlapot.
</para>
<para>
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.
</para>
</sect1>

<sect1>
<title>A kliens beállítása</title>
<para>
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.
</para>

<sect2>
<title>A kliens démon letöltése (dhcpcd)</title>
<para>
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 <email>sergei@phystech.com</email> , 
és manapság a legtöbb Linux összeállításban bináris - lefordított - változatban is hozzáférhető.
</para>
<para>
A dhcpcd forráskódját a következő helyekről töltheted le:
</para>

<itemizedlist>
<listitem><para><ulink
url="ftp://ftp.phystech.com/pub/">ftp://ftp.phystech.com/pub/</ulink> (elsődleges lelőhely)</para></listitem>
<listitem><para><ulink
url="http://www.cps.msu.edu/~dunham/out/">http://www.cps.msu.edu/~dunham/out/</ulink></para></listitem>
</itemizedlist>

<para>
Majd kövesd az alábbi útmutatást.
</para>
</sect2>

<sect2 id="slackware">
<title id="slackware.title">Slackware</title>
<para>

A DHCPcd program legutolsó változatát letöltheted egy Metalab tükörszerverről
vagy a következő helyekről:
</para>

<itemizedlist>
<listitem><para><ulink
url="ftp://metalab.unc.edu/pub/Linux/system/network/daemons">ftp://metalab.unc.edu/pub/Linux/system/network/daemons</ulink></para></listitem>
<listitem><para><ulink
url="ftp://ftp.phystech.com/pub/">ftp://ftp.phystech.com/pub/</ulink> (elsődleges hely)</para></listitem>
</itemizedlist>

<para>
Töltsd le a <filename>dhcpcd.tar.gz</filename> legutolsó változatát.
</para>

<itemizedlist>

<listitem>
<para>
Csomagold ki
</para>
<para>
<command>tar -zxvf dhcpcd-1.3.18pl1.tar.gz</command>
</para>
</listitem>

<listitem>
<para>
Lépj be a létrejött könyvtárba és fordítsd le
</para>
<para>
<command>cd dhcpcd-1.3.18pl1</command>
</para>
<para>
<command>make</command>
</para>
</listitem>

<listitem>
<para>
Ezek után telepítsd (a következő parancsot rendszergazdaként futtasd)
</para>
<para>
<command>make install</command>
</para>
</listitem>

</itemizedlist>

<para>
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.
</para>

<para>
Ahhoz, hogy a rendszer a induláskor a DHCP szolgáltatást elindítsa, gépeld be:
</para>

<para>
<command>cd /etc/rc.d</command>
</para>

<para>
<command>mv rc.inet1 rc.inet1.OLD</command>
</para>

<para>
Ez a régi beállítószkriptet átnevezi
<filename>rc.inet1.OLD</filename>-ra.
Ezek után el kell készítened az új <filename>rc.inet1</filename> szkriptet.
A következő kódrészletre van szükség:
</para>

<programlisting>
#!/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
</programlisting>

<para>
Mentsd el és indítsd újra a gépet.
</para>

<para>
Amikor kész vagy, ugorj az <link linkend=nameserver>utolsó lépésre</link>.
</para>

</sect2>

<sect2 id="redhat6">
<title id="redhat6.title">RedHat 6.x és Mandrake 6.x</title>
<para>
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 <command>control-panel</command> paranccsal, majd:.
</para>

<itemizedlist>
<listitem><para>Válaszd ki a "Network Configuration" menüpontot</para></listitem>
<listitem><para>Kattints az "Interfaces"-re</para></listitem>
<listitem><para>Kattints az "Add"-ra</para></listitem>
<listitem><para>Válaszd ki az "Ethernet"-et</para></listitem>
<listitem><para>Az "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</para></listitem>
</itemizedlist>

<para>
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. <command>rpm -i dhcpcd-1.3.17pl2-1.i386.rpm</command>),
néhány <link linkend=linuxppc-rh6>változtatást</link> kell eszközölnöd.
</para>

<para>
Alexander Stevenson további megjegyzései
<email>alexander.stevenson@home.com</email>:
</para>

<para>
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:
</para>

<para>
<command>pump -i eth0 -h hostname</command>
</para>

<para>
Mindegy, hogy a "hostname" mi volt, de e nélkül a szerver nem fog 
válaszolni.
</para>

<para>
Ezek után megváltoztattam a <filename
class="directory">/sbin/ifup</filename> 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.
</para>

<para>
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  "<command>-h
hostname</command>" kapcsolót hozzáadod a pump sorához a
<filename>/sbin/ifup</filename> szkriptben. Az enyém így néz ki:
</para>

<programlisting>
...
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 ...
</programlisting>

<para>
Egy másik, még elegánsabb módszert a hostname mező hozzáadásához Aad van der Klaauw ajánlott:
</para>

<para>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:
</para>

<programlisting>
DEVICE="eth0"
MACADDR="00:11:22:33:44:55"
DHCP_HOSTNAME="trigger_for_terayon"
</programlisting>

<para>
Ez túl fogja élni a frissítéseket, és szerintem ez egy "tiszta" módszer.
</para>


<para>
Ennyi az egész. Indítsd újra a gépet vagy add ki a <command>/sbin/ifup eth0</command> parancsot.
</para>

</sect2>

<sect2>
<title>RedHat 5.x</title>
<para>
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 <command>control-panel</command> paranccsal), majd:.
</para>

<itemizedlist>
<listitem><para>Válaszd ki a "Network Configuration" menüpontot</para></listitem>
<listitem><para>Kattints az "Interfaces" gombra</para></listitem>
<listitem><para>Válaszd ki az "Ethernet"-et</para></listitem>
<listitem><para>Az "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.</para></listitem>
</itemizedlist>

<para>
Amikor kész vagy, ugorj az <link linkend=nameserver>utolsó lépésre</link>.
</para>
</sect2>


<sect2>
<title>RedHat 4.x és Caldera OpenLinux 1.1/1.2</title>
<para>
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:
</para>

<para>
<ulink
url="ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm">ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm</ulink>
</para>

<para>
Telepítsd a következő paranccsal: <command>rpm -i dhcpcd-0.6-2.i386.rpm</command>.
</para>

<para>
De a saját verziódat a
következő lépésekkel is fordíthatod a <link linkend=slackware
endterm="slackware.title"></link>nél kiemelt sorokat követve...
</para>

<para>
A következő információt nothing szolgáltatta
<email>nothing@cc.gatech.edu</email>.
</para>

<blockquote>
<para>
Eltávolítottam az állandó IP-címemet és nevemet a
<filename>/etc/resolv.conf</filename> 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 <filename>/etc/dhcpc/resolv.conf</filename> fájlt, így az
állandó <filename>/etc/resolv.conf</filename>) fájlt kell használnom.
</para>
<para>
Az <filename>/etc/sysconfig/network</filename> fájlból eltávolítottam a HOSTNAME
és GATEWAY bejegyzéseket. A többit hagytam ahogy volt (NETWORKING,
DOMAINNAME, GATEWAYDEV).
</para>
<para>
Az <filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename> 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.
</para>
<para>
Mentsd el a fájlt és indítsd újra a gépet.
</para>
</blockquote>

<para>
Amikor kész vagy, ugorj az <link linkend=nameserver>utolsó lépésre</link>.
</para>

</sect2>

<sect2 id="debian">
<title id="debian.title">Debian</title>
<para>
DHCPcd csomagot a Debianhoz a következő helyen találsz:
</para>

<para>
<ulink
url="http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/">http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/</ulink>
</para>

<para>
Vagy kövesd a <link linkend=slackware endterm="slackware.title"></link> telepítésénél megadott utasításokat. 
</para>

<para>
A deb csomag telepítéséhez használd a <command>dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb</command> parancsot.
</para>

<para>
Úgy néz ki, hogy semmilyen konfigurációra nem lesz szükség:
</para>

<blockquote>
<attribution>Írta: Heiko Schlittermann
<email>heiko@os.inf.tu-dresden.de</email></attribution>
<para>
A dhcpcd csomag az indítószkriptjeit a Debian csomagjainál megszokott módon az 
<filename>/etc/init.d/<replaceable>csomag_neve</replaceable></filename> könyvtárba telepíti,
jelen esetben ez az <filename>/etc/init.d/dhcpcd</filename>,
és ezt linkeli a különböző <filename
class="directory">/etc/rc?.d/</filename> könyvtárakhoz.  
</para>
</blockquote>

<para>
Az <filename class="directory">/etc/rc?.d/</filename> könyvtárak tartalma minden induláskor végrehajtódik.
</para>

<para>
Ha nem 
akarod újraindítani a gépet, akkor kézzel kell elindítanod a démont az <command>/etc/init.d/dhcpcd start</command> paranccsal.
</para>

<para>
Amikor végeztél, menj az <link linkend=nameserver>utolsó lépésre</link>. 
</para>

</sect2>

<sect2>
<title>LinuxPPC és MkLinux</title>
<para>
A következő részt R. Shapiro írta: 
</para>

<para>
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
<link linkend=redhat6 endterm="redhat6.title"></link> esetében.
</para>

<para>
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.  <anchor
id="linuxppc-rh6">A megoldáshoz telepítsd a legfrissebb Sergei Viznyuk-féle dhcpcd démont, 
és szerkeszd át az
<filename>/sbin/ifup</filename> szkriptet, hogy a <command>dhcpcd</command> klienst
használja a <command>pump</command> helyett. 
</para>

<para>
Változtasd meg ezt:
</para>

<programlisting>
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
     PUMP=true
 fi

 if [ -n "$PUMP" ]; then
</programlisting>

<para>
erre:
</para>

<programlisting>
 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
</programlisting>

<para>
valamint ennek  megfelelően a <command>ifdown</command> szkriptben, ezt:
</para>

<programlisting>
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
....
fi
</programlisting>

<para>
erre:
</para>

<programlisting>
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
</programlisting>

<para>
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
<ulink url="ftp://ftp.linuxppc.org/">ftp://ftp.linuxppc.org/</ulink> címen.
A forráskódot - amelyből ez a csomag készült - megtalálod a <ulink
url="ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz">ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz</ulink> helyen.
</para>

</sect2>

<sect2 id="nameserver">
<title id="nameserver.title">Utolsó lépés</title>
<para>
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: <command>ifconfig</command>.
</para>

<para>
Valami hasonlónak kell megjelennie a képernyőn:
</para>

<programlisting>
          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 
</programlisting>

<para>
Ha valamilyen normális számot látsz az <literal>inet addr</literal> 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
<command>dhcpcd</command> lekérné
az IP címet. Ha néhány perc múlva is ezt látod, kérlek nézd meg 
a <link linkend=troubleshooting
endterm="troubleshooting.title"></link> 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 
<filename>/var/adm/syslog</filename>, RedHat/OpenLinux esetén 
<filename>/var/log/syslog</filename>).
</para>

<para>
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
<filename>/etc/resolv.conf</filename> 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
<filename>resolv.conf</filename> fájlt az <filename
class="directory">/etc/dhcpc</filename> könyvtárban.
</para>
<para>
Én úgy döntöttem, hogy a DHCPcd <filename>resolv.conf</filename> fájlját használom:
</para>

<para>
Készíts biztonsági másolatot az <filename>/etc/resolv.conf</filename> fájlról: <command>mv /etc/resolv.conf
/etc/resolv.conf.OLD</command>
</para>

<para>
Ha még nincs <filename class="directory">/etc/dhcpc</filename> könyvtárad, 
készíts egyet: <command>mkdir /etc/dhcpc</command>
</para>

<para>
Készíts egy hivatkozást (link) az <filename>/etc/dhcpc/resolv.conf</filename> fájlról az
<filename>/etc/resolv.conf</filename> fájlra: <command>ln -s
/etc/dhcpc/resolv.conf /etc/resolv.conf</command>
</para>

<para>
Ha ez nem működne, próbáld ki a következőket (a megoldást 
<email>nothing@cc.gatech.edu</email> ajánlotta Henrik
Stoerner közreműködésével): 
</para> 

<anchor id="error3">
<para>
"Ezt az utolsó lépést csak azért csináltam , mert az én dhcpcd csomagom nem készítette 
el az <filename>/etc/dhcpc/resolv.conf</filename> fájlt. Az <filename
class="directory">/etc/sysconfig/network-scripts/ifup</filename> fájlban
a következőket módosítottam (nem szépségdíjas, 
de nekem működött): 
</para>

<programlisting>
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
</programlisting>

<para>
Ezt megváltoztattam erre:
</para>

<programlisting>
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
</programlisting>

<note>
<para>
Jegyezd meg, hogy ott a ! (felkiáltójel) a következő sorban: <literal>if [ ! -f
/var/run/dhcp-wait-${DEVICE}.pid ];</literal>
</para>
</note>

<para>
Most dőlj hátra és örülj :-). 
</para>

</sect2>


<sect2>
<title>Különféle megjegyzések</title>
<para>
A következő lépés(ek) nem szükségesek, de hasznosak lehetnek néhány felhasználó 
számára:
</para>

<orderedlist numeration="loweralpha">
<listitem>
<para>
Ha csak néha van szükséged a <command>dhcpcd</command> démonra, 
indíthatod kézzel is a parancssorból 
(ehhez root jogokkal kell rendelkezned): <command>/usr/sbin/dhcpcd</command>.
</para>
<para>
Ha le kell állítanod a hálózatot, akkor pedig add ki a
<command>/usr/sbin/dhcpcd -k</command> parancsot.
</para>
</listitem>
</orderedlist>

</sect2>


<sect2 id="troubleshooting">
<title id="troubleshooting.title">Hibaelhárítás</title>
<para>
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:
</para>

<sect3>
<title>A hálózati kártyád nincs jól beállítva</title>
<para>
Az induláskor a Linuxod teszteli a hálózati kártyát és valami hasonlót írhat ki:
</para>

<programlisting>
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
</programlisting>

<para>
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).
</para>
</sect3>

<sect3>
<title>A DHCP szerver az RFC 1541-et támogatja/a szerver Windows NT 
rendszeren fut</title>
<para>
Próbáld meg a <command>dhcpcd</command> démont a <command>dhcpcd -r</command> paranccsal futtatni.
</para>

<para>
Használd az <command>ifconfig</command> 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 <literal>Inet.addr=0.0.0.0</literal>)
</para>

<para>
Ha ez megoldja a problémát, akkor add hozzá az "-r" kapcsolót az indítófájlokhoz, 
a például <command>/sbin/dhcpcd</command> helyett legyen
<command>/sbin/dhcpcd -r</command>.
</para>

<para>
RedHat alatt szerkeszd át az
<filename>/etc/sysconfig/network-scripts/ifup</filename>
szkriptet a következő módon:
</para>

<programlisting>
        IFNAME=$[ {DEVICE} \
        "/sbin/dhcpcd -r -c /etc/"- etc etc.    
</programlisting>
</sect3>

<sect3>
<title>A rendszer indulásakor a következő hibaüzenetet kapom: "Using DHCP for 
eth0...failed", viszont a rendszer jól működik</title>
<para>
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 <link linkend=error3>itt</link>, hogyan kell jól beállítani.
</para>
</sect3>

<sect3>
<title>A hálózat néhány percig jól működik, 
de aztán nem válaszol</title>
<para>
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 <command>ps -auxww | grep gate</command> parancs futtatásával.
</para>

<para>
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 <filename class="directory">/etc/rc.d/</filename> könyvtárból.
</para>
</sect3>

<sect3>
<title>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.</title>
<para>
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:
</para>

<programlisting>
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
</programlisting>

<para>
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.
</para>
</sect3>

<sect3>
<title>A DHCP kliensem kiadja a broadcast üzenetet, de nincs rá válasz (Peter 
Amstutz közreműködésével)</title>
<para>
Néhány rendszeren valamilyen gépnevet kell megadnod, mint a kérés részét. A 
dhcpcd démonnal ezt a <command>dhcpcd -h
<replaceable>foohost</replaceable></command> paranccsal tudod megtenni. 
Ez a gépnév valószínűleg megegyezik a hálózati belépéshez használt neveddel. 
</para>
</sect3>

<sect3>
<title>Minden lépést követtem, de még mindig nem tudok kapcsolatot létesíteni
</title>
<para>
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.
</para>

<para>
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.
</para>
</sect3>

<sect3>
<title>MediOne Express szolgáltatásom van és nem tudok 
kapcsolódni</title>
<para>
Ú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:
</para>
<programlisting>
DHCP received an unknown option 067 of length 005. The raw option data is 
given  below.

0000: 62 61 73 69 63            basic
</programlisting>

<para>
Ha ez probléma, látogass el az
<ulink
url="ftp://vanbuer.ddns.org/pub/">ftp://vanbuer.ddns.org/pub/</ulink>
címre és töltsd le a bináris programot, vagy a forrást a változtatáshoz.
</para>
</sect3>
</sect2>

<sect2>
<title>Alternatív DHCP kliens (ISC dhclient)</title>
<para>
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, <link linkend=dhcpserver>itt</link> olvashatsz. 
Amikor kész vagy, 
kérlek térj vissza ide a kliens beállítását illetően.
</para>

<note>
<para>
a következő információkat 
Ted Lemon <email>mellon@isc.org</email>
a dhclient szerzőinek egyike adta közre.
</para>
</note>

<para>
A DHCP kliens jelenlegi verziójához igazándiból nem kell
 <filename>dhclient.conf</filename> fájl. Csak meg 
kell hívni a programot, például: <command>/sbin/dhclient</command>.
</para>

<para>
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 
<filename>/etc/dhclient.conf</filename> fájlt ezzel a 
tartalommal:
</para>

<programlisting>
interface "eth0" {
  send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
  send dhcp-lease-time 86400;
}
</programlisting>

<para>
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.
</para>

</sect2>
</sect1>

<sect1>
<title>DHCP szerver beállítás</title>

<sect2 id="dhcpserver">
<title id="dhcpserver.title">DHCP szerver UNIX rendszerekhez</title>
<para>
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 
<ulink
url="ftp://ftp.isc.org/isc/dhcp/">ftp://ftp.isc.org/isc/dhcp/</ulink> webhelyről.
</para>

<para>
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.
</para>

<para>
Miután letöltötted, csomagold ki, majd lépj be a forráskönyvtárba. Itt add ki a 
 <command>./configure</command> parancsot.
</para>

<para>
Eltart egy kis ideig, amíg beállítja a dolgokat. Amikor 
kész, add ki a <command>make</command>, majd a <command>make install</command> parancsokat.
</para>
</sect2>

<sect2>
<title>DHCP szerver beállítás</title>
<para>
Miután kész a telepítés, add ki az <command>ifconfig -a</command> parancsot. Valami hasonlót kell 
látnod:
</para>

<programlisting>
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
</programlisting>

<para>
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.
</para>

<para>
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:
</para>

<blockquote>
<para>
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.
</para>
</blockquote>

<para>
Gépeld be: <command>route add -host 255.255.255.255 dev eth0</command>
</para>

<para>
Ha a "<literal>255.255.255.255: Unknown host</literal>" választ kapod,
akkor próbáld meg a következő bejegyzést hozzáadni az
<filename>/etc/hosts</filename> fájlhoz:
</para>

<programlisting>
255.255.255.255 all-ones
</programlisting>

<para>
Aztán pedig:
</para>

<programlisting>
route add -host all-ones dev eth0
</programlisting>

<para>
vagy
</para>

<programlisting>
route add 255.255.255.0 dev eth0
</programlisting>

<para>
Itt természetesen az <literal>eth0</literal> a hálózati eszköz neve, ha 
nálad más, változtasd meg.
</para>

</sect2>

<sect2>
<title>DHCPd beállítások</title>
<para>
Most konfigurálni kell a DHCPd démont. Ennek érdekében meg kell csinálnod, vagy 
módosítanod kell az <filename>/etc/dhcpd.conf</filename> fájlt. Van ehhez grafikus program is a KDE 
alatt ( <ulink
url="http://www.kde.org/">http://www.kde.org/</ulink> ), 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 
<ulink
url="ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/">ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/</ulink> webhelyről.
</para>

<para>
Ha kézzel akarod konfigurálni a démont, akkor kövesd az alábbi utasításokat.
</para>

<para>
A legáltalánosabb esetben a címeket véletlenszerűen akarod kiosztani. Ez a 
következő beállításokkal elérhető:
</para>

<programlisting>
# 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;
}
</programlisting>

<para>
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.
</para>

<para>
Ha WINS szervert kell a Windows kliensek számára 
megadni, akkor beszúrhatod még a <literal>netbios-name-servers</literal> beállítást is, például:
</para>

<programlisting>
option netbios-name-servers 192.168.1.1;
</programlisting>

<para>
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:
</para>

<programlisting>
host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}
</programlisting>

<para>
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.
</para>

<para>
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 
<filename>dhcpd.conf</filename> kézikönyv oldalt.
</para>

</sect2>



<sect2>
<title>A szerver indítása</title>
<para>
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 <filename>dhcpd.leases</filename>
. 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 <filename>dhcpd.leases</filename> elkészítéséhez gépeld be: 

<programlisting>
touch /var/state/dhcp/dhcpd.leases
</programlisting

</para>

<para>
Ez egy üres fájlt készít (méret = 0). Néhány régebbi 2.0-ás szerververzió 
<filename>/etc/dhcpd.leases</filename> 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.
</para>

<para>
Most már indíthatod a DHCP szervert. Gépeld be (vagy rakd be az 
indítószkriptekbe):
</para>

<programlisting>
/usr/sbin/dhcpd
</programlisting>

<para>
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:
</para>

<programlisting>
/usr/sbin/dhcpd eth1
</programlisting>

<para>
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:
</para>

<programlisting>
/usr/sbin/dhcpd -d -f
</programlisting>

<para>
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 
<command>-d</command> és <command>-f</command> paraméter nélkül. Ha rendszerinduláskor is 
el akarod indítani, akkor tedd be például az 


<programlisting>
/etc/rc.d/rc.local
</programlisting>

fájlba (vagy inkább a 
szabványos indítási folyamatba - a ford.)
</para>

</sect2>

<sect2>
<title>Egyéb érdekes olvasnivalók</title>
<para>
A Linux Magazine egy nagyon jó cikket közöl egyik számában
<ulink url="http://www.linux-mag.com/2000-04/networknirvana_01.html">Network
Nirvana: How to make Network Configuration as easy as DHCP</ulink> 
(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.
</para>

</sect2>


</sect1>

</article>
