2012. március 21., szerda

DHCP-szerver Ubuntu 12.04-en

Virtualboxban futó Ubuntu 12.04-em alá elkezdtem kiépíteni a saját hálózatát.

Nézzük ezt a rajzot:

A Virtualboxban kialakítottam egy host-only hálózatot, aminek az a lényege, hogy csak a virtuális világban létezik, semmilyen közvetlen netkapcsolata sincs. A laptopom és a virtuális szerver eth0 kártyája össze van bridge-elve, aminek a lényege, hogy a laptop és a virtuális szerver a "nagyvilág" számára egyenrangú felek - olyan, mintha a virtuális szerver önálló létet élne. (Köszönet a rajzolt laptopért és a szerver-ikonért. Aki ilyen környezetet szeretne kialakítani, annak sok sikert.)

Szóval az a rész jön, amikor a virtuális kliens először indul el. PXE-bootot fogunk használni, azaz a hálózatról bootolunk. Ha ilyesmit forgatunk fejecskénkben, az első megoldandó dolog az, hogy legyen működő DHCP-szerverünk a virtuális szerverünkön. Ez a mai feladat.
Az első dolgunk az /etc/network/interfaces fájl szerkesztése. Ilyen lett:
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 eth1
iface eth0 inet static
        address 192.168.168.10
        netmask 255.255.255.0
        network 192.168.168.0
        broadcast 192.168.168.255
        gateway 192.168.168.1
        dns-nameservers 192.168.168.1
        dns-search itthon.cucc

iface eth1 inet static
        address 192.168.56.101
        netmask 255.255.255.0
        network 192.168.56.0
        broadcast 192.168.56.255
Aztán érvényre juttatjuk a változtatásokat:
sudo /etc/init.d/networking restart
Ha ezzel megvagyunk, és tudjuk pingetni a fizikai gép vboxnet0 adapterét (192.168.56.1), továbbléphetünk.

Telepítjük a DHCP-szerver szoftvert:
sudo apt-get install isc-dhcp-server
Az /etc/default/isc-dhcp-server fájlban megadjuk, hogy a DHCP-szerverünk csak a virtuális szerver belső kártyáján hallgatózzék:
INTERFACES="eth1"
Ezt követően alakítunk egy minimális konfigurációt az /etc/dhcp/dhcpd.conf fájlba:
ddns-update-style none;
authoritative;
log-facility local7;

subnet 192.168.168.0 netmask 255.255.255.0 {
    #A szerver külső kártyáján lévő háló.
    #Csak definiáljuk az alhálót, nem írunk bele semmit.
    #Azért tesszük ide, mert a DHCP-szerver szeret tudni az általa nem kezelt hálózatokról is.
}

subnet 192.168.56.0 netmask 255.255.255.0 {
    range 192.168.56.200 192.168.56.220;
    option routers 192.168.56.101;
    option domain-name-servers 192.168.56.101;
    option domain-name "itthon.cucc";
    default-lease-time 300;
    max-lease-time 600;
}
Indítsuk el a DHCP-szervert:
sudo service isc-dhcp-server start
Ha elindul, akkor jó. Ha nem, akkor érdemes megnézni a /var/log/syslog végét, itt viszonylag korrekten el szokta mondani, hogy mit rontottunk el.
Mondjuk, ha elindul, akkor is kiadhatjuk a
tail -f /var/log/syslog
parancsot, és kapcsoljuk be a klienst. Virtualboxban (v4.1.2) fontos lehet tudni, hogy az alap Intel hálókártyával nem megy a PXE-boot, de az AMD első választható AMD-vel igen (thanks). A syslog-ban ilyesmit kell látnunk:
Mar 19 21:46:56 u1 dhcpd: DHCPDISCOVER from 08:00:27:e2:80:9b via eth1
Mar 19 21:46:57 u1 dhcpd: DHCPOFFER on 192.168.56.200 to 08:00:27:e2:80:9b via eth1
Mar 19 21:46:59 u1 dhcpd: DHCPREQUEST for 192.168.56.200 (192.168.56.101) from 08:00:27:e2:80:9b via eth1
Mar 19 21:46:59 u1 dhcpd: DHCPACK on 192.168.56.200 to 08:00:27:e2:80:9b via eth1
A kliens persze nem jut messzire: egyelőre csak IP-címet kap, nincs miről bootolnia.

Itt jegyzem meg, hogy a syslog tanúsága szerint az apparmor nem engedi, hogy a dhcpd leírja a pid-fájlját.

Legközelebb folytatjuk.

Nincsenek megjegyzések: