NEWS
IoBroker unter Docker auf der Synology DiskStation?
-
Hi,
bekomme diesen Fehler.
Start container iobroker_neu failed: {"message":"failed to create the macvlan port: device or resource busy"}.
Grüße Steffen
-
@Homer1976:Hi,
bekomme diesen Fehler.
Start container iobroker_neu failed: {"message":"failed to create the macvlan port: device or resource busy"}.
Grüße Steffen `
Hast Du bei der Anlage von
docker network create -d macvlan --subnet=192.168.20.0/24 --gateway=192.168.20.40 --ip-range=192.168.20.80/28 --aux-address 'host=192.168.20.80' -o parent=eth0 mac0
Hast Du darauf geachtet, dass die IP-Range ab 192.168.20.80 bis 192.168.20.95 in Deinem Subnetz nicht genutzt wird? Das gilt auch für die 192.168.20.80 in dem Beispiel.
Bei mir hat die Synology NAS die IP-Adresse 192.168.20.30 und ist im Subnet 192.168.20.0/24, der DSL Router hat die IP-Adresse 192.168.20.40 (ist auch das Gateway). Vom DHCP Server werden nur Adressen von 192.168.20.100 bis 192.168.20.200 vergeben.
Steht bei deinem mac0 Device auf der NAS unter Docker -> Netzwerk der Treiber macvlan?
VG
Stübi
-
Hi,
ist sicher mein Fehler gewesen, meine IP 192.168.178…. ich denk mal diese muss ich einsetzen.
wie kann ich das angelegte auf meinem NAS jetzt ändern. ?
Gruß Steffen
-
@Homer1976:Hi,
ist sicher mein Fehler gewesen, meine IP 192.168.178…. ich denk mal diese muss ich einsetzen.
wie kann ich das angelegte auf meinem NAS jetzt ändern. ?
Gruß Steffen `
Du kannst das macvlan Device ganz einfach über die Synology Oberfläche löschen. Vorher musst Du nur die verknüpften Container entfernen. Das geht über Docker -> Netzwerk, dann das Device mac0 auswählen und unter verwalten die Container entfernen (diese werden nicht physisch entfernt). Nun kannst das virtuelle Device mac0 löschen. Anschließend Device mac0 neu über die sehll anlegen und dann per Docker -> Netzwerk , Verwalten die Container wieder dem Device zuordnen.
Das mac1 Device kannst Du einfach folgendermaßen in der shell löschen.
ip link del mac1
-
Hab jetzt den IP Bereich von 192.168.178.60 bis 70 genommen ist auch für kein anderes Gerät vergeben kommt aber die selbe Fehlermeldung.
-
@Homer1976:Hab jetzt den IP Bereich von 192.168.178.60 bis 70 genommen ist auch für kein anderes Gerät vergeben kommt aber die selbe Fehlermeldung. `
kannst Du mal Deinen Befehl zum anlegen des Docker Devices mac0 posten?
-
! docker network create -d macvlan –subnet=192.168.178.0/24 --gateway=192.168.178.60 --ip-range=192.168.178.80/28 --aux-address 'host=192.168.178.70' -o parent=eth0 mac0
-
@Homer1976:! docker network create -d macvlan –subnet=192.168.178.0/24 --gateway=192.168.178.60 --ip-range=192.168.178.80/28 --aux-address 'host=192.168.178.70' -o parent=eth0 mac0 `
Du hast den IP Bereich von 192.168.178.80 - 192.168.178.95 gewählt. Da darf bisher keine IP Adresse vergeben sein! Die IP Adresse 192.168.178.60 ist die Deines Gatways. Meisten die IP Adresse des DSL Routers. Die IP Adresse in –aux-address 'host=a.b.c.d' muss im Bereich 192.168.178.80/28 liegen. Das ist bei Dir nicht der Fall. Trage dort z.B. --aux-address 'host=192.168.178.80' ein!
Ist bei Dir die IP Adresse deiner NAS auf eth0 oder hast Du Open VSWITCH aktiviert (Systemsteuerung -> Netzwerk -> Verwalten -> Open vSwitch Einstellungen)? Dann musst Du statt eth0 immer das Device ovs_eth0 angeben.
hier der korrigierter Eintrag für das LAN Device eth0 und der IP Adresse 192.168.178.80 für das spätere mac1 Device :
docker network create -d macvlan --subnet=192.168.178.0/24 --gateway=192.168.178.60 --ip-range=192.168.178.80/28 --aux-address 'host=192.168.178.80' -o parent=eth0 mac0
-
open vswitch ist bei mir nicht aktiviert kann es daran liegen das ich alle 4 Netzwerk Anschlüsse als Bond ausführe. ?
-
@Homer1976:open vswitch ist bei mir nicht aktiviert kann es daran liegen das ich alle 4 Netzwerk Anschlüsse als Bond ausführe. ? `
ja, das wird es sein. Meine NAS hat nur einen Ethernet Adapter, daher habe ich kein Bond am Start. Wenn ich mich nicht täusche heißt das Device dann bond0. Also überall wo eth0 steht bond0 eintragen.Das Device kannst Du wie folgt prüfen:
ifconfig
Ich bin gespannt ob es jetzt funtkioniert?
-
Das war es funktioniert. Danke Dir und noch einen schönen Rest Feiertag
werde mich dann mal durch den Rest kämpfen.
Grüße Steffen
-
@Homer1976:Das war es funktioniert. Danke Dir und noch einen schönen Rest Feiertag
werde mich dann mal durch den Rest kämpfen.
Grüße Steffen `
Klasse uns viel Spaß! -
Hallo tstueben,
vielen Dank für deinen sehr hilfreichen Beitrag! Danke, es hat mir geholfen die Einrichtung gut durchzuführen.
Du hast in deinem Beitrag geschrieben:
@tstueben:Ich habe mir ein kleines sh Skript erstellt, welches bei jedem Start der NAS über den Synology Aufgabenplaner ausgeführt wird. `
Kannst du mir kurz erklären, wie ein solches Skript anlegen kann, bzw. welcher Code da rein muss?
@tstueben:Somit ist der Docker ioBroker Container nun auch von der NAS aus ansprechbar. Aus dem Docker Container ist die NAS über die zusätzliche IP Adresse 192.168.20.80 zu erreichen. `
Darüber hinaus gelingt es mir nicht, den MySQL Server auf der DiskStation zu erreichen. Ich konnte zwar den entsprechenden Netzwerkadapter anlegen und die DS taucht in meiner FritzBox mit einer zweiten IP auf - aber über das Termin im ioBroker konnte ich die DS nicht anpingen.Wenn ich im Terminal-Adapter````
arp -aKann das was mit der aktuellen Version des DiskStation Manager zu tun haben? Ich habe da was gelesen. Leider erst nachdem ich das aktuelle Update eingespielt habe. Kannst du da einen Tipp geben? Danke für die Rückmeldung. Gruß, rrr
-
@rrr:Hallo tstueben,
vielen Dank für deinen sehr hilfreichen Beitrag! Danke, es hat mir geholfen die Einrichtung gut durchzuführen.
Du hast in deinem Beitrag geschrieben:
@tstueben:Ich habe mir ein kleines sh Skript erstellt, welches bei jedem Start der NAS über den Synology Aufgabenplaner ausgeführt wird. `
Kannst du mir kurz erklären, wie ein solches Skript anlegen kann, bzw. welcher Code da rein muss?
@tstueben:Somit ist der Docker ioBroker Container nun auch von der NAS aus ansprechbar. Aus dem Docker Container ist die NAS über die zusätzliche IP Adresse 192.168.20.80 zu erreichen. `
Darüber hinaus gelingt es mir nicht, den MySQL Server auf der DiskStation zu erreichen. Ich konnte zwar den entsprechenden Netzwerkadapter anlegen und die DS taucht in meiner FritzBox mit einer zweiten IP auf - aber über das Termin im ioBroker konnte ich die DS nicht anpingen.Wenn ich im Terminal-Adapter````
arp -aKann das was mit der aktuellen Version des DiskStation Manager zu tun haben? Ich habe da was gelesen. Leider erst nachdem ich das aktuelle Update eingespielt habe. Kannst du da einen Tipp geben? Danke für die Rückmeldung. Gruß, rrr `
Hallo 3R,
ich habe immer die neuste DSM Version installiert. Momentan die Version "DSM 6.2-23739 Update 2". Auch die Docker Version ist auf dem neusten Stand.
Ich habe mir folgendes Skript erstellt und rufe das im Systemsteuerung -> Aufgabenplaner alle 5 Minuten als Benutzer root auf:
#!/bin/sh if ip link | grep "mac1@eth0" > /dev/null; then echo "Device mac1 existiert" else echo "Device mac1 anlegen" ip link del mac1 ip link add mac1 link eth0 type macvlan mode bridge ip addr add 192.168.20.80/32 dev mac1 ip link set mac1 up ip route add 192.168.20.80/28 dev mac1 fi
Die IP-Adresse 192.168.20.80 musst Du durch Deine aus der dem MACVLAN ersetzen. Bei mir ist es die der NAS.
Also die NAS ist aus dem Docker Container mit MACVLAN Adresse nicht mehr über die "Standard" IP-Adresse der NAS zu erreichen. Du musst daher den SQL Server und alle anderen Dienste auf der NAS über die MACVLAN Adresse aus dem Docker Container aufrufen.
Bsp. Dein Docker Conntainer hat die IP-Adresse 192.168.20.81 (macvlan), Die NAS 192.168.20.2 und 192.168.20.80 (macvlan IP-Adresse der NAS). Dann musst Du die Adresse 192.168.20.80 statt 192.168.20.2 für den Aufruf der NAS aus dem Docker Container angeben. Das gilt auch bei einem Ping.
Ich hoffe ich konnte helfen, sonst jederzeit melden
VG
Stübi
-
Hi Stübi,
danke für deine Antwort.
Hab ich mir dann auch gleich eingerichtet, das Skript. Danke! Funzt leider noch nicht ganz.
Zum Überblick:
xxx.xxx.xxx.1 ist mein Router
xxx.xxx.xxx.21 ist meine DS
xxx.xxx.xxx.161 ist der ioBroker (ab 160 ist im Router im DHCP auch ausgeschlossen)
xxx.xxx.xxx.160 ist die zweite IP der DS
Den von dir geposteten Code für die mac0-Netzwerkschnittstelle habe ich, wie folgt angepasst, verwendet:
docker network create -d macvlan --subnet=xxx.xxx.xxx.0/24 --gateway=xxx.xxx.xxx.1 --ip-range=xxx.xxx.xxx.160/28 --aux-address 'host=xxx.xxx.xxx.160' -o parent=ovs_bond0 mac0
(Ich nutze zwei der vier Ethernet-Ports in einem Bond. OVS wegen Virtual Machine Manager.)
Hab also in deinem Skript die 160 verwendet. Geht leider nicht.
Die zusätzliche Netzwerkschnittstelle habe ich eingerichtet und wird im DSM unter Docker angezeigt.
ping xxx.xxx.xxx.160 92 bytes from iobroker (xxx.xxx.xxx.161): Destination Host Unreachable
Bekomme ich leider immer als Ergebnis.
Eine Idee?
-
hmm, kannst du Deine Fritzbox mit xxx.xxx.xxx.1 aus dem Docker Container anpingen und kannst Du z.B. von einem PC (nicht NAS) den Docker Container mit ping xxx.xxx.xxx.161 (kann statt 161 auch 162 bis 175 sein) erreichen?
Ist die Subnetmask Deines Bonds ovs_bond0 auf der NAS 24 (255.255.255.0)?
Und in Deinem Überblick sind xxx.xxx.xxx immer gleich, d.h. z.B. immer 192.168.1. ?
-
@tstueben:hmm, kannst du Deine Fritzbox mit xxx.xxx.xxx.1 aus dem Docker Container anpingen `
Ja, das klappt, wie es soll.@tstueben:kannst Du z.B. von einem PC (nicht NAS) den Docker Container mit ping xxx.xxx.xxx.161 (kann statt 161 auch 162 bis 175 sein) erreichen? `
Ja, ping xxx.xxx.xxx.161 funktioniert auch.@tstueben:Ist die Subnetmask Deines Bonds ovs_bond0 auf der NAS 24 (255.255.255.0)? `
Ja, die Subnetzmaske ist 255.255.255.0 - eben noch mal auf der DS überprüft.@tstueben:Und in Deinem Überblick sind xxx.xxx.xxx immer gleich, d.h. z.B. immer 192.168.1. ? `
Ja, richtig.Nachtrag, 22:13 Uhr:
Wenn ich in ioBroker im Terminal den Befehl````
arp -a? (xxx.xxx.xxx.21) auf <unvollständig> auf eth1
? (xxx.xxx.xxx.32) auf 78:0f:77:17:fd:4b [ether] auf eth1
? (xxx.xxx.xxx.1) auf 24:65:11:5a:d6:33 [ether] auf eth1
? (xxx.xxx.xxx.100) auf a0:04:60:15:08:2d [ether] auf eth1
? (xxx.xxx.xxx.110) auf 0c:47:c9:04:92:15 [ether] auf eth1
? (xxx.xxx.xxx.160) auf <unvollständig> auf eth1
? (xxx.xxx.xxx.22) auf d4:9a:20:d8:ba:b2 [ether] auf eth1
? (xxx.xxx.xxx.30) auf 00:c0:ee:96:b3:be [ether] auf eth1
? (xxx.xxx.xxx.103) auf 98:9e:63:3d:0e:98 [ether] auf eth1
? (xxx.xxx.xxx.107) auf 28:6a:ba:ae:87:7b [ether] auf eth1</unvollständig></unvollständig>Hilft das weiter? Die 160 taucht zwar auch, wie auch die 21 - beide lassen sich aber nicht anpingen (unreachable). Seltsam ist, dass die 21 und 160 auch als IPv6 "unvollständig" dargestellt werden. Hm…
-
und Du hast folgendes auf der NAS im Terminalfenster mit dem Netzwerkadapter ovs_bond0 statt eth0 aufgerufen?
# Virtuelles Netzwerk Device mac1 anlegen ip link add mac1 link ovs_bond0 type macvlan mode bridge ip addr add xxx.xxx.xxx.160/32 dev mac1 ip link set mac1 up ip route add xxx.xxx.xxx.160/28 dev mac1
Ich hätte gedacht wenn Du mit dem Netzwerk ovs_bond0 arbeitest, wird beim Befehl arp -a nicht eth1 sondern ovs_bond0 angezeigt. Ich kann das leider nicht nachstellen, da ich mit einem Netzwerkadater kein Bond aufbauen kann.
Kannst du einmal den Befehl ifconfig mac1 auf der NAS aufrufen. Du müsstest denn so etwas sehen:
mac1 Link encap:Ethernet HWaddr 06:53:85:57:4D:E5 inet addr:192.168.20.80 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: aaaa::bbb:ccff:fddd:4de5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8119539 errors:0 dropped:0 overruns:0 frame:0 TX packets:4786899 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1314284250 (1.2 GiB) TX bytes:1112319842 (1.0 GiB)
und dann nochmals den Befehl netstat -rn auf der NAS ausführen. Was siehst Du da für das Device mac1?
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.20.80 0.0.0.0 255.255.255.240 U 0 0 0 mac1
-
Danke, dass du dir die Zeit nimmst, mir zu helfen!
@tstueben:und Du hast folgendes auf der NAS im Terminalfenster mit dem Netzwerkadapter ovs_bond0 statt eth0 aufgerufen?
# Virtuelles Netzwerk Device mac1 anlegen ip link add mac1 link ovs_bond0 type macvlan mode bridge ip addr add xxx.xxx.xxx.160/32 dev mac1 ip link set mac1 up ip route add xxx.xxx.xxx.160/28 dev mac1
Ich hätte gedacht wenn Du mit dem Netzwerk ovs_bond0 arbeitest, wird beim Befehl arp -a nicht eth1 sondern ovs_bond0 angezeigt. Ich kann das leider nicht nachstellen, da ich mit einem Netzwerkadater kein Bond aufbauen kann. `
Naja, nicht auf dem NAS im Terminal. Habe SSH temporär aktiviert, mich per SSH mit dem NAS verbunden und es im Terminal von meinem Rechner aus gemacht.@tstueben:Kannst du einmal den Befehl ifconfig mac1 auf der NAS aufrufen. `
ifconfig mac1 mac1 Link encap:Ethernet HWaddr EA:AA:8F:E6:0A:17 inet addr:192.168.20.80 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: 2002:5477:60a4:0:e8aa:8fff:fee6:a17/64 Scope:Global inet6 addr: fe80::e8aa:8fff:fee6:a17/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:407650 errors:0 dropped:0 overruns:0 frame:0 TX packets:304434 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:301739518 (287.7 MiB) TX bytes:51057880 (48.6 MiB)
Ich sehe, da passt die IP nicht. Das müsste ja meine IP xxx.xxx.xxx.160 sein - die zweite IP meiner NAS, richtig?
Hab ich wahrscheinlich beim ersten eingeben nicht sauber editiert. Weißt du, wie ich das ändern kann? Oder alles neu setzen kann?
@tstueben:und dann nochmals den Befehl netstat -rn auf der NAS ausführen. Was siehst Du da für das Device mac1? `
netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 xxx.xxx.xxx.1 0.0.0.0 UG 0 0 0 ovs_bond0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.20.80 0.0.0.0 255.255.255.240 U 0 0 0 mac1 192.168.20.160 0.0.0.0 255.255.255.240 U 0 0 0 mac1 xxx.xxx.xxx.0 0.0.0.0 255.255.255.0 U 0 0 0 ovs_bond0 xxx.xxx.xxx.160 0.0.0.0 255.255.255.240 U 0 0 0 mac1
Ich glaub auch hier müsste ich das irgendwie "geradeziehen" - hast du eine Idee, wie ich das sauber editieren kann?
Da hab ich wohl zu viel rumprobiert.
-
Hallo,
das sieht ja etwas wild aus Probiere es mal mit:
ip link del mac1
wenn Du dann ifconfig mac1 und ip link show mac1 aufrufst, solltest Du einen Fehler bekommen, da das Device gelöscht wurde. Mit netstat -rn sollte es auch nicht mehr zu sehen sein.
Anschließend einmal folgendes ausführen:
# Virtuelles Netzwerk Device mac1 anlegen ip link add mac1 link ovs_bond0 type macvlan mode bridge ip addr add xxx.xxx.xxx.160/32 dev mac1 ip link set mac1 up ip route add xxx.xxx.xxx.160/28 dev mac1
ich hoffe danach geht es und Du bekommst den Ping durch?