Kann man den DSM DHCP Server als DHCP Proxy konfigurieren?

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Ich kaempfe immer noch damit meine Syno als PXE Boot Server fuer meine Raspberries zu konfigurieren.

Solange man im lokalen Netz die Syno als DHCP Server betreibt funktioniert das auch perfekt. Ich moechte aber meine AVM FB weiterhin als DHCP Server benutzen.

Momentan habe ich sowohl den FB DHCP Server als auch den Syno DHCP Server aktiv in meinem Netz. Das erzeugt aber einen Kampf zwischen beiden DHCP Servern - je nachdem wer schneller ist siegt - und d.h. die Raspberry PXE Clients starten nicht zuverlässig da immer mal wieder ihr DHCP Request schneller von der FB beantwortet wird die leider keine PXE Boot Informationen enthalten. Auch erhalten meine normalen Clients manchmal IP Adressen aus dem Syno DHCP IP Adressbereich. Das ist nicht so schlimm da alle DHCP Infos stimmen. Es ist eben nicht klug mehrere DHCP Server im lokalen Netz zu haben.

Mit dnsmasq kann man einen DHCP Proxy konfigurieren. Den koennte ich wohl auch per iPK installieren und konfigurieren. Ich moechte aber gerne Standardtools von Syno ohne iPK benutzen.

Deshalb meine Frage in die Runde: Kennt jemand eine Moeglichkeit den DSM DHCP Server als DHCP Proxy zu konfigurieren? Ich scheue mich auch nicht direkt in den DHCP Configurationsdatein per vi Updates zu machen. Nur muss ich wissen welche Updates notwendig sind :)
 

Synchrotron

Benutzer
Sehr erfahren
Mitglied seit
13. Jul 2019
Beiträge
5.097
Punkte für Reaktionen
2.065
Punkte
259
Will ja nicht blöd sterben: Warum benötigst du in deinem einen eigenen Heimnetzwerk so viel Komplexität ?

Ich würde den DHCP-Server auf der FB lassen, und dann ggf. dort für alles im Heimnetzwerk, was sich nicht laufend ändert, feste IP-Adressen vergeben.

Dann kannst du den Raspis sagen, wo sie die Syno finden, und alles ist gut. Oder verstehe ich da etwas nicht ?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Ein Otto Normalverbraucher DHCP Server der i.d.R. in normalen Internetroutern laeuft teilt seinen Clients mit welche IP sie zu benutzen haben, wo das Standard Gateway ist sowie wo der DNS Server zu finden ist. Damit hat ein Client alle essentiellen Netzwerkinformationen und kann arbeiten.

Ein richtiger DHCP Server kann eine Menge weitere Attribute seinen Clients mitteilen. Dazu gehoert z.B. woher sie ihr Bootimage laden koennen und wie es heisst. Das ist notwendig damit ein PXE Client sein Bootimage findet und laden kann.

Die FB ist ein Otto Normalverbraucher DHCP Server.
 

Synchrotron

Benutzer
Sehr erfahren
Mitglied seit
13. Jul 2019
Beiträge
5.097
Punkte für Reaktionen
2.065
Punkte
259
Na ja, dann leg halt den DHCP auf die Syno, und schalte den auf der FB ab. Oder pack ihn auf einen der Raspis, und schalte die anderen ab. Aber egal wie, es darf nur einer aktiv sein.

Bei mir liegt er deshalb auf der FB, weil ich wegen Paketupdates u.ä. viel häufiger die Syno außer Gefecht setze, als die FB. Das ist eine reine Nörgelvermeidungsstrategie.
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Wenn ich eine Raspi mit DHCP versehe muss auch da der tftp Server liegen. Ich kann dann also nicht tftp und nfs Verzeichnisse auf die Syno legen.

Klar, den DHCP auf dem FB zu deaktivieren ist die Alternative. Aber ich moechte eigentlich das genau nicht. Ein DHCP Proxy auf der Syno wuerde eben die richtige Loesung sein :)
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Würde mich auch sehr interessieren, einfach weil bei uns die DS nicht rund um die Uhr läuft, sich aber durchaus mal neue Anwender außerhalb der normalen Nutzungszeit im Netzwerk anmelden können. Und PXE mir beim Verteilen von Images effektiver erscheint, als x USB-Sticks mit zB ActiveBackkup4Business

EDIT:
https://www.ip-phone-forum.de/threads/zweiten-dhcp-im-selben-subnet-für-pxe-boot.284643/

Selbiges Problem, anderer Ansatz, aber offenbar auch ungelöst
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Code:
ps -ef|grep  -E "dhcp|tftp" | grep -v grep
root      9945     1  0 10:54 ?        00:00:00 dnsmasq --user=root --cache-size=200 --conf-file=/etc/dhcpd/dhcpd.conf --dhcp-lease-max=2147483648
root      9946  9945  0 10:54 ?        00:00:00 dnsmasq --user=root --cache-size=200 --conf-file=/etc/dhcpd/dhcpd.conf --dhcp-lease-max=2147483648
root     27729     1  0 09:16 ?        00:00:04 /usr/bin/opentftp -i /etc/opentftp.ini -l /var/log/opentftp.log
und
Code:
netstat -tulpen|grep -E "dnsmasq|tftp"
tcp        0      0 0.0.0.0:53              0.0.0.0:*              LISTEN      0          20816435   9945/dnsmasq
tcp6       0      0 :::53                   :::*                   LISTEN      0          20816437   9945/dnsmasq
udp        0      0 0.0.0.0:53              0.0.0.0:*                          0          20816434   9945/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                          0          20816431   9945/dnsmasq
udp        0      0 192.168.0.9:69          0.0.0.0:*                          0          19634628   27729/opentftp
udp        0      0 127.0.0.1:69            0.0.0.0:*                          0          19634627   27729/opentftp
udp6       0      0 :::53                   :::*                               0          20816436   9945/dnsmasq

zeigt dass der Syno DHCP Server ein dnsmasq ist, bei dem kein tftp enabled ist sondern opentftp benutzt wird. Wenn man /etc/dhcpcd/dhcpcd.conf entsprechend modifiziert und den dnsmasq restartet ist aus dem Syno DHCP Server ein DHCP Proxy geworden und alle meine PXE Raspberries erhalten IPs von meiner FB :) Juppieijeay :)

Code:
cat /etc/dhcpd/dhcpd.conf
interface=eth0
dhcp-range=set:eth00,192.168.0.0,proxy
dhcp-option=vendor:PXEClient,43,Raspberry Pi Boot
dhcp-leasefile=/etc/dhcpd/dhcpd.conf.leases
dhcp-script=/usr/share/dhcpd/dhcpd-script.sh

Code:
tail /var/log/dnsmasq.log
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: started, version 2.78-144-gfd4b03e cachesize 200
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
2019-10-25T14:06:47+02:00 synolix dnsmasq-dhcp[17077]: DHCP, proxy on subnet 192.168.0.0
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: reading /etc/resolv.conf
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: using nameserver 192.168.0.1#53
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: using nameserver 192.168.0.12#53
2019-10-25T14:06:47+02:00 synolix dnsmasq[17077]: read /etc/hosts - 4 addresses

Nicht klar ist ob diese Aenderung im laufenden System einen Reboot der Syno uebersteht. Muesste man mal testen. Vermutlich nicht und wird dann wieder die alte Konfig generiert. Auch sollte man tunlichst nichts an den DHCP Einstellungen im DSM UI vornehmen da diese ebenfalls die dnsmasq Konfig ueberschreiben. D.h. man muss sich wohl dann noch mal genauer das /etc/rc.network Script ansehen und verstehen was genau beim Booten mit der DHCP Serverkonfig angestellt wird (da wird noch irgendwas zusammengemerged
Code:
merge_dhcpd_conf
merge_dhcpd_info
) und einen Workaround suchen wie man diese KonfigAenderung permanent hinbekommt. Im Zweifelsfall tut es wohl auch ein kleines Script welches nach dem Booten der Syno die generierte Konfig mit den geaenderten Definitionen fuer den DHCP-Proxy ueberschreibt und den dnsmasq restartet.
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Anbei ein kleines Script welches den DHCP-Proxy enabled. Das in /usr/local/sbin/enableDHCPProxy.sh kopieren
Code:
#!/bin/bash
cp /etc/dhcpd/dhcpd.proxy.conf /etc/dhcpd/dhcpd.conf
OLD_PID="$(ps -e ww | grep dnsmasq | grep -v grep | cut -f 1 -d ' ' | head -n 1)"
COMMAND="$(ps --no-header -p $OLD_PID -o args)"
kill $OLD_PID
$COMMAND &

und dann als triggered Task beim Booten ausfuehren lassen. Ist nicht getestet ob es beim Boot funktioniert - sollte aber eigentlich funktionieren denn im laufenden System funktioniert es.
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Freut mich :) Hast Du vielleicht auch getestet ob das Script auch beim Boot funktioniert? ich habe meine Syno noch nicht rebootet.
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Das kann ich erst am Wochenende überhaupt umsetzen (falls die Kleine dann und wann mal ne Pause zulässt).


Aber gleich vorweg zur Klärung: Es muss nur das Skript erstellt und mit root-rechten per Aufgabenplaner ausgeführt werden, richtig? Wenn es denn klappt.
Oder umgekehrt, würdest du dir bitte die Mühe machen, und nen kleines Howto hier zusammenstellen. Hatte PXE irgendwann mal angetestet und bin aktuell so garnicht mehr in der Thematik. Einfacher wäre es ich fange nicht wild an was zu basteln

Ansonsten würde ich wie hier unter 3.2 angegeben verfahren und anschließend das Skript ausführen?
https://www.synology.com/de-de/know...ent/How_to_implement_PXE_with_Synology_NAS#t3
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Eben habe ich meine Syno rebootet und meine Raspberries booten immer noch per PXE :) D.h. das Script aktiviert den DHCP Proxy wieder bei einem Syno Reboot wie erwartet.

Mit dem Script sorgst Du nur dafuer dass eine von Dir manuell erstellte dnsmasq Konfiguration in /etc/dhcpd/dhcpd.proxy.conf von dem Syno DHCP Server gelesen und aktiviert wird. Den Inhalt musst Du erstellen.

Code:
ls -la /usr/local/sbin/enableDHCPProxy.sh 
-rwxr-xr-x 1 root root 221 Oct 29 22:27 /usr/local/sbin/enableDHCPProxy.sh

D.h. Du konfigurierst erst einmal den Syno DHCP Server sowie den tftp Server ganz normal mit dem DSM. Danach erstellst Du eine Konfigurationsdatei /etc/dhcpd/dhcpd.proxy.conf in der Du alles das reinkonfigurierst was Du vom dnsmasq DHCP Server verlangst dass er machen soll. In meinem Falle war es den DCHP-Proxy einschalten und den Servicenamen fuer die Raspberry zu definieren. Was da genau in Deinem Anwendungsfalle drin stehen muss musst Du Dir zusammensuchen.
Code:
man dnsmasq
auf einem Linuxrechner liefert sehr viel Informationen (man geht leider nicht auf der Syno - ausser Du installierst man-db per iPK).
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Habe eben verifiziert dass die dhcp Konfig beim Boot wie erwartet wieder ueberschrieben wird. Dabei dann auch festgestellt dass das Script ein klein wenig anders aussehen muss:
Code:
#!/bin/bash
cp /etc/dhcpd/dhcpd.proxy.conf /etc/dhcpd/dhcpd.conf
OLD_PID="$(ps -e ww | grep dnsmasq | grep -v grep | head -n 1 | awk ' { print $1 }' )"
COMMAND="$(ps --no-header -p $OLD_PID -o args)"
kill $OLD_PID
$COMMAND &
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Ok,

dann kann ich ja davon ausgehen das
1. bei korrekter Einrichtung das Konzept auch für den Einsatzzweck geeignet ist, den ich im Sinn habe (30 Clients mit lokaler Windows7_64_pro Installation über ein einheitliches, präpariertes ISO jederzeit, per PXE-Boot, wiederherstellen können)
und
2. die Konfiguration der .conf doch etwas mehr Zeitaufwand für mich bedeutet, als ich vorm Wochenende zur Verfügung habe.


Ganz vielleicht boote ich auch mal einen Client direkt über PXE. Die Netzwerkinfrastruktur (immer nur 1gbitLAN von der DS zu Switches für je 10 Clientrechner) wird es nicht hergeben, alle PCs per PXE mit W7 zu booten.
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Bsp für die conf ist dann dieser Abschnitt
Rich (BBCode):
cat /etc/dhcpd/dhcpd.conf

interface=eth0
dhcp-range=set:eth00,192.168.0.0,proxy
dhcp-option=vendor:PXEClient,43,Raspberry Pi Boot
dhcp-leasefile=/etc/dhcpd/dhcpd.conf.leases
dhcp-script=/usr/share/dhcpd/dhcpd-script.sh

Mit Standardsettigs der Fritzbox wäre es dann?

Rich (BBCode):
interface=eth0
dhcp-range=set:eth00,192.168.178.0,proxy
dhcp-option=vendor:PXEClient,43,[NAME des PXE-ISO]
dhcp-leasefile=/etc/dhcpd/dhcpd.conf.leases
dhcp-script=/usr/share/dhcpd/dhcpd-script.sh
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Die Proxy Aenderung ist richtig. Ich habe zwar auch eine FB aber aus historischen Gruenden benutze ich das 192.168.0.0/24 Netz.

Bzgl der Vendor Änderung: Weiss ich nicht ob das richtig ist. Das ist mein erster PXE Boot Server den ich mit dnsmasq aufgesetzt habe.

Da das Thema dieses Threads das Enablen eines dhcp-proxies ist wuerde ich an Deiner Stelle auch einen neuen Thread erstellen mit einem sprechenden Thema zu Deiner Frage bzw Deinem Problem. Das erhoeht die Wahrscheinlichkeit dass jemand mit dnsmasq, dhcp und PXE Wissen draufspringt ;)
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Nein. Ist suspended. Auch habe ich nicht auf DSM 7 upgraded.
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Dann will ich das mal für dich tun... denn optisch ist das erstmal weitgehend unverändert

Wäre nett, wenn ich - bei Fragen zu Details die irgendwann aufkommen werden - auch direkt anschreiben darf
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
968
Punkte für Reaktionen
102
Punkte
69
Nachdem irgendwann mal nach einem DSM Update der dsnmasq nicht mehr funktionierte als DNS proxy - offensichtlich weil irgendwas am dnsmasq geanedert wurde - habe ich die Sache suspended. Die Frage ist ob es in DSM7 wieder funktioniert.

Wir koennen uns hier gerne ueber das Thema austauschen aber es macht keinen Sinn das per PN zu tun denn dann hat die Community nichts davon da sie weder mitlesen kann noch irgendwann mal in der Zukunft ueber Suchmaschinen auf diesen Thread stossen kann.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat