ISC DHCP im Jail: lo0 Alias geht das?

m4rkus

Well-Known Member
Hallo,

ich habe heute versucht den dhcpd von ISC zu installieren / konfigurieren und mal eine Frage bzgl. des Netzwerkparts.

Ich habe einen Server mit einigen Interfaces (4 Netzwerkkarten).
Aktuell nutze ich lediglich 1

re0: 192.168.2.123

Dann habe ich in der jail.conf Aliasse auf das Loopbackinterface angelegt und mittels pf rdr-Rules die Pakete entsprechend weitergeleitet.
Diese Aliasse haben jedoch Adressen aus dem Bereich 10.0.0.1

Wenn ich das DHCP-Jail starte, meckert der Daemon, dass kein passendes Subnet konfiguriert ist. Ich habe natürlich die Range 192.168.2.x-192.168.2.y genommen.
Weiterhin kann er scheinbar nicht mit lo0 arbeiten (device type 24 unsupported)

Für alle anderen Dienste funktioniert der Ansatz (Host re0, Jails lo0) - kann es sein, dass das beim DHCP nicht funktioniert und ich die Jail-Aliasse alle auf das reguläre Interface packen müsste? Das würde ich gerne vermeiden, da diese dann von außen erreichbar wären (pf mal abgesehen).

Hoffe es war soweit verständlich. Sonst schieb ich Infos nach.

Danke und Gruß
Markus
 
Ein kurzer Versuch mit dnsmasq lässt den DHCP-Server zwar starten, aber:
Code:
Mar  5 17:50:07 dhcp dnsmasq-dhcp[45991]: DHCP packet received on re0 which has no address

rdr-Rule unter pf:
Code:
rdr pass on $ext_if inet proto udp to port 67 -> $Jail3 port 67
rdr pass on $ext_if inet proto udp to port 68 -> $Jail3 port 68
$Jail3 ist 10.0.0.3, welches ein Alias auf lo0 ist.

Ideen? Anmerkungen?
Bisher dachte ich mit Aliassen auf lo0 wäre das passend konfiguriert.
Wenn ich jetzt global in der jail.conf das Interface auf re0 setze, dann sind die Jails "plain" im Netz, oder?

Gruß
Markus
 
Ist das Problem nicht verständlich beschrieben, oder betreibt niemand zu Hause auf einem FreeBSD-Server einen DHCP-Server in einem Jail?

Ob es jetzt dnsmasq oder ISC wird, ist mir relativ egal.
Danke und Gruß
Markus
 
Ein DHCP Server braucht leider nen bpf Device um alle Aspekte von DHCP zu implementieren. Mit gewissen Einschränkungen ist es möglich einen DHCP Server auch in einer Jail zu betreiben. Es ist kein übliches Setup. Vielleicht ist ein DHCP Relay mit einem DHCP Server in einer Jail für dich die optimale Lösung.
 
Also ich bin mittlerweile bei DNSMasq, da der ISC-DHCP-Server nicht mit dem Loopback-Interface zusammenarbeitet.

Was funktioniert:
DHCP-Requests / Discover - Anfragen kommen im Jail sauber an.
DNSMasq schickt laut Logfile auch Pakete raus.

Was funktioniert nicht:
Die Pakete von DNSMasq sehe ich nirgendwo. Also am Client schon mal gar nicht (Wireshark / tcpdump).
Ausgehende Pakete sehe ich weder auf "re0" noch "lo0" (tcpdump -i <int> '(port 67 or port68)').

Ich habe mittlerweile unter anderem pf unter Verdacht.

Was passiert bei einer rdr-Regel, wenn das eingehende Interface das physische ist und der Alias auf dem Loopback sitzt?
rdr-Regel
Code:
Jail3=192.168.2.124 # Alle anderen Jails haben 10er-Ip-Adressen...
rdr pass log (all, to pflog0) on $ext_if inet proto udp to port 67 -> $Jail3 port 67
rdr pass log (all, to pflog0) on $ext_if inet proto udp to port 68 -> $Jail3 port 68

Laut DNSMasq-Log kommen die Requests auf dem Interface re0 an, dass heißt pf redirected nicht auf das Interface lo0 sondern macht irgendwas anderes.

DNSMasq benötigt daher folgende Einstellung, um überhaupt auf die Request zu reagieren - diese behandelt eingehende Requests auf Interfaces ohne IP-Adresse (re0 hat im Jail keine) wie auf den konfigurierten Interfaces
Code:
bridge-interface=lo0,re0

Das DHCP-Jail kommt über pf auch ins Netz (ping und alles andere geht):
Code:
nat log(all, to pflog0) on $ext_if from lo0:network to any -> ($ext_if)

Die Antworten (DHCPOFFER / DHCPNAK / DHCPACK) gehen laut logfile raus
Code:
Mar  7 18:36:17 dnsmasq-dhcp[60457]: 314797371 DHCPREQUEST(lo0) 192.168.2.151 00:1d:ec:02:02:d7
Mar  7 18:36:17 dnsmasq-dhcp[60457]: 314797371 DHCPNAK(lo0) 192.168.2.151 00:1d:ec:02:02:d7 address not available
Allerdings scheinbar auf lo0 - das liegt dann wahrscheinlich an der eigentlich notwendigen Option (bridge-interfaces).

Ich finde diese Pakete nirgends.
Irgendwelche Ideen? tcpdump auf lo0 zeigt nichts, pflog0 ebenfalls nichts. Wie kann ich eine fehlende pf-Regel ausschließen?

@Moderator: Kann jemand das Topic in "DNSMasq im Jail" ändern?

Danke und Gruß
Markus
 
Hoi,

am oifachsten ist ein DHCP Relay auf dem Mainbost an einem echten Netwerkinterface (wo sonst für nix anderes verwendet wird und nix anderes dran gebunden ist) und einen DHCP Server extern bzw. dann in der Jail. Der DHCP Relaybär reicht dann alles bärig an den DHCP Server oifach weiter und der reichts dann wieder zurück. Da der DHCP Relay auf dem Mainhost hockt und ein echtes Netwerkinterface hat tut das dann au bärig vollständig ohne weitere Probleme.

Beste Grüße
Bummibär
 
Zurück
Oben