PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DHCP: Ein Subnet, zwei NICs, zwei Adressbereiche...



Elvizz
11.03.05, 19:14
Hallo!

Ich habe bei mir einen DHCP-Server laufen. Der Rechner hat zwei Netzwerkkarten (eth0: LAN, wlan0: WLAN) und soll auf beiden aus unterschiedlichen Adresspools (aber aus dem gleichen Subnet) Adressen verteilen.

Ich habe mir das ganze so gedacht:
Ich starte zwei DHCP-Server-Instanzen, die eine lauscht an eth0 und vergibt dort die Adressen, die andere tut das gleiche für wlan0. Allerdings mosert die zweite Instanz, dass bereits eine andere läuft und verweigert den Start. :(

Nun meine Frage: Gibt es eine elegantere Lösung dafür als zwei DHCP-Server laufen zu lassen? Oder wie erzwinge ich, dass die zweite Instanz auch startet?

Vielen Dank für alle Hinweise :)

Grüße,
Elvizz

Terran Marine
11.03.05, 19:19
Ich habe mir das ganze so gedacht:
Ich starte zwei DHCP-Server-Instanzen, die eine lauscht an eth0 und vergibt dort die Adressen, die andere tut das gleiche für wlan0. Allerdings mosert die zweite Instanz, dass bereits eine andere läuft und verweigert den Start. :(


Normalerweise sollte sich der Daemon doch nicht beschweren, sind ja verschiedene Netzwerkkarten betroffen.
Sicher das du die Server jeweils nur an die eine NIC bindest?

Gruß
Terran

geronet
11.03.05, 19:21
Ich bin mir nicht ganz sicher aber wenn du zwei Adressbereiche angibst bei einem Server vergibt er den Clients die jeweiligen Adressen passend zum Subnetz der Netzwerkkarte, oder?

Elvizz
11.03.05, 20:34
Normalerweise sollte sich der Daemon doch nicht beschweren, sind ja verschiedene Netzwerkkarten betroffen.
Sicher das du die Server jeweils nur an die eine NIC bindest?

Der Server läuft mit folgenden Parametern:
/usr/sbin/dhcpd3 -q eth0 -cf /etc/dhcp3/dhcpd_eth0.conf

Sollte also wohl stimmen...


Ich bin mir nicht ganz sicher aber wenn du zwei Adressbereiche angibst bei einem Server vergibt er den Clients die jeweiligen Adressen passend zum Subnetz der Netzwerkkarte, oder?

Wenn das so wäre, wäre das natürlich super :) Ich habe das noch gar nicht ausprobiert, da ich nirgendwo etwas in der Richtung gelesen hatte und mir auch nicht vorstellen konnte, dass es so einfach sein könnte.

Ich werde das (wahrscheinlich erst morgen) mal ausprobieren und hier berichten.

Danke für eure Hinweise :)

Grüße,
Elvizz

geronet
11.03.05, 21:26
Ja eben, klingt doch logisch. Ein DHCP Server ist doch immer lokal am Subnetz angeschlossen, nicht über einen Router. Somit wäre es doch totaler Unsinn den Clients falsche Adressen zu geben mit denen sie nichts anfangen können.

HackThor
11.03.05, 22:29
Also laut der Manpage (leider nicht lokal sondern ersucht - keine Ahnung ob die aktuell ist...) kann man den "dhcpd" auch auf mehreren Interfaces lauschen lassen. Auszug:

dhcpd [ if0 [ ...ifN ] ]
2x starten wird wohl nicht gehen - das verhindert (sehr effektiv) die .pid-Datei. Ansonsten sollte der - wie erwähnt - anhand des Subnetzes aus dem die Anfrage kommt auch bestimmen können aus welchem Pool denn nun die IP zu nehmen ist (alles andere wäre auch wirklich Unsinn).

ciao

Michael

Elvizz
11.03.05, 22:38
Also laut der Manpage (leider nicht lokal sondern ersucht - keine Ahnung ob die aktuell ist...) kann man den "dhcpd" auch auf mehreren Interfaces lauschen lassen. Auszug:

Ja, stimmt. Das war auch die ursprüngliche Konfiguration. Allerdings bin ich eben - fälschlicherweise, wie es scheint - davon ausgegangen, dass der dann die falschen IPs (bzw. eben nicht so, wie ich es will) verteilt.


2x starten wird wohl nicht gehen - das verhindert (sehr effektiv) die .pid-Datei. Ansonsten sollte der - wie erwähnt - anhand des Subnetzes aus dem die Anfrage kommt auch bestimmen können aus welchem Pool denn nun die IP zu nehmen ist (alles andere wäre auch wirklich Unsinn).

Das mit den .pid-Dateien habe ich in der Datei /etc/init.d/dhcp3-server auch umgebogen, so dass für jede laufende Instanz eine Konfigurations- und eine .pid-Datei vorhanden ist. Der Server scheint das noch auf eine andere Weise festzustellen.

DHCPDPID1=/var/run/dhcpd_eth0.pid
DHCPDPID2=/var/run/dhcpd_wlan0.pid
start-stop-daemon --start --quiet --pidfile $DHCPDPID1 \
--exec /usr/sbin/dhcpd3 -- -q eth0 -cf /etc/dhcp3/dhcpd_eth0.conf
start-stop-daemon --start --quiet --pidfile $DHCPDPID2 \
--exec /usr/sbin/dhcpd3 -- -q wlan0 -cf /etc/dhcp3/dhcpd_wlan0.conf

Wie gesagt, morgen werde ich dann ein wenig Licht ins Dunkel bringen und es endlich auch mal ausprobieren können.

Grüße,
Elvizz

nunja
12.03.05, 00:32
Du mußt entweder einen DHCP Server für alle Subnetze laufen laßen oder wenn zwei DHCP Server laufen dem Einen mitteilen das er quasi als Herr arbeitet und dem Anderen mitteilen das er der Diener ist.
Angaben dazu gibt in den HOWTOs.

Den DHCP Server zweimal auf dem gleichen Rechner starten ist Blödsinn.

Elvizz
12.03.05, 14:02
So, also jetzt habe ich es endlich testen können: Es hat mit einem DHCP-Server, der an beide NICs gebunden ist und jeweils passende Subnet-Einträge hat, geklappt :)

Der Vollständigkeit halber poste ich hier mal die relevanten Informationen, damit ander auch was davon haben:

/etc/dhcp3/dhcpd.conf
#...
#der Teil für eth0
subnet 192.168.1.0 netmask 255.255.255.128 {
range 192.168.1.64 192.168.1.120;
#ein paar static Hosts folgen hier...
}
#und der Teil für wlan0
subnet 192.168.1.128 netmask 255.255.255.128 {
range 192.168.1.140 192.168.1.190;
#auch hier ein static Host...
}
Die Interfaces haben entsprechende Netzmasken:

eth0 inet addr:192.168.1.2 Bcast:192.168.1.127 Mask:255.255.255.128
wlan0 inet addr:192.168.1.130 Bcast:192.168.1.255 Mask:255.255.255.128
So, ich hoffe, dass nicht nur ich daraus gelernt habe...

Grüße,
Elvizz