[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dnsmasq als DHCP-Proxy statt als DHCP-Server



Am 16.06.20 um 22:20 schrieb Peter Wiersig:
> Stefan Baur <newsgroups.mail2@stefanbaur.de> writes:
>>
>> dhcp-option=121,192.168.123.0/24,dhcpproxy.server.ip.hier
> 
> aus "man dnsmasq":
>      -O, --dhcp-option=[tag:<tag>,[tag:<tag>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>|option6:<opt>|option6:<opt-name>],[<value>[,<value>]]
> 
> Ich habe das noch nicht verwenden müssen, kannst du mir sagen, worauf
> deine Zeile von o.g. matchen sollte? Ich denke das ist die
> <opt>,<value>,<value> Schreibweise?

Richtig, das ist sie.
121 bzw. 249 ist die zu setzende Option, 192.168.123.0/24 ist das Netz,
für das die Route gesetzt werden soll, dhcpproxy.server.ip.hier ist die
IP des Systems, auf dem dieser dnsmasq läuft - denn der Rechner ist auch
gleichzeitig der, der das Gateway ins 192.168.123.0/24 konfiguriert hat.

Er hängt mit einem Interface darin, das IP-Forwarding etc. ist auch
passend eingestellt, d.h. wenn ich an den Clients die oben genannte
Route manuell setze, läuft alles wie es soll. Ich möchte nur das
manuelle Setzen der Routen an Maschinen, die ihre restliche
IP-Konfiguration per DHCP bekommen, vermeiden - und zwar ohne den
bestehenden DHCP-Server anfassen zu müssen. Deswegen der Ansatz mit dem
Proxy-Mode. Der für PXE wie gesagt wunderbar funktioniert.


> Und was war noch Option 249 oder 121? Ich habe die auch nicht mehr im
> Kopf, und die Manpage beschreibt diese beiden nicht.

Je nachdem, welcher Doku Du glauben willst, ist entweder 249 oder 121
die Option, um eine statische Route per DHCP zum Client zu pushen.


> weiterhin: willst du nicht eigentlich dhcp-proxy=... oder so benutzen?
> oder kann dhcpproxy.server.ip.hier die Options alle gar nicht setzen?

Laut manpage schaltet sich dnsmasq in den DHCP-Proxy-Modus, wenn man
statt (z.B.)

dhcp-range=192.168.0.50,192.168.0.150,12h

den Parameter so befüllt:

dhcp-range=<dhcpproxy.server.ip.hier>,proxy

Also die eigene IP des Rechners mit dnsmasq dort angibt.

Und wie gesagt: Wenn man dnsmasq als DHCP-Proxy verwenden will, um in
einem Netz mit vorhandenem DHCP-Server die notwendigen Informationen für
PXE zu ergänzen, dann klappt das so auch. Selbst schon mehrfach genutzt.


> Könntest du auch nur mit den dnsmasq arbeiten, bzw. wo kommt dein
> größeres Problem eigentlich her? Ich habe bei deiner Frage irgendene
> komische "Z geht nicht weil Y" obwohl das Problem eher X ist.

Siehe oben: DHCP-Server im Netz aktiv und die Config soll nicht
angefasst werden. Trotzdem soll die zusätzliche Route auf den Clients
eingetragen werden.
Frage daher: Geht das analog dem Ergänzen der für PXE benötigten
Informationen mit dnsmasq im DHCP-Proxy-Modus, oder ist dnsmasq dafür
schlichtweg nicht geeignet und daher jegliche Suche nach einer passenden
Konfiguration sinnlose Zeitverschwendung?

> 
>> Geht das, was ich vorhabe, im Proxy-Mode gar nicht (müsste dnsmasq dazu
>> der echte DHCP-Server sein?), mache ich etwas falsch, oder ist hier was
>> kaputt?
> 
> Du willst das auch für den """ PXE "proxy-DHCP" """ aus der Manpage
> nutzen?


Also grundsätzlich ist bei dnsmasq die Manpage leider nicht so hilfreich
wie die Kommentare im Config-File, das von Debian als Default
mitgeliefert wird.

Die Manpage scheint mehr davon auszugehen, dass man dnsmasq manuell an
der Kommandozeile starten will, mit diversen Parametern, statt einem
Configfile.

Aber im Block für

-F,--dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>|<mode>][,<netmask>[,<broadcast>]][,<lease
time>]

-F,--dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-IPv6addr>[,<end-IPv6addr>|constructor:<interface>][,<mode>][,<prefix-len>][,<lease
time>]

findet sich der Absatz

For IPv4, the <mode> may be proxy in  which  case  dnsmasq  will
provide  proxy-DHCP  on  the specified subnet. (See --pxe-prompt
and --pxe-service for details.)

Und wie Du oben siehst, ja, genau das tue ich.
dhcp-range=<dhcpproxy.server.ip.hier>,proxy
                                      ^^^^^

> Wenn du deine Konfiguration mit Ubuntu ausprobierst, was ist dann bei
> "dhclient -v " o.ä. auf der Client Seite zu sehen?

Genau das gleiche, wie wenn der Proxy nicht aktiv ist. Das ist etwas
frustrierend. So was wie -vv kennt dhclient leider nicht.


> In deinem Log ist dhcpproxybox der dnsmasq und dhcpproxy der entfernte
> nicht änderbare dhcp-Server?

Nein. "dhcpproxybox" ist der Hostname zur IP-Adresse
"dhcpproxy.server.ip.hier".

Wenn es das für Dich einfacher macht, stell Dir vor, es spielt alles im
192.168.0.0/24, Gateway, DNS und DHCP-Server ist 192.168.0.*1*, und der
dnsmasq läuft auf einer Maschine mit dem Namen dhcpproxybox und der IP
192.168.0.*2* - diese Maschine hat auch ein zweites Interface mit
192.168.123.2, worüber sie das 192.168.123.0/24 erreichen kann.

Und wie gesagt: Am Routing etc. hängt es nicht, trage ich die Routen
manuell ein, klappt alles.

Es geht um die zentrale Frage: Kann dnsmasq überhaupt im Proxy-Modus
Routen an DHCP-Pakete "anhängen", oder geht das nur für PXE-Kram?
Und nur wenn das überhaupt auch für Routen geht, gibt es die Folgefrage:
Was mache ich falsch?

Gruß
Stefan


Reply to: