Deel dit onderwerp alstublieft!

Docker Containers op MikroTik

Docker Containers op Mikrotik 

Heb je al gehoord van MikroTik Docker containers en wist je dat je Docker containers kunt draaien op je Mikrotik-router? Je antwoord is hoogstwaarschijnlijk ja, maar je weet misschien niet hoe je dit moet aanpakken. Met Docker containers kun je programma's op je Mikrotik-router installeren in plaats van gebruik te maken van een Raspberry Pi of andere vergelijkbare hardware. Je installeert het programma in een aangemaakte Docker-container op je router, en je bent klaar. Een paar voorbeelden van deze programma's zijn Pi-Hole, ThingsBoard, Uptimed Kuma, AdGuard en nog andere programma's. Is dit niet een must-have? Ten eerste bespaart Docker containers op MikroTik plaats omdat je geen extra hardware nodig hebt, en ten tweede spaar je wat elektriciteitsverbruik uit. Niet veel, maar toch, elke besparing is mooi meegenomen. Lees deze blogpost en zie welke voorwaarden er zijn als je Docker Containers wilt draaien op je Mikrotik-router.

Docker Containers op Mikrotik


Wat is een Docker container

Een Docker container is een virtueel geïsoleerde omgeving waarin een programma kan draaien. Dit heeft als voordeel dat het de werking van de router zelf niet beïnvloedt, zelfs als een container corrupt is geworden. Je maakt eenvoudig een container aan en schrijft een image van een programma in de container, en dat is het. Stel je eens voor welke mogelijkheden dit met zich meebrengt. Met deze toevoeging aan de Mikrotik-routers gaan er talloze mogelijkheden open. Een bijkomend voordeel is dat als je een bepaald programma niet meer nodig hebt, je de container net zo eenvoudig kunt verwijderen als bonjour. De router blijft rustig zijn werk doen. Dit is zeker mooi meegenomen, maar soms zit er een addertje onder het gras. Bekijk verder wat je moet weten, want dit is zeer belangrijk als je aan de slag wilt gaan met Mikrotik Docker-containers.

Niet alle Mikrotik routers kunnen overweg met Docker containers

De Mikrotik routers die Docker containers draaien zijn de routers die zijn uitgerust met een ARM, ARM64 en X86 architectuur. Maar dit is niet alles. Eerst en vooral moet de router zijn uitgerust met RouterOS V7 en om precies te zijn vanaf RouterOS V7.4 beta4. Heb je nog geen RouterOS V7 op je router geïnstalleerd lees deze blogpostVergewis jezelf dat er veel wijzigingen zijn gebeurd tegenover RouterOS v6. Probeer dit eerst uit op een niet in bedrijf zijnde router. Dit is wat ik aanbeveel. Het is ten zeerste aangeraden om vervolgens externe opslag te gebruiken om de container software te downloaden en te installeren. 

Voldoende opslagcapaciteit door middel van externe opslag

Er moet dus voldoende ruimte zijn om de file te kunnen downloaden en vervolgens te installeren. Dit wil zeggen dat beide RB4011 niet in aanmerking komen omdat deze niet over een USB-poort beschikt. Het is dus oppassen geblazen als je hiervoor een nieuwe Mikrotik router wil aankopen. Ik raad je aan om voor de ARM64 routers te gaan om ten volle te kunnen genieten van de Containers. Een mooi voorbeeld hiervan is de RB5009UG+S+IN die over een ARM64 architectuur beschikt. Uiteraard kan ik niet verantwoordelijk gesteld worden bij een miskoop. Kijk dus goed uit wat je verlangt van je router en netwerk en beredeneer goed wat je nodig hebt. 

Wat is er nodig om de Docker Containers te draaien

Eerst en vooral moet je deze optie downloaden op de Mikrotik website indien deze nog niet is geïnstalleerd. Je download simpelweg de extra packages, je pakt deze uit en sleep de container package in het Winbox venster van je router. Het is ook nodig om daarna de router terug op te starten en de packages is daarna geïnstalleerd. Dit is niet alles want je dient de container package nog te activeren. Eens deze draait kan je aan de slag om Docker Containers op Mikrotik uit te proberen en dit zonder behulp van extra hardware. Dit is schitterend, is het niet? Om je op weg te helpen plaats ik een video met de basis configuratie en wat voorbeeld configuraties onderaan deze blogpost. Als je van start gaat met de configuratie van Docker Containers zorg ervoor dat je router voldoende is beveiligd.  

Wat is nog interessant om weten

Het is goed om weten dat niet alle Docker programma's kunnen draaien op de Mikrotik routers. Dit is normaal want het programma moet compatibel zijn met de Mikrotik router. Er is zelfs verschil tussen de ARM architecturen. Je ziet dat je moet weten waar je aan begint. Denk eraan dat je niets kapot kan maken indien je experimenteert met docker containers op Mikrotik.  Hou je dus niet in om verschillende programma's uit te proberen. Werkt het niet, wis de container en klaar, op naar het volgend programma. Persoonlijk verwacht ik veel van de Mikrotik Docker Containers. De tijd zal het uitwijzen wat Mikrotik nog in petto heeft voor ons. Ik laat je de voorbereiding configuratie zien van deze configuratie waarop je steeds kan verder bouwen.  

Weet dat de containers niet volledig zijn gescheiden van elkaar

De containers zijn niet volledig geïsoleerd van elkaar zoals de virtuele machines. Ze draaien wel elk hun eigen proces, maar wat het netwerk betreft zijn de containers niet gescheiden van elkaar. Indien een van de containers wordt gehackt kunnen ze uw netwerk binnendringen en misbruiken. Een goede raad dat ik je kan geven hieromtrent is om regelmatig de latest version te installeren voor elke geïnstalleerde container. Dit doe je niet door het programma te updaten maar je zal de oudere container moeten verwijderen en terug moeten installeren met de nieuwere image. Dit kan als een minpunt worden beschouwd tegenover de virtuele machines. Bekijk verder hoe je uw router voorbereid om Docker containers te draaien.

Docker containers op Mikrotik beveiligingsrisico's 

OPGELET BIJ GEBRUIK VAN DOCKER CONTAINERS!

Mikrotik verwittigd dat docker containers een veiligheidsrisico met zich meebrengt. Ze schrijven: "Wanneer een beveiligingsexpert zijn exploit-onderzoek publiceert. Kan iedereen zo'n exploit toepassen. Iemand kan hierdoor een container image bouwen, dat de exploit uitvoert en een Linux root shell aanbieden. Door gebruik te maken van een root-shell kan iemand een permanente achterdeur/kwetsbaarheid in het RouterOS systeem achterlaten. Zelfs nadat de docker-image is verwijderd en de containerfunctie is uitgeschakeld. Als een kwetsbaarheid wordt geïnjecteerd in de primaire of secundaire routerboot (of vendor pre-loader), dan kan zelfs netinstall dit mogelijk niet verhelpen". Je bent dus gewaarschuwd dat Mikrotik zich hiervoor indekt. 

Voorbereiding van de container configuratie

Docker container package

In de bovenstaande screenshot zie je dat de container package is geïnstalleerd. 


Het activeren van de containers
Mikrotik docker containers

Eens je de package hebt geïnstalleerd moet je deze activeren in new terminal. Hier zie je het commando, vervolgens moet je de router van de stroom halen en terug opstarten, of je drukt even op de reset knop. Dit moet je doen om te bevestigen dat je fysiek bij de router bent. Met andere woorden kan dit niet op afstand gebeuren. 


Aanmaken van een virtuele interface
Bridge docker

Maak een bridge aan genaamd br_docker en geef deze het IP-adres 172.16.1.1/24. De bridge doet dienst als gateway naar het internet voor alle docker containers dat je installeert. In dit voorbeeld gebruik ik de 172.16.1.0/24 IP-range maar dit kan om het even welk private IP-range zijn. 


Indien nodig het aanmaken van een NAT rule 
Mikrotik docker containers

Als je internet zegt denk aan de NAT rule die je moet aanmaken om de privé IP-range te vertalen naar het externe IP-adres die je router heeft verkregen van je ISP. 


De URL ingeven vanwaar de container image moet worden gedownload
docker containers

Klik nu in het linker menu op "container" en vervolgens op "config" Geef de Registry URL in zoals hierboven aangetoond en als Tmp dir geef eerst je disk in. In dit voorbeeld is dat sata1-part1 omdat ik demonstreer met een Mikrotik RB1100 AHx4 dude edition router. Daarna geef je /container/pull in, wat wil zeggen dat we de Docker image downloaden vanaf de URL https://registry-1.docker.io/ en deze image slaan we tijdelijk op in de directory, in mijn geval sata1-part1/container/pull. Dit is wat betreft de voorbereiding van de Docker containers op Mikrotik. Vanaf nu hangt de configuratie af van het programma dat je wil installeren. Dit wordt zeker nog vervolgt met wat video's. Vergeet niet dat de basis configuratie eerst moet zijn uitgevoerd indien je verder aan de slag wil met de Mikrotik docker container setup. Ik wens je alvast veel plezier toe met de Docker containers op Mikrotik.

De basis docker configuratie kan je hier kopiëren en plakken

system/device-mode update container=yes
/interface bridge add auto-mac=yes name=br_docker
/ip address add address=172.16.1.1/24 interface=br_docker network=172.16.1.0
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1_wan src-address=172.16.1.0/24
/container config set registry-url=https://registry-1.docker.io/ tmpdir=sata1-part1/containers/pull

Deze codes kun je kopiëren en plakken nadat je de vetgedrukte teksten hebt bewerkt. Deze moeten worden aangepast aan de naam van je disk op de Mikrotik-router. Let hierop, anders krijg je een foutmelding bij de installatie van de Docker-container. 


Uptime Kuma installatie

docker containers
/interface veth
 add address=172.16.1.2/24 gateway=172.16.1.1 name=veth_kuma
/interface bridge port
add bridge=br_docker interface=veth_kuma
/container mounts
add dst=/app/data name=kuma src=/sata1-part1/kuma_data
/container
add interface=veth_kuma remote-image=louislam/uptime-kuma:latest mounts=kuma root-dir=sata1-part1/kuma workdir=/app

Deze codes kun je kopiëren en plakken nadat je de vetgedrukte teksten hebt bewerkt. Deze moeten worden aangepast aan de naam van je disk op de Mikrotik-router. Let hierop, anders krijg je een foutmelding bij de installatie van de Docker-container.


Home Assistant installatie

/interface veth
 add address=172.16.1.4/24 gateway=172.16.1.1 name=veth_homeassistant
/interface bridge port
add bridge=br_docker interface=veth_homeassistant
/container/envs
add name="envs_homeassistant" key="TZ" value="Europe/Brussels"
/container/mounts
add name="homeassistant" src="/sata1-part1/containers/mounts/homeassistant" dst="/config"
/container
add remote-image="homeassistant/home-assistant:stable" interface="veth_homeassistant" envlist="envs_homeassistant" cmd="python3 -m homeassistant --config /config" hostname="homeassistant" workdir="/config" root-dir="sata1-part1/containers/homeassistant" mounts="homeassistant"

Deze codes kun je kopiëren en plakken nadat je de vetgedrukte teksten hebt bewerkt. Deze moeten worden aangepast aan de naam van je disk op de Mikrotik-router. Let hierop, anders krijg je een foutmelding bij de installatie van de Docker-container.


Adguard docker container
/interface veth
 add address=172.16.1.2/24 gateway=172.16.1.1 name=veth_Adguard 
/interface bridge port
add bridge=br_docker interface=veth_Adguard 
/container
add remote-image="adguard/adguardhome" interface="veth_Adguard" root-dir="usb1/adguard

Deze codes kun je kopiëren en plakken nadat je de vetgedrukte teksten hebt bewerkt. Deze moeten vervolgens worden aangepast aan de naam van je disk op de Mikrotik-router. Let hierop, anders krijg je een foutmelding bij de installatie van de Docker-container, omdat de drive niet wordt gevonden.


Blijf op de hoogte van mijn nieuwe video tutorials

Deze website maakt gebruik van cookies. Door deze site te blijven gebruiken, accepteert u het gebruik van deze cookies.