Debian Squeeze Hálózat, DHCP-szerver

Debian rendszereken hálózati beállításokat nézzük meg és dhcp-szervert konfigurálunk.

Első lépésként konfiguráljuk be a hálózati kártyáinkat, az /etc/network/interfaces fájlban.

Szerepelnie kell a localhost-nak ami a gépünket jelöli, vagyis a loopback-nek.

auto lo
iface lo inet loopback

Innentől jöhetnek a hálókártyák. A jelölésük eth0, eth1, eth2 stb.

Amennyiben például olyan helyről kapjuk az internetet ahol van dhcp-szerver és kapunk ip-t, akkor a következő sorokra van szükségünk:

auto eth0
iface eth0 inet dhcp

A vidanetes(kábetnetes) internet vonalak ilyenek, vagy ha egy router mögé kötjük a szerverünket, akkor a routertől kapja az ip-t. Persze egy másik szervertől is kaphat.

Beállíthatunk statikus ip-címet is a hálókártyánkra a következő formában:

auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.0.0
network 10.0.0.0
broadcast 10.0.255.255
dns-search ceg.hu

ha van még egy hálókártyánk:

auto eth2
iface eth2 inet static
address 10.1.0.1
netmask 255.255.0.0
network 10.1.0.0
broadcast 10.1.255.255

Itt sok beállítási lehetőség van, nem sorolnám fel mindet mi micsoda(tessék elővenni a hálózati ismereteket!), lehetne gateway-t is írni, hálókártya mac-címét átírni: (hwaddress ether 00:10:22:44:A2:E2) stb. A statikus ip címre állított hálókártyákat azért alkalmazunk, mert fix ip címet kaptunk egy szolgáltatótól a szerverünkhöz. Vagy a belső hálózatunkban szeretnénk ha ezen a címen érnék el a szerverünket a gépek. Ha nincs a hálókártyánknak fix ip címe, akkor nem fog menni a dhcp sem, ezért kell ezt bekonfigurálni.

Értelem szerűen annyi ilyen bejegyzés blokkunk lesz amennyi hálózati kártyánk/portunk van. Én szeretek nagy ip tartományokat hagyni, hogy később ne fussunk bele abba a hibába, hogy kevés gépnek tudunk csak ip-t osztani. pl: address 10.2.0.1 vagy 10.3.0.1 vagy 10.4.0.1 persze 255.255.0.0-ás netmask-al.

Ide gyorsan még felvésem, hogy ha azt szeretnénk, hogy adsl kapcsolat fusson a hálókártyánkon mit kell írni:

auto dsl-provider
iface dsl-provider inet ppp
provider dsl-provider
# please do not modify the following line
pre-up /sbin/ifconfig eth3 up # line maintained by pppoeconf

Ehhez szükség lesz majd még a ppp csomagra. Amit majd be kell még konfigurálni, de egyelőre nem szeretnénk kiereszteni a netre a rendszerünket, mert még nincs egy jó tűzfalunk se. Így erre majd később visszatérünk.

Miután bekonfiguráltuk a hálózati kártyáinkat, adjuk ki a következő parancsot:
/etc/init.d/networking restart
Ezzel újra indítjuk a "hálókártyákat" csúnyán kifejezve. Gyakorlatilag ugyanaz, mint windows-ban az ipconfig /renew parancs amivel meglehet újítani az ip címeket.
Ahhoz, hogy ellenőrizhessük az eredményt adjuk ki az ifconfig parancsot. A kimeneten mindent szépen ellenőrizhetünk, hogy jó értéket kapunk-e.

Lássunk neki a dhcp-szerver installálásához. A lenny-ben még dhcp3-server néven futott, de most már isc-dhcp-server néven fut, ez az új verzió. Ha valaki az előbbit teszi fel sqeeze-ben, akkor is az isc fog települni, csak egy kompatibilitási csomag települ fel a dhcp3-ból. Isc telepítése:

apt-get install isc-dhcp-server

Az /etc/dhcp/ mappában találjuk a konfig fájlokat(dhcp3-nál a dhcp3 mappában). Itt ami nekünk fontos, az a dhcpd.conf fájl. A fájl elején lévő beállítások megfelelőek alapértelmezetten. A ddns beállítások a dinamikus bind-dhcp kapcsolathoz szükségesek, de nem létszükségletűek csak, ha minden gépet névvel akarunk elérni.

Alatta valami hasonlót kell találnunk vagy ha nem, akkor nekünk begépelnünk(tehetünk sok subnet blokkot is a fájlba):

subnet 10.0.0.0 netmask 255.255.0.0 {
range dynamic-bootp 10.0.1.1 10.0.1.254;
range 10.0.2.0 10.0.254.254;
option domain-name "server.ceg.hu";
option domain-name-servers 10.0.0.1;
option routers 10.0.0.1;
include "/etc/dhcp3/files/gepek.conf";
}

Az option routers-hez gyakorlatilag a feljebb beállított eth1-es hálókártyánk ip-jét írtuk be. Innen tudjuk, hogy ez a tartomány az eth1-es hálókártyán fog dhcp-szerverként üzemelni. Az első sor jelzi, hogy mekkora tartományt fedtünk le és miből gazdálkodhatunk az eth1-en. A range-ek határozzák meg a dinamikus ip tartományt, amikben automatikusan osztja az ip-ket a szerver, a klienseknek. Ha ezeket kivesszük, akkor csak fix ip címeket szolgál ki a dhcp. Beállíthatjuk a deny unknown-clients; paramétert is, hogy a megadott mac című klienseknek szolgáltasson csak ip-címet, a szerverünk. A dynamic-bootp -vel hálózatról bootoló eszközök tartományát jelöli(nem tudom, hogy jelenleg mennyire jellemzőek az ilyen eszközök). Adhatunk domain nevet a tartományunknak és megadhatjuk a név szerverünk elérhetőségét is. Ami lényeges az az utolsó sor még. Mi itt tároljuk a fix ip címeket és hozzájuk tartozó mac címeket. Nem kötelező külön fájlt "include-olni", de ha több száz gépben gondolkodunk. Nagyon durván megnőhetne a dhcpd.conf fájlunk és abból áttekinthetetlen káosz lenne. A gepek.conf fájl tartalma:

host pc01{
hardware ethernet 00:1A:4D:3D:56:DB;
fixed-address 10.0.4.1;
}

host pc02{
hardware ethernet 00:1A:4D:3B:26:2C;
fixed-address 10.0.4.2;
}

Persze adjunk beszédesebb neveket a gépeknek, mert jól jön beazonosításkor. Mi irodánként szoktunk külön egységes ip tartományokat adni pl iroda1: 10.3.4.x, iroda2: 10.3.5.x, és így az irodában az összes gép egy tartományból kap ip-t. Az emeletnek vagy épületrésznek a fő tartománya akkor a 10.3.x.x lesz. Szerintem érdemes egy-egy épületbe egy-egy kábelt húzni külön ip tartománnyal.

Újraindítani a szervert így lehet: /etc/init.d/isc-dhcp-server restart

Tesztelni egyszerűen rá kell dugni egy gépet és kap-e ip-t. Ip-t ugye megnézni windows-on: ipconfig /all (megújjítani /renew). Érdemes lehet még rápingelni a szerverre vagy arra a hálókártyára amire dugtuk a gépünket pl: 10.3.0.1. Ha nem kaptunk ip-t vagy elszúrtunk valamit, de az már a restartkor kiderül a csúnya hiba üzenet miatt. A logokat alapesetben a /var/log/syslog-ban találhatjuk meg a dhcp-serverről. Ha nem állítottunk be dinamikus tartományt, akkor vegyük fel a gépünk mac címét. Esetleg dugjuk be a jó hálókártyába a gépünket, a szerveren :)

Aki hiányolná a részleteket az itt megtalálhatja őket:

ifconfig kimenete

dhcp konfigurálás

2013.02.23.