by: CITRAWEB SOLUSI TEKNOLOGI, PT
Aturan | Tentang Kami | Kontak Kami

Artikel

Implementasi Container Mikrotik

Jum'at, 17 September 2021, 09:25:00 WIB
Kategori: Fitur & Penggunaan
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



Kembali ke :
Halaman Artikel | Kategori Fitur & Penggunaan