Mikrotik kembali memberikan update terbaru pada Router OS versi7 yaitu versi
7.1rc3. Pada versi ini terdapat beberapa pembaharuan, seperti penambahan IPSec
pada RB5009, Penambahan fitur ZeroTier untuk arsitektur ARM dan ARM64, kemudian
yang tak kalah menarik yaitu, penambahan fitur Docker-Container.
Detail changelog Mikrotik versi 7.1rc3:
*) added IPSec hardware acceleration support for RB5009;
*) added support for running Docker (TM) containers;
*) added ZeroTier (TM) support for ARM and ARM64;
*) fixed L2TP establishment (introduced in v7.1rc2);
*) fixed LDPv6;
*) functionality and stability improvements for L2TPv3;
*) VPLS stability improvements;
*) other minor fixes and improvements;
Docker merupakan platform as a service (PaaS) atau aplikasi yang bersifat open
source untuk memasukkan dan menyatukan beberapa file software yang disatukan ke
dalam suatu wadah atau biasa disebut dengan kontainer. Kontainer tersebut nantinya
akan memuat kumpulan image yang berisi data konfigurasi dan file pendukung lainnya.
Sehingga sering kali Docker digunakan sebagai solusi bagi tim developer dalam
mengembangkan aplikasi di berbagai environment yang ada.
Berbasis open source, maka Docker ini bisa kita jalankan di berbagai operating
system, seperti linux, MAC OS, dan Windows.
Dengan adanya Docker dan Container ini maka kita bisa menghemat resource dikarenakan
tidak perlu menginstall operating system secara virtualisasi, namun bisa kita
install aplikasi yang dibutuhkan pada container.
Analogi dari Container dan Virtualisasi bisa di lihat pada gamber berikut:
Jika di lihat pada analogi gambar diatas, didalam satu mesin akan terdapat aplikasi
docker dimana di dalamnya nanti terdapat beberapa macam aplikasi. Sehingga sangat
berbeda dengan virtualisasi konvensional yang akan sangat memakan banyak resource.
Karena ketika kita ingin menginstall suatu aplikasi yang berbeda-beda, maka kita
perlu menginstall operating systemnya terlebih dahulu.
Pada Router OS versi 7.1rc3 terdapat fitur baru yaitu container, seperti yang
sudah di jelaskan sebelumnya, bahwa dengan container ini kita bisa memuat aplikasi-aplikasi
tanpa perlu menginstall operating systemnya, sehingga tentunya bisa lebih menghemat
resource dari perangkat yang kita gunakan.
Fitur container pada Mikrotik ini tentunya sangat menarik karena, dengan fitur
ini kita bisa menambahkan aplikasi atau software yang berfungsi untuk mendukung
kegiatan kita dalam memanajemen jaringan. Contoh aplikasi yang bisa digunakan
kurang lebih seperti berikut: PiHole, Adguard, Shinobi (IP Cam Server), dll. Tentunya
kita bisa menambahkan aplikasi atau software sesuai dengan kebutuhan kita.
Untuk mendapatkan aplikasi atau software yang bisa kita muat pada container,
maka bisa kita dapatkan pada
hub.docker.com.
Syarat Container Mikrotik
- Router Mikrotik dengan arsitektur ARM, ARM64, X86, atau X86-64.
- Router OS dengan versi 7.1rc3 dan pastikan sudah terinstall package Container.
- Docker yang diinstall pada komputer/mesin yang berfungsi untuk mendownload
container.
Konfigurasi
Konfigurasi awal yang di lakukan adalah mengambil (pull) file container aplikasi
yang akan ditambahkan atau digunakan. Detail file container yang bisa digunakan
bisa dilihat pada website hub.docker.com.
Dalam kasus ini, kami akan menambahkan Adguard kedalam container mikrotik yang
bisa dilihat detailnya pada halaman berikut:
Adguard.
Pull & Save
Untuk mengambil (pull) dan menyimpan (save) container, maka tidak bisa langsung
kita lakukan pada router Mikrotik, namun harus kita ambil terlebih dahulu pada
komputer/mesin yang sudah diinstall docker.
Berdasarkan informasi dari web, untuk melakukan pull image adguard maka harus
menggunakan command berikut ini :
docker pull adguard/adguardhome
Setelah proses download selesai, cek ulang image yang sudah di download dengan
menggunakan command berikut ini :
docker image ls
Berdasarkan image yang sudah terdownload, simpan file / image tersebut dengan
format .tar dengan menggunakan command berikut ini :
docker save adguard/adguardhome > adguard.tar
Maka akan terdapat file adguard.tar yang tersimpan. Upload file adguard.tar tersebut
kedalam router mikrotik yang sudah terinstall package Container.
Note: Ketika mengambil (pull) container dari dockerhub, maka perangkat yang digunakan
untk mengambil, dan router Mikrotik harus memiliki arsitektur yang sama. Sebagai
contoh kita mengambil container dari dockerhub menggunakan mesin ARM64, maka file
container tersebut bisa kita pasangkan ke router yang juga memiliki arsitektur
ARM64 seperti CCR2004-16G-2S+. Begitu juga untuk perangkat dengan arsitektur x86.
Konfigurasi Router :
Setelah file adguard.tar dimasukkan kedalam router. Buat interface virtual ethernet
yang akan digunakan untuk container. IP ini yang akan digunakan oleh container
untuk berkomunikasi dengan router dan jaringan.
/interface veth add name=veth1-adguard address=192.168.1.2/24 gateway=192.168.1.1
Selanjutnya, tambahkan interface Bridge yang akan digunakan untuk container.
/interface bridge add name=bridge-docker
/interface bridge port add interface=veth1-adguard
Lalu tambahkan IP Address pada router yang akan digunakan sebagai gateway container
pada interface bridge.
/ip address add address=192.168.1.1/24 interface=bridge-docker
Buat Variable Container, yang akan digunakan untuk menentukan IP Address container.
Selain itu, kita bisa menambahkan beberapa variabel lain seperti TimeZone, password,
port, dsb. Sebagai contoh, kita menambahkan ServerIP (Wajib) dan timezone.
/container envs
add list=adguard name=TZ value=Asia/Indonesia
add list=adguard name=ServerIP value=192.168.1.2
Buat Mountpoints (Optional). Menu ini digunakan untuk menentukan folder yang
akan digunakan oleh adguard jika terdapat file-file tambahan. Bisa saja berisi
konfigurasi, dsb. Jika anda ingin menyimpannya pada storage external, maka harus
mendefinisikan destination. Src berarti posisi file pada routerOS.
/container mounts
add dst=/etc/adguard name=adguard src=/adguard
Buat Container dari image .tar
Setelah membuat environment dan mountpoint, maka langkah selanjutnya buat file
container dari file .tar yang sudah didapatkan pada mesin docker. Perintah yang
bisa digunakan bisa seperti berikut:
/container/add file=adguard.tar interface=veth1-adguard envlist=adguard mounts=adguard
hostname=adguard
Anda bisa tambahkan logging, untuk melihat proses pada Container dengan menambahkan
"logging=yes". Jika Anda ingin menambahkan storage tambahan untuk menyimpan container, maka
Anda juga perlu menambahkan root directory dengan perientah berikut: "add root-dir=disk1/containers/adguard".
Start Container
Sebelum menjalankan container, pastikan status extracting sudah selesai. Proses
extract ini lama tidaknya tergantung dengan besar aplikasi yang kita muat di dalam
container. Untuk pengecekannya bisa di lakukan dengan cara sebagai berikut:
/container/print
Setelah status extract sudah selesai, maka status aplikasi didalam container adalah
stopped. Untuk menjalankan aplikasi dalam container bisa dengan menjalankan perintah
berikut:
/container/start 0
Angka 0 berarti posisi penomoran aplikasi yang ada didalam container. Check kembali
status container, dan pastikan status sudah berubah menjadi running.
Akses Container
Untuk mengakses Container, kita tidak bisa menambahkan interface fisik ke dalam
bridge container. Namun bisa kita di lakukan dengan melakukan konfigurasi full
routing, atau bisa juga kita akses dengan fitur forwarding NAT. Pada contoh kali
ini kita akan memberi contoh menggunakan fitur NAT.
Konfigurasi NAT
Buat rule port forwarding seperti pada gambar berikut:
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=(IP-Router) dst-port=(Port-Router)
protocol=tcp to-addresses=(IP-Container) to-ports=(Port-Container)
Setelah berhasil menambahkan rule firewall tersebut, maka bisa kita akses Adguard
dengan mengakses
IP Router:Port.
Berikut beberapa Container yang sudah berhasil kita install pada Router Mikrotik.
PiHole
Lightstreamer
Traccar
Dengan adanya container ini, kita bisa membuat variasi konfigurasi jaringan yang
lebih luas. Dengan catatan, arsitektur container yang diinstall support dengan
arsitektur mikrotik. Selain itu, Container juga akan membutuhkan resurce CPU,
RAM dan storage yang lumayan banyak. Karena router akan bekerja lebih keras dengan
menjalankan aplikasi didalam container.
Artikel ini dibuat pada: 17 September 2021