MacVLAN

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Hallo,
ich versuche gerade pihole in einem Docker-Container ans laufen zu bringen.

Ich orientiere mich dabei an diesen Guides:
1.) https://www.xobit.de/cyber-zone/syn...logy-mit-domaene-und-dns-service-installieren
2.) https://youtu.be/JCqIsIt6jEA
Insbesondere bei 2.) wird dazu geraten MACVLAN einzusetzen und da habe ich momentan den Knoten im Kopf.
Portainer läuft auf der Synology.

Mein lokales Netz der Fritzbox läuft im Adressbereich 192.168.178.xyz
Alles was regelmäßig damit verbunden ist hat eine feste IP-Adresse.
Den Bereich von 100-200 vergibt die Fritzbox frei.
Die Synology läuft auf DSM 7.2 und hat die IP 192.168.178.99

Der Bereich von 50-89 ist unbelegt.

Ich hätte jetzt gerne für pihole eine feste IP-Adresse z.B. 192.168.178.60
Desweiteren würde ich weitere "auf Vorrat" belegen.

Und hier hänge ich gedanklich jetzt fest.
Kann ich über subnetting den Bereich 50-89 für MACVLAN reservieren.
Oder kann ich nur "feste Bereiche" reservieren, um die ich dann meine anderen IP-Adressen drumherum lege?
In einem IP Calculator ergibt 192.168.178.50/27 30 IP-Adressen von .33 bis .62.
Wäre das so ein "fester Bereich" um den ich dann die schon vorhandenen Geräte herumlegen muß?
Kann ich also nur "fest definierte Stücke" reservieren?

Auch Hinweise auf weiterführende Links, die mir beim Verständnis helfen sind willkommen.

Herzlichen Dank im voraus.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519
Ich würde dir raten, kein MACVLAN einzusetzen.
Wenn du ein MACVLAN erstellst, wird nix reserviert. Du kannst also auch einfach dein gesamtes Netz als MACVLAN anlegen. Dann aber halt logischerweise nur Adressen für Container vergeben, die noch nicht in Verwendung sind. So habe ich es gemacht, bis ich das Konstrukt MACVLAN wieder rausgeworfen habe. Weil es mehr Schwierigkeiten bereitet, als es nutzt. Wir haben hier aktuell wieder den Salat (nur ein Beispiel von vielen).
Wenn man gut mit Kommandozeile auskennt und viel von Netzwerken versteht, kann man es machen. Sonst aber nicht.
Zudem kannst du nur ein MACVLAN pro Gateway erstellen. Wenn du also nicht 2 Router hast, kannst du nur 1 Netz erstellen
 
  • Like
Reaktionen: haydibe

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Gibt es denn eine andere Möglichkeit als MACVLAN um Containern auf dem NAS (192.168.178.99) eine eigene IP zugeben (z.B docker-pihole 192.168.178.60)?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519
Nein. Aber warum willst du das überhaupt machen?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
In einem IP Calculator ergibt 192.168.178.50/27 30 IP-Adressen von .33 bis .62.
Wäre das so ein "fester Bereich" um den ich dann die schon vorhandenen Geräte herumlegen muß?
Wäre es und ja + die Range muss außerhalb der Range liegen, für die der DHCP-Server des Netzes Ips verteilt.
Kann ich also nur "fest definierte Stücke" reservieren?
Korrekt.

Weitere Einschränkung: der Host und MACVLAN Container können nicht direkt miteinander kommunizieren. Es gibt zwar den Workaround dem Host selbst ein MACVLAN Interface zu verpassen, aber der ist imho wackelig, da dieses Interface bei jedem Neustart vom NAS neu angelegt werden muss.

Macvlan sollte man nur nutzen, wenn es anders nicht geht. Bspw. wenn Multicast oder Broadcast Traffic vom LAN zum Container soll (oder andersherum). Jemand der das benötigt, wird dann auch wissen was Multicast und Broadcast sind. Für alle anderen ist das eher relevant.
 

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Wie spreche ich die einzelnen Container dann im Netzwerk an?
Angenommen da laufen in Docker-Containern pihole, paperless, minecraft-server.
Kann ich denen dann eignen IP-Adressen zuordenen aus dem privaten Adressbereich der Fritzbox (192.168.178.xyz) oder läuft das dann über die Synology IP (192.168.178.99) und verschiedene Ports?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.618
Punkte für Reaktionen
760
Punkte
154
Es läuft alles über die Host IP und Port
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Wie spreche ich die einzelnen Container dann im Netzwerk an?
Bei MACLAN, wäre das direkt per LAN IP. Aber: es gibt keinerlei Firewall oder sonstige Möglichkeit der Isolation.


Bei einem bridge Netwerk: über die Syno-IP und den Host-Port auf den der Container-Port gemapped wurde.

Für fortgeschrittene: Wenn man im Netzwerk einen DNS-Server hat, der Domain-Overrides erlaubt (bspw. PiHole, Unbound), könnte man sich selbst DNS-Einträge anlegen, die allesamt auf die IP der Syno zeigen, und dann in der Syno den Reverse Proxy verwenden, um Traffic für den DNS-Namen dann an den jeweiligen Container weiterzuleiten. Kontext: Container im bridge Netzwerk.

Die Forum-Suche sollte eigentlich etliches an Treffern zum Thema MACVLAN finden, das Thema wurde hier schon öfters diskutiert.
 

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Danke.
Gibt es eine Möglichkeit sich die genutzten Ports auf der Synology anzeigen zu lassen?
Für die Container habe ich
docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a
gefunden.
DSM läuft auf :5001.
Benutzen andere Synology Anwendungen wie z.B. Synology-Drive noch andere Ports und kann man sich das anzeigen lassen?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519
Nein. Es wäre aber cool, wenn du uns aufklären könntest, wie du es nun gelöst hast
 

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Ich habe es erst über das host-Netzwerk probiert und pihole auch ans laufen gebracht.
Ich habe es jedoch nicht geschaft unbound und pihole zu verbinden.

Dann bin ich nochmal zu macvlan zurück.
Im Prinzip bin ich der Anleitung 2.) https://youtu.be/JCqIsIt6jEA gefolgt.
Hierzu gibt es auch eine neue macvlan Anleitung https://youtu.be/jCPIUDpqcgw.

Das IPV4 Subnet habe ich anders als in der Anleitung mit 192.168.178.0/24 angelegt, also über den gesamten IP-Bereich. Ich muss also selbst aufpassen, daß da keine Kollisionen vorkommen. Bin gespannt, ob mich das später nochmal beißt.
Das IPV4 Gateway habe ich auf 192.168.178.1 gelegt (fritz.box-IP)
Die IPV4 IP Range des macvlan habe ich auf 192.168.178.60/32 gesetzt, von der Range also genau eine IP-Adresse.
Die .60 liegt bei mir in dem Bereich, in dem der DHCP-Server keine Adressen vergibt und die .60 war noch frei.

Den pihole-container habe ich dann wie unter Anleitung 2.) gezeigt in portainer angelegt und unter Advanced Container Settings / Network habe ich unter IPv4 Adress 192.168.178.61 eingetragen (Die .61 liegt bei mir in dem Bereich, in dem der DHCP-Server keine Adressen vergibt und die .61 war noch frei).

Anschließend dann noch unbound wie unter Anleitung 2.) gezeigt in portainer angelegt und unter AdvancedContainerSettings/Network habe ich unter IPv4 Adress 192.168.178.62 eingetragen (Die .62 liegt bei mir in dem Bereich, in dem der DHCP-Server keine Adressen vergibt und die .62 war noch frei).

Dann noch wie unter Anleitung 2.) unbound in pihole unter Settings/DNS als DNS-Server eingetragen.

Seitdem läuft die Sache problemlos.

Ich habe mir in LibreOffice Calc eine Tabelle angelegt, in der ich die schon fest vergebenen IP-Adressen eingetragen habe (aus fritz.box/Heimnetz/Netzwerk) und den Bereich, den der DHCP Server verwaltet.
(Das Blatt habe ich dann 192.168.178.x genannt. Die Zeilennummer ist dann immer die letzte Ziffer IP-Adresse. In der A-Spalte trage ich die Bezeichnung des Gerätes ein. In Zelle A1 steht dann also fritz.box(router) und hat die IP 192.168.178.1. In A99 steht synology und hat die IP 192.168.178.99.
In der B-Spalte habe ich dann noch eingetragen, für welche Art Geräte bestimmte Bereiche gedacht sind.)

Danke für Eure Hilfestellung.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: plang.pl und haydibe

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Das IPV4 Subnet habe ich anders als in der Anleitung mit 192.168.178.0/24 angelegt, also über den gesamten IP-Bereich. Ich muss also selbst aufpassen, daß da keine Kollisionen vorkommen. Bin gespannt, ob mich das später nochmal beißt.
Das Subnet sagt nur aus, was alles zu dem Netzwerksegment gehört, einschließlich wo es beginnt und aufhört.
Die Einstellung hat auch jeder Client, wenn auch in der Subnet/Subnetmask, statt der oben angegeben CIDR Notation.

Da würd einen nur etwas beißen, wenn die IP-Range für das MACVLAN nicht innerhalb des Subnets liegt, oder im Bereich liegt, für den der DHCP-Server Ips vergibt. Ist ja alles nicht der Fall. Ich kann kein Risiko erkennen.

Den pihole-container habe ich dann wie unter Anleitung 2.) gezeigt in portainer angelegt und unter Advanced Container Settings / Network habe ich unter IPv4 Adress 192.168.178.61 eingetragen (Die .61 liegt bei mir in dem Bereich, in dem der DHCP-Server keine Adressen vergibt und die .61 war noch frei).

Anschließend dann noch unbound wie unter Anleitung 2.) gezeigt in portainer angelegt und unter AdvancedContainerSettings/Network habe ich unter IPv4 Adress 192.168.178.62 eingetragen (Die .62 liegt bei mir in dem Bereich, in dem der DHCP-Server keine Adressen vergibt und die .62 war noch frei).
Mich wundert, dass das funktioniert hat. Das würde bedeuten, dass die IP-Range vom MACVLAN Netzwerk nur Relevanz für den macvlan-dhcp-Server hat. Ich wäre nie auf die Idee gekommen das zu testen.... Danke, ich hab tatsächlich mal was Neues dazulernen dürfen :)
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519
nicht geschaft unbound und pihole zu verbinden.
Da muss man etwas tüfteln. Ich betreibe AdGuard und unbound in einer VM. Ist aber ja ähnlich wie pihole und unbound auf DSM. Alles spricht Docker :D
Letztlich habe ich in unbound den Port umgebogen (in der Config Datei) von 53 auf 5355. Denn auf 53 lauscht der AdGuard. Dann im AdGuard als Upstream DNS 127.0.0.1:5355 eingetragen. Funktioniert.

Jedenfalls danke für die ausführliche Rückmeldung
 

soze

Benutzer
Mitglied seit
16. Jan 2023
Beiträge
16
Punkte für Reaktionen
2
Punkte
3
Ich hole das nochmal hoch, da etwas passiert ist.
Ich habe festgestellt, daß sowohl der pihole als auch der unbound Container vor ca. 1 einem Monat "ge-exited" haben.
Neustart Versuche endeten mit einem

FailureRequest failed with status code 500

Ich bin dann das ganze Setup nochmal durchgegeangen und habe festgestellt, daß sich die "Parent network card" vom macvlan von "eth0" auf "ovs_eth0" geändert hatte.

Nach ändern des macvlan mit "Parent network card" als "ovs_eth0" und ändern des Network in den beiden Containern auf das "neue" macvlan laufen jetzt beide wieder.

Hat jemand eine Erklärung dafür?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.204
Punkte für Reaktionen
4.932
Punkte
519
Ja. Wenn der openvswitch aktiviert wird, ändert sich das Interface. Konkret wird der bei der Installation des VMM aktiviert.
 

Stationary

Benutzer
Sehr erfahren
Mitglied seit
13. Feb 2017
Beiträge
3.608
Punkte für Reaktionen
1.038
Punkte
194
Du hast in der Zwischenzeit eine VM erstellt.

@plang.pl war schneller
 


 

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