Vaultwarden habe ich auch am laufen. Allerdings nur aus dem VPN raus, keine Ports offen.
Dito.
Vaultwarden habe ich auch am laufen. Allerdings nur aus dem VPN raus, keine Ports offen.
Dito.
Post wurde gelöscht, bin versehentlich im falschen Thread gelandet 🤷♀️
Ich klinke mich mal kurz bei den bereits gegebenen Antworten ein. Gleichzeitig weise ich darauf hin, dass sich meine Aussagen komplett auf den Inhalt von Post #1 beziehen (ich will mich nicht mit fremden Federn schmücken).
Grundsätzlich kann ich ein macvlan über Portainer (vielleicht etwas einfacher) oder über die CLI auf dem NAS einrichten. Das angelegte macvlan sollte problemlos und unbeschadet einen NAS Neustart überstehen.
Wo ich tatsächlich „Probleme“ sehe, über die bereits viele beim Einrichten des macvlan „gestolpert“ sind, ist das Einrichten der macvlan bridge, damit die erstellten Container auch vernünftig mit dem restlichen Netzwerk kommunizieren können. Aber auch hier gibt es bereits mit Betrag #90 eine passende Lösung.
Grundsätzlich stimmt die Anleitung in #1, wenn man auf einem „jungfräulichen“ NAS beginnt das macvlan einzurichten. Falls aber bereits irgendwelche Netzwerkkonfigurationen angelegt wurden, kann es beim docker-network.service zu den beschriebenen Fehlern kommen (hier hilft besagter Beitrag #90).
Das angelegte Skript (docker-network.sh) ist notwendig, um die macvlan bridge bei einem NAS Neustart neu zu etablieren. Die selbst erstellte docker-network.sh Datei liegt im Verzeichnis „/usr/local/sbin“.
Dieses Skript wird ausgeführt durch den angelegten Service „docker-network.service“, welcher unter „/etc/systemd/system“ abgelegt und per CLI entsprechend gestartet bzw. aktiviert wird.
Falls es beim Ausführen der entsprechenden Befehle (Punkt 9 zur macvlan bridge) zu einer Fehlermeldung kommt, kann diese ignoriert werden. Überprüfen kann man dies, wenn man einen Container auf seiner im macvlan vergebenen IP erfolgreich in der CLI anpingen kann, z.B. ping 192.168.178.225
Ich entschuldige mich für diese sehr ausführliche Antwort, hoffe damit nochmal die Richtigkeit der Anleitung in Post #1 zu unterstreichen und diese zu benutzen.
Hm, an der Stelle "muss" ich mal ganz unwissend fragen. Ich habe mal irgendwo aufgeschnappt, dass man MacVlan in Docker Compose wie folgt konfigurieren kann:
services:
test:
container_name: ...
image: ...
environment:
DHCP: "Y"
devices:
- /dev/vhost-net
device_cgroup_rules:
- 'c *:* rwm'
volumes:
- ...
- ...
restart: ...
networks:
- test_macvlan
networks:
test_macvlan:
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1
Display More
Ich habe das mal ausprobiert und tatsächlich scheint das zu funktionieren. Zumindest bekam mein Container dadurch eine eigene IP-Adresse in meinem Subnetz und die ganzen Port-Mappings waren nicht mehr notwendig.
Nun hat der Thread hier aber schon 7 Seiten und ich kann mir daher kaum vorstellen, dass es mit der von mir genannten Lösung genauso, nur viel einfacher, funktioniert. Was ist der Unterschied? Kann das jemand sagen?
Du legst mit deiner yaml Datei ebenfalls ein macvlan auf der (Netzwerk)Schnittstelle eth0 an. Dein macvlan heißt hier test_macvlan. Das Gleiche macht die Anleitung auch, entweder über die entsprechende Konfiguration unter Portainer oder über den Weg über das CLI. Soweit so gut und gleich zur Anleitung.
Jetzt kommt der Unterschied: Dein macvlan greift aus deinem Subnetz keinen bestimmten IP Bereich heraus. Du solltest aber eine bestimmte range angeben. Viele verwenden den oberen Bereich, z.B. bei x.x.x.224/27 von x.x.x.224 bis x.x.x.254 (Bereiche siehe Post #24) für 32 IP Adressen im macvlan. Dies ist auch wichtig, damit du nicht mit deinem DHCP in Konflikt kommst, heißt dieser Bereich sollte dann auch nicht mehr vom DHCP Server (meist der Router) vergeben/verwaltet werden.
Auch gibst du dem Container keine genau festgelegte IP, heißt, er bekommt dann die nächste freie IP in deinem macvlan zugewiesen.
Zu den port mappings: Da du im macvlan jedem Container eine eigene IP zuweisen kannst, sind die port mappings einfacher zu handhaben als ohne. Das ist z.B. ein Vorteil eines macvlan. Da du ansonsten alle Container über die IP deines NAS und dem entsprechenden vorgegebenen Port aufrufen müsstest.
Hier kommt es dann immer wieder zu Problemen, z.B. mit dem Port 53 (für DNS Server), also wenn man z.B. AdGuard einsetzen möchte. Du kannst ja auf die eine IP deines NAS nur einmal den Port 53 vergeben. Ist dieser bereits vergeben, kannst du den Port nicht nochmal AdGuard zuweisen.
Ich hoffe, ich konnte es einigermaßen verständlich erklären.
Eine Ergänzung muss ich noch anfügen: Im Gegensatz zur Anleitung von Post #1 fehlt in deiner yaml Datei auch die komplette macvlan bridge. Daher sollte ein ping auf die IP deines angelegten Containers auch keine Erfolgsmeldung ausgeben. Wofür die macvlan bridge wiederum wichtig ist, habe ich in meinem letzten Post bereits geschrieben.
Danke für die ausführliche Erklärung. Eine Konfiguration "mit Bridge" habe ich tatsächlich auch noch hier dokumentiert und probiert, aber keinen Unterschied feststellen können. Was mich an deinen Ausführungen irritiert:
Ich nahm an, dass mit "meiner" Config die IP-Adresse vom DHCP-Server (Router) vergeben wird. Hab ich das richtig verstanden: der Container "reserviert" selbst einen Adress-Bereich für sich und vergibt sich aus diesem selbst eine IP? Dass es sowas gibt, höre ich zum ersten Mal, aber das ganze Thema MacVlan ist ohnehin für mich neu. Ich nahm an, dass der Container ganz normal eine IP-Adresse bezieht, wie jeder andere Client auch. Dann hatte ich ja Glück, dass es keinen Konflikt gab.
Moin Leute,
ich will kurz beschreiben, wie ich ans Ziel gekommen bin.
Zunächst bin ich am Tut gescheitert (1. Danke Willi für dein umfangreiches Engagement. Ohne das gäbe es den Fred nicht!), immer wieder die bekannte Fehlermeldung. Zudem Zeitpunkt wusste ich nicht viel über die genaue! Funktionsweise des Macvlan. Also irgendwas virtuelles...
Infolge funktioniert die Konfiguration diverser in Portainer installierten Container auch nicht richtig. Vaultwarden funktioniert scheinbar auch nur im Portainer richtig, aber nicht bei mir.
Erstmal Urlaub...
Dann am Sonntag alles runter vom Portainer, incl. Porainer neu gemacht. Werksreset wollte ich nicht machen - warum leuchtet wohl ein. Interessant wäre zu wissen, ob das Tut auf einem frischen System problemlos durchläuft (2. Danke Willi für dein umfangreiches Engagement. Ohne das gäbe es den Fred nicht!). Konnte ich so nicht probieren.
Dann bin ich über ein Video von Rene Fürst "Docker Host und MACVLAN - Netzwerk einfach erklärt Teil 3" gestolpert. Aha- soso! Dann fand ich in einem Blog den Beitrag "Einrichtung eines MACVLAN Netzwerks mit Portainer". Zusammen mit dem "IPv4 subnet calculator" und Manitu's Tabelle (Howgh!) aus dem Tut (3. Danke Willi für dein umfangreiches Engagement. Ohne das gäbe es den Fred nicht!) sowie meiner eigenen Fehleranalyse und den Eindrücken des gesamten Tut gelang mir der Durchbruch.
Portainer frisch aufgesetzt und IP und IPrechner aus Post 1 zurechtgelegt. IP-Breich der Fritte eingeschränkt, IP-Bereich für Vlan festgelegt, in Portainer konfiguriert, vlan-bridge in Portainer konfiguriert und Adguard und nginx aufgesetzt - läuft, in der Fritte sichtbar und lassen sich anpingen. Fertig!
Das ich Willi so hervorhebe ist nicht übertrieben. Er engagiert sich ja auch weiterhin um dieses Tut zu pflegen.
Ich wollte hier kein eigenes Tut machen, jeder soll sich einlesen und sich das erarbeiten. In diesem Sinne:
Horrido
Kanecaine: Die IP deines Containers wird von DHCP vergeben, da du unter environment den Wert DHCP: Y eingetragen hast. Deshalb bekommt, wie geschrieben, dein Container die nächste freie IP zugewiesen.
Grundsätzlich verwendest du eine andere Herangehensweise, ein macvlan anzulegen. Was genau dein macvlan macht und wie es aufgebaut ist, müsstest du in deiner yaml Dokumentation nachlesen.
Du hast nach den Unterschieden von deiner Methode zur angegebenen Methode aus Post #1 gefragt, die Antworten habe ich bereits gegeben. Ich könnte auch schreiben: viele Wege führen nach Rom, was dir ja auch gelungen ist.
Präferieren würde ich dennoch die Methode aus Post #1, da hier macvlan und der vom DHCP-Server vergebene IP Adressraum eindeutig getrennt sind. Du hier genau den Happen aus deinem Subnetz definieren und „rausschneiden“ kannst, zusätzlich mit der entsprechenden range (von … bis IP so und so), die du brauchst. Weiterhin kannst du dann gleich im entsprechenden Container festlegen, welche „feste“ IP er haben soll, siehe Post #15. Natürlich kannst die IP ebenfalls über deinen Router einstellen, wenn er dir diese Möglichkeit anbietet, z.B. in der Fritzbox „IPv4 Adresse dauerhaft zuweisen“.
Wenn du ein tieferes Verständnis von macvlan und dessen Funktion erlernen willst, kann ich nur raten, die ersten Seiten dieses Tutorials genau zu studieren. Zusätzlich empfehle ich dir noch die vorgeschlagenen YT-Videos von Navigio (hilfreicher Hinweis von Willi in Post #1). Weiterhin dich per Suchfunktion im Internet mit macvlan auseinanderzusetzen. Man sollte macvlan aber nicht komplizierter machen als es ist. Die im Forum beschriebenen „Probleme“ traten v.a. im Bereich macvlan bridge auf und sind mittlerweile gut dokumentiert.
Apropos macvlan bridge: Da ich mein macvlan immer so aufgezogen habe, wie in Post #1 beschrieben, würde mich mal interessieren, ob du deine Container per ping erreichen kannst (sog. Docker-Host Kommunikation funktioniert). Wenn ja, kann man sich die Einrichtung der macvlan bridge mit deiner Methode scheinbar sparen.
Danke erneut. Tatsächlich habe ich aktuell kein gesteigertes Interesse das Thema weiter zu vertiefen. Ich habe derzeit auch keinen Anwendungsfall, der das erfordert. Aber ich wollte es mal ausprobieren und mit der Anpassung der YAML (auch wenn ich manche Zeilen nicht bis ins letzte Detail verstehe) hatte ja sofort funktioniert.
Also in meinem Netzwerk möchte ich eigentlich schon, dass alles zentral über den DHCP gesteuert wird. Ich möchte da meine IP-Adressbereiche festlegen und auch sagen, welcher Teilnehmer eine feste IP bekommen soll. Irgendwie kann ich mich mit dem Gedanken nicht anfreunden, sowas in einem Container zu konfigurieren - fühlt sich für mich irgendwie falsch an. Aber gut, dann bin ich ja mit „meiner“ Variante offenbar auf dem richtigen Weg.
Das mit dem Ping kann ich heute Abend gern mal ausprobieren. Von wo aus soll ich den Container denn anpingen? Von einem beliebigen Client im selben Subnetz? Also einfach ein ping auf die vom DHCP für den Container vergebene Adresse?
Kanecaine: Könntest du mir noch bestätigen, ob du deinen Container per ping erreichen kannst?
Sorry, ich war zu schnell mit meiner Frage. Richtig, einfach mal ein ping auf die IP deines Containers absetzen. Dazu kannst du deinen PC (Client) im gleichen Netzwerk benutzen. Dazu einfach im Terminal (Apple) oder Eingabeaufforderung (Microsoft) ping gefolgt von der IP des Containers eingeben und Enter drücken, also z.B. ping 192.168.1.x
Bei Erfolg solltest du eine Antwort in ms (Millisekunden) erhalten (dass die Pakete zugestellt wurden), ansonsten kommt eine Meldung mit Zeitüberschreitung.
Hi, zunächst einmal danke für die Anleitung.
Ich habe hierzu eine Rückfrage, nachdem ich alles eingerichtet habe (siehe Grafiken anbei):
Wieso wird die IP [...]250 nun ebenfalls vom NAS "eingenommen", fühlt sich falsch an und ich finde keinen Grund hierfür?
EDIT: Und eine weitere Frage, ich nutze aktuell einen VPN-Service (android: wgtunnel) und kann mich so von unterwegs in meinem Heimnetzwerk bewegen, aber damit ist der Zugriff auf die Macvlan Container nicht mehr möglich, richtig?
Kosmo, ich bin zwar nicht Kanecaine, aber ich hab MacVlan ja ebenso nach dem TUT am Laufen. Ich habe nacheinander, VPN aktiv und sitze im Sommerwohnsitz, die Container die im MacVlan angepingt. Haben alle erfolgreich geantwortet. Ohne VPN kommt "2Destination Host Unreachable". Ist das soweit das, was du Wissen wolltest?
M2k5, welcome im Forum. Ich hab gerade mal in meiner Fritte geschaut. Dort ist nur die 2800er mit der IP ohne die 250 drin. Da passt was nicht, die gehört da nicht hinein. Meine IP für die 2800er ist fest vergeben.
@wegonmyway: Leider nein. Es geht darum, dass @Kanekaine mit seiner yaml Datei keine macvlan bridge angelegt hat und deshalb auch seine Container nicht anpingen kann. Mal schauen, ob er noch antwortet.
Und ja, wenn man sich mittels einer VPN Verbindung -egal von wo auf der Welt- auf sein (Heim-)Netzwerk von außen anwählt, dann ist es so, als ob man zu Hause am PC sitzt. Dann sollte bei korrekt eingerichteter macvlan bridge auch ein ping, egal auf welchen Container (genauer dessen IP), erfolgreich sein.
So sieht es bei mir aus:
Please log in or register for free to view graphics and attachments.
Please log in or register for free to view graphics and attachments.
Please log in or register for free to view graphics and attachments.
Meine Fritzbox läuft über 192.168.192.1 und ich habe die 192.168.192.224 für den ipconfigurator genutzt.
Mein NAS hat derzeit wie gesagt zwei IPs zugewiesen bekommen durch meine Fritzbox (die ...34 und leider nun auch die ...250).
M2k5: Warum sollte der Zugriff auf deinen Container, wenn du dich mittels VPN an deinem Heimnetzwerk anmeldest, nicht mehr möglich sein?
Im Gegenteil, du kannst dann anstelle DynDNS Zugriff (falls eingerichtet z.B. über Nginx Proxy Manager) wieder mit der vergebenen IP auf den Container zugreifen.
Zu deiner Netzwerkkonfiguration deines NAS: Deine DXP4800 Plus hat zwei LAN Anschlüsse, die du beide mit deinem Router bzw. Netzwerk verbunden hast? Hast du beide Schnittstellen manuell konfiguriert und eine feste IP vergeben oder lässt du dir eine IP per DHCP zuweisen? Das könnte deine Frage beantworten.
Schau doch mal unter Systemsteuerung -> Netzwerk -> entsprechenden LAN Anschluss auswählen nach. Steht die Einstellung auf „Auto“ oder „Manuell“?
Ich würde mein LAN Schnittstellen immer manuell konfigurieren. Ansonsten kann es dir passieren, dass deinem NAS (besser der LAN Schnittstelle ) vom DHCP immer mal wieder eine neue IP zugewiesen wird.
Kosmo , dann ein freundliches SORRY von mir ![]()
Kosmo Ich habe den 10Gbit LAN1 Port im BIOS deaktiviert, da ich ihn nicht benötige und damit den Energieverbrauch senken kann. Am LAN2 steckt das Ethernetkabel zur Fritzbox.
M2k5 Was soll der letzte Beitrag von dir bringen? Das ist deine macvlan bridge, das entsprechende Skript und der entsprechende Service.
Für deine Bridge hast du die x.x.x.250 gewählt. Soweit so gut. Die taucht dann auch unter den Netzwerkverbindungen deiner Fritzbox (Heimnetz -> Netzwerk) auf, mit dem Namen deiner DXP. Das ist schon korrekt. Zusätzlich solltest du aber auch beide LAN Anschlüsse mit entsprechender IP sehen (wenn entsprechend eingerichtet, siehe letzten Beitrag von mir).
Habe leider deine Antwort mit dem BIOS zu spät gesehen. Wenn du einen LAN Anschluss (deinen 10GBit Anschluss) im BIOS des NAS stillgelegt hast, dann wird die x.x.x.250 wohl die macvlan bridge sein.
Ergänzung: Das ist deine macvlan bridge!
Ich hatte wohl einen gedanklichen Hänger, es sind ja zwei unterschiedliche Mac-Adressen für die beiden Einträge in der Fritzbox (klugerweise von mir nicht mitkopiert).
Ergo habe ich jetzt einfach die Bridge entsprechend umbenannt, sorry.
Und auch der VPN-Zugriff funktioniert, nachdem ich den Service neu gestartet habe.
Danke euch.
Mal schauen, ob er noch antwortet.
Na aber sicher doch. Ein Mann, ein Wort ![]()
Ich habe den Container wie zuvor gepostet erstellt - ohne Bridge. Der Container hat eine eigene, vom NAS abweichende, IP-Adresse erhalten und ich kann ihn von meinem Laptop aus anpingen.
Please log in or register for free to view graphics and attachments.
Join our community with over 10,000 members!
Register yourself now for free to get full access to all content, graphics, downloads and other exclusive features!