Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

isc dhcp server mit verschiedenen pools

150 views
Skip to first unread message

Tobias Ferdinand

unread,
Sep 8, 2003, 6:35:31 PM9/8/03
to
Hi,
habe ein Problem mit dem isc dhcpd. Benutze Suse 8.1.
Ich hab jetzt die dhcpd.conf manual rauf und runter gelesen. Aber irgendwie
komme ich trotzdem nicht weiter. Vielleicht verstehe ich es auch einfach
falsch...

Ich habe ein IP-Netz 10.3.51.0, indem der dhcp-server die IP's verteilen
soll.
Dabei soll es 2 pools geben.
Einen für meine Rechner, die imemr hier sind
und einen für Gäste.

Die Entscheidung, aus welchem Pool die IP-Adresse vergeben wird, wollte ich
anhand von Mac-Adressen der NICs.
Also wenn ich die Mac-Adresse in der entsprechenden Klasse eintrage, soll
aus dem ersten Pool genommen werden, ansonsten aus dem anderen.

Jetzt wird mir wahrscheinlich gleich gesagt, dass ich das einfach mit
host xyz {
statis-address xxx;
hardware ethernet xxx;
}
machen soll. Allerdings will ich, dass die IP in beiden Pools dynamisch
vergeben wird. Es soll nicht immer die gleiche geben.


Hier die Config, wie ich eigentlich dachte, dass es gehen würde:
# dhcpd.conf
#

server-identifier 10.3.51.22;
option domain-name "ufo";
default-lease-time 30; # Sekunden
max-lease-time 60; # Sekunden
ddns-update-style ad-hoc; #interim;
ddns-updates on;

class "cd-pool-class-1" {
match pick-first-value (option dhcp-client-identifier, hardware);
}
# Der class hab ich sogar schon so einen komischen Namen gegeben, weil ich
dachte es würde was bringen ;/)
# Was option dhcp-client-identifier, hardware genau heißt, weiss ich leider
noch nicht, steht auch nicht da wo ich gesucht hab.
# Leider finde ich auch keine Einstellung für ein Loglevel oder debug etc.,
wo man dann vielleicht sehen könnte was der Server
# genau vergleicht.

subclass "cd-pool-class-1" 00:50:04:48:29:1c;
# Hier hab ich dann mal die Mac-Adresse von einem meiner Rechner angegeben.
Aber gefunden wird sie nicht.

subnet 10.3.51.0 netmask 255.255.255.0 {
option broadcast-address 10.3.51.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 10.3.51.22;
option routers 10.3.51.22;
option netbios-name-servers 10.3.51.10;

# Pool für tobias
pool {
allow members of "cd-pool-class-1";
range 10.3.51.50 10.3.51.149;
}
# Hier eben die Pool-Zuordnung für meine Rechner.

# Folgendes habe ich auskommentiert, das würde aber sogar schonmal gehen....
# Pool für Gäste
# pool {
# deny members of "tobias";
# allow unknown-clients;
# range 10.3.51.160 10.3.51.199;
# }
}

Unten kommen dann noch die secrets für das DNS-Update, aber das können wir
aussen vor lassen - das geht.

Hier noch die Meldung aus'm Logfile, die mir dann zeigt, dass der match
falsch war:
Sep 9 00:25:28 gate dhcpd: DHCPDISCOVER from 00:50:04:48:29:1c via eth0:
network 10.3.51.0/24: no free leases
Hier wird die Mac-Adresse so angezeigt, wie ich sie auch oben angegeben hab,
aber es tut nicht.
Wenn ich allow members of "cd-pool-class-1"; oben in der conf für den pool
entferne, bekommt er eine IP.

Dieses "match pick-first-value (option dhcp-client-identifier, hardware);"
hab ich auch mal etwas verändert, mit substr probiert etc., hat aber auch
nichts geholfen.

Tobias


Tobias Ferdinand

unread,
Sep 9, 2003, 6:00:19 AM9/9/03
to

"Henning Hucke" <h_huck...@aeon.icebear.org> schrieb im Newsbeitrag
news:Pine.LNX.4.56.03...@aeon.icebear.org...
* Tobias Ferdinand <TobiasF...@gmx.net> schrieb in
de.comp.os.unix.lin...:

>> [...]


>> Ich habe ein IP-Netz 10.3.51.0, indem der dhcp-server die IP's verteilen
>> soll.
>> Dabei soll es 2 pools geben.
>> Einen für meine Rechner, die imemr hier sind
>> und einen für Gäste.
>

>Verd* Sch*! Warum finde ich solche Sachen immer in maximal fünf
>Minuten!?
>Bitte
>
> man -P "less +'/^ADDRESS POOLS'" dhcpd.conf
>*genau* durchlesen. Und _bitte_ notfalls erst noch ein wenig experimen-
>tieren, bevor Du nochmal fragst. Meinetwegen auch mich persönlich.

Das hat mir schon ein bisschen weitergeholfen. Mit zwei Pools würde ich das
jetzt mit untenstehender Config hinbekommen.
Allerdings wollte ich das Teil auch beliebig auf 3 oder mehr pools
ausweiten... (hätte ich vielleicht gleich sagen sollen, dachte aber es wird
so einfacher;)
Und ich glaube dann komme ich nicht um dieses Klassenzeugs drum herum.
Das mit den "known clients" sagt ja, dass der Pool von Hosts benutzt werden
darf, die eine Host-Declaration haben.
Allerdings scheint eine Hostdeklaration nicht nur für einen bestimmten Pool
sondern für die gesamte Config gültig zu sein. (So hab ich da zumindest
gerade getestet)

Mein Rechner mit der MAC 00:50:04:48:29:1c bekommt mit dieser Config
trotzdem die IP-Adresse 10.3.51.149 zugewiesen.

subnet 10.3.51.0 netmask 255.255.255.0 {
option broadcast-address 10.3.51.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 10.3.51.22;
option routers 10.3.51.22;
option netbios-name-servers 10.3.51.10;

# Pool für Gruppe 1
pool {
allow known clients;
range 10.3.51.150 10.3.51.159;
host bar{
hardware ethernet 00:50:04:48:29:1c;
}
}
# Pool für Gruppe 2
pool {
allow known clients;
range 10.3.51.50 10.3.51.149;
host foo{
hardware ethernet 00:50:04:48:29:1f;
}
}
# Pool für Gäste
pool {
allow unknown-clients;
range 10.3.51.160 10.3.51.199;
}
}

Vielleicht bringt mich auch ein anderer Ausdruck ala:
allow hardware ethernet = 00:50:04:48:29:1c
oder sowas weiter. Allerdings hab da auch nicht verstanden, wie man das
machen kann...

Nochmal vielen Dank für die bisherige und kommende Hilfe ;)

Tobias


Tobias Ferdinand

unread,
Sep 10, 2003, 12:44:28 PM9/10/03
to

"Henning Hucke" <h_huck...@aeon.icebear.org> schrieb im Newsbeitrag
news:Pine.LNX.4.56.03...@aeon.icebear.org...

>> [... Fullquote-TO gelöscht ...]


>> Das hat mir schon ein bisschen weitergeholfen. Mit zwei Pools würde ich
das
>> jetzt mit untenstehender Config hinbekommen.
>> Allerdings wollte ich das Teil auch beliebig auf 3 oder mehr pools
>> ausweiten... (hätte ich vielleicht gleich sagen sollen, dachte aber es
wird
>> so einfacher;)
>

>Wie ich bereits schrub: RTFM
>
> man -P 'less +"/^SUBCLASSES"' dhcpd.conf

Wie man vielleicht meinem ersten Posting bzw. der geposteten dhcpd.conf
entnehmen kann (Nein, diesmal schicke ich keine mehr mit, scheint sowieso
keine Beachtung zu finden), habe ich die "F Manual" gelesen. Aber mir
scheint, als hätte man da mit der Doku doch etwas gespart. Oder wird in der
dhcpd.conf von einer Sprache o.Ä. gebrauch gemacht, die allgemein bekannt
ist und die ich nicht kenne?

Aber gut, gehen wir die Manual (SUBCLASSES) mal durch:
Die Klassen-Deklaration wird dort wie folgt beschrieben:
class "allocation-class-1" {


match pick-first-value (option dhcp-client-identifier, hardware);
}

"match" heisst wohl, dass etwas zutreffen soll (soweit komm ich noch mit;)
"pick-first-value" wird schon komplizierter. Dieser Ausdruck bzw.
Funktion(?) kommt in der Manpage nur einmal vor - an dieser Stelle. Aber ich
gehe mal davon aus, dass einfach das erste gesetzte aus den zwei Werten der
Klammer genommen wird..
Womit wir zu der Klammer kommen. Was ist "option dhcp-client-identifier"?
Wie bekomme ich raus, was mein Rechner als solchen Wert zurückgibt?
Als zweites in der Klammer ist der Wert "hardware". Was ist das genau für
ein Wert? Ist das jetzt die MAC-Adresse, oder doch irgendwas anderes.
Immerhin muss man die Mac-Adresse in einer host-Deklaration als "hardware
ethernet" angeben *verwirrt sein*.
Aber wenn "hardware" = mac-Adresse, solte folgendes ja gehen:
class "x" { match hardware;} # Fertig...

OK, debugfunktion hab ich noch immer keine gefunden, deshalb kann man nicht
erfahren, was mit hardware jetzt wirklich gemeint ist. Also kommen wir zu
den subclasses, wie sie in der Manual beschrieben werden:

subclass "allocation-class-1" 1:0:0:c4:aa:29:44;

Hier habe ich bis jetzt gedacht, die Werte zwischen Semikolon und dem
letzten Anführungszeichen seie die Mac-Adresse bzw. der Wert, den der client
liefern muss. Hier kann es aber auch sein, dass ich die Manpage garnicht
mehr verstehe:
"The data following the class name in the subclass declaration is a constant
value to use in matching the match expression for the class."

Aber ich glaube ich verstehe es schon richtig. Aber warum sind in dem
Beispiel 6 Doppelpunkte? Das sieht mir irgendwie nicht nach Mac-Adresse
aus?!!?

>Fällt mir jetzt erst auf, dass Dir in der man page selbst offenbar schon
>das haarklein vorgekaut wird, was Du suchst...

k.K.

>> [...]


>> Vielleicht bringt mich auch ein anderer Ausdruck ala:
>

>Vielleicht fällt morgen auch ein Apfel auf die Venus...

k.K. (ich raste langsam aus, bei den Kommentaren)
Auch diesen Ausdruck hatte ich aus der Man (mehr Doku gibt's ja sowieso
nicht)!

>Lesen und Probieren statt Raten!
Probieren != raten?
Ich glaub hier kommt man mit Wissen weiter...deswegen habe ich gefragt.
Ich hab die Man langsam durch...
Wenn Du zufällig so ein Teil am Laufen hast, kannst Du mir, anstatt
Ratschlägen, wo was steht, ja mal eine Config posten, die funktioniert. Die
Mac-Adresse hab ich ja zwei mal geschrieben.

>> [...]
>
>G %-| Henning Hucke
>--
>Wer mir ungefragt Werbemüll an die private Mailadresse schickt,
>erklärt sich mit der Zusendung der X11-Sourcen via FTP-Mail und einer
>Entschädigungszahlung an mich einverstanden. Die Zustimmung gilt mit der
>Absendung der email an mich als erteilt. (c) unbekannt

Was ist denn eine FTP-Mail? Muss mein Mailserver dafür auf Port 20/21
lauschen? ,)

Tobias


Tobias Ferdinand

unread,
Sep 11, 2003, 1:41:53 PM9/11/03
to

"Henning Hucke" <h_huck...@aeon.icebear.org> schrieb im Newsbeitrag
news:Pine.LNX.4.56.03...@aeon.icebear.org...

>Tilt! Limit exceeded. Moved into kill file. *Plonk*

You are so great!
Ich weiß jetzt, wo's keine Hilfe gibt. Aber das scheint das Open-Source
Geheimnis zu sein.

--
Tobias

PS: nach 5 rfc's und 3 man-Pages geht jetzt alles. Hätte man das nicht
einfacher haben können?
Aber trotzdem danke. Ich weiß, wo ich nicht mehr fragen muss...


0 new messages