Installasi zerotier di Container Mikrotik

Mikrotik telah menyediakan paket untuk Zerotier, namun hanya tersedia pada arsitektur ARM dan ARM64. Untuk mengatasi permasalahan tersebut, zerotier dapat diinstallasi melalui mikrotik container. Permasalahannya mikrotik container hanya tersedia pada arsitektur ARM, ARM64 dan x86. 

Penulis menggunakan mikrotik x86 untuk melakukan Installasi zerotier melalui container yang ada di mikrotik. Mikrotik container hanya tersedia mulai ROS 7, bila ROS anda masih dibawah ROS 7 wajib melakukan upgrade.


Langkah yang perlu dilakukan sbb:

Pastikan package container telah terinstall di mikrotik. Bila belum terinstall, silahkan didownload di websites mikrotik.com/download dan sesuaikan dengan versi ROS yang terinstall.




Pastikan mode container telah aktip, bila belum segera diaktipkan dengan perintah dibawah, selanjutnya restart mikrotik.


/system/device-mode/update container=yes 





tambahkan virtual ethernet dengan ip address yang diinginkan, misalnya 172.17.0.2 sedangkan untuk gataways kita gunakan 172.17.0.1 yang akan dikonfigurasikan di bridge.



/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1


Tambahkan Bridge dan IP address untuk bridge. Bedagan IP address bridge dengan ip address untuk virtual ethernet.


/interface/bridge/add name=containers
/ip/address/add address=172.17.0.1/24 interface=containers


Tambahkan virtual ethernet ke dalam bridge yang telah dibuat.


/interface/bridge/port add bridge=containers interface=veth1


Tambahkan NAT untuk outgoing container.

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24


Sampai disini konfigurasi untuk container sudah selesai. Selanjutnya container yang akan kita tambahkan perlu dikonfigurasikan melalui menu container

Pada contoh kali ini, saya akan menambahkan installasi zerotier dari hub.docker.com. Yang perlu disiapkan disini untuk mendukung container zerotier adalah net, cap-add,TZ dan device, maka perlu ditambahkan pada environment. Untuk mengaktipkan timezone, diperlukan penambahan modul tzdata.

Selanjutnya tambahkan environment melalui terminal mikrotik atau langsung pada container.

/container/envs/add key=net name=zerotier value=host
/container/envs/add key=cap-add name=zerotier value=NET_ADMIN,SYS_ADMIN,SYS_TIME
/container/envs/add key=TZ name=zerotier value="Asia/Makassar" /container/envs/add key=device name=zerotier value=/dev/net/tun

hasilnya sebagai berikut:





Selanjutnya tambahkan sumber images dari container, misalnya diambail dari dokcer.com dengan alamat https://registry-1.docker.io



/container/config/set registry-url=https://registry-1.docker.io 


Terdapat banyak container zerotier di hub.docker.com, namun yang akan kita gunakan adalah https://hub.docker.com/r/gists/zerotier

dari hasil percobaan, hanya container ini yang berhasil terhubung ke zerotier.com dan konfigurasinya lebih nyaman, tidak terhubung dimungkinkan karena versi ROS yang ada bugs dan tidak dapat terhubung ke zerotier.



/container/add remote-image=gists/zerotier:latest interface=veth1 envlist=zerotier

atau melalui winbox seperti gambar berikut :



Tunggu beberapa menit sampai zerotier di download dan di extract dalam container, sampai tanda E hilang dan berganti menjadi S.

Selanjutnya aktipkan zerotier dengan menekan tombol start.




Sampai disini, installasi zerotier telah selesai dengan status zerotier aktip (tanda huruf R). Selanjutnya kita perlu menghubungkan zerotier di mikrotik ke server zerotier.com. Pastikan di zerotier.com sudah membuat account dan mengaktipkan network di zerotier.com

Lihat terlebih dahulu, zerotier ada di nomor berapa dengan perintah dibawah


/container/print


Misalnya zerotier ada di urutan ke 0, makan kita akan masuk ke container zerotier dengan perintah dibawah



/container/shell 0



Tambahkan modul tzdata di container dengan command berikut:



apk add tzdata


melalui container mikrotik, kita berikan perintah dibawah ini untuk mendaftarkan zerotier di mikrotik ke zerotier.com, ganti network-id-zerotier dengan kode yang didapatkan dari zerotier.



zerotier-cli join <network-id-zerotier>


setelah menjalankan perintah diatas, selanjutnya masuk kembali ke websites zerotier.com dan berikan authorize ke host yang baru tergabung ke jaringan anda di zerotier.

Sampai disini, container zerotier mikrotik telah aktip dan dapat di ping dari komputer yang telah terhubung ke zerotier.

Gambar dibawah merupakan hasil ping ke container zerotier di mikrotik dari komputer yang telah terhbung ke mikrotik.




Selanjutnya buatkan sebuah file dengan nama /entrypoint.sh di root directory, sesuaikan dengan ip address dan konfigurasi zerotier yang anda miliki. pastikan iptables sudah terinstall di container anda.




#!/bin/sh
set -e

echo "Setting up iptables rules..."

# Forwarding rule
iptables -A FORWARD -j ACCEPT

# DNAT rule
iptables -t nat -A PREROUTING -d 10.10.11.200/32 -j DNAT --to-destination 172.18.0.1

# MASQUERADE rules
iptables -t nat -A POSTROUTING -o veth1-zerotier -j MASQUERADE
iptables -t nat -A POSTROUTING -o ztpxxxxxx -j MASQUERADE

echo "iptables rules applied successfully."

# Execute the container's main command (CMD)
exec "$@"


Selanjutnya buka container zerotier, cari bagian entrypoint dan tambahkan file /entrypoint.sh





Bila tidak ada masalah, seharusnya mikrotik anda sudah bisa dibuka dari internet melalui zerotier.


tambahan :

Mikrotik RouterOS 7.23 mulai melakukan tambahan untuk health status, kita dapat menambahkan command untuk melakukan pengecekan healthtly pada zerotier dengan menambahkan kode di tab healthcheck pada kolom Healthcheck Cmd 



ping -c 1 10.10.11.200 || exit 1









Comments

Popular posts from this blog

Persyaratan Domain .id Indonesia

Setting email account di blackberry