Skip to content

Instantly share code, notes, and snippets.

@phalconyx
Created August 1, 2026 23:14
Show Gist options
  • Select an option

  • Save phalconyx/9d40d2fa540547193c186627fe888c54 to your computer and use it in GitHub Desktop.

Select an option

Save phalconyx/9d40d2fa540547193c186627fe888c54 to your computer and use it in GitHub Desktop.

Tutorial Lengkap Sharing Internet Wi-Fi Raspberry Pi ke MikroTik

1. Tujuan

Tutorial ini mengatur Raspberry Pi sebagai gateway internet untuk MikroTik. Raspberry Pi menerima internet melalui Wi-Fi pada wlan0, lalu membagikannya melalui port Ethernet eth0. MikroTik menerima koneksi tersebut melalui satu port ether khusus sebagai WAN, lalu membagikannya kembali kepada perangkat pada bridge LAN dan Wi-Fi MikroTik.

Dokumentasi ini juga mencakup:

  • NetworkManager dalam mode shared pada Raspberry Pi.
  • DHCP, DNS forwarder, IP forwarding, dan NAT otomatis pada Raspberry Pi.
  • Aturan DOCKER-USER karena Docker sempat memblokir trafik forwarding.
  • Layanan systemd agar aturan firewall aktif kembali setelah restart.
  • DHCP Client pada port WAN MikroTik.
  • DHCP Server dan DNS relay untuk perangkat klien.
  • masquerade MikroTik pada port ether yang terhubung ke Raspberry Pi.
  • Pengujian bertahap dan pemecahan masalah.

2. Topologi Final

flowchart TD
    A["Internet"] --> B["Router atau access point Wi-Fi"]
    B --> C["Raspberry Pi wlan0"]
    C --> D["Raspberry Pi eth0<br/>10.10.10.10/24"]
    D --> E["WAN MikroTik<br/>DHCP Client"]
    E --> F["Bridge LAN MikroTik<br/>10.11.12.13/24"]
    F --> G["Perangkat klien<br/>10.11.12.x/24"]
Loading

Kabel jaringan menghubungkan eth0 Raspberry Pi dengan satu port ether MikroTik. Tutorial ini memakai ether1 sebagai contoh port WAN. Ganti ether1 pada seluruh perintah jika kabel Raspberry Pi terhubung ke port lain.

3. Rencana Alamat IP

Fungsi Antarmuka Konfigurasi final
Internet Raspberry Pi wlan0 IP, gateway, dan DNS dari jaringan Wi-Fi
Gateway transit Raspberry Pi eth0 10.10.10.10/24
Jaringan transit Raspberry Pi ke MikroTik 10.10.10.0/24
WAN MikroTik ether1 atau port ether aktual DHCP Client, menerima 10.10.10.x/24
Gateway WAN MikroTik Dari DHCP Raspberry Pi 10.10.10.10
DNS hulu MikroTik Dari DHCP Raspberry Pi 10.10.10.10
Gateway LAN MikroTik bridge 10.11.12.13/24
Jaringan klien Bridge LAN dan Wi-Fi MikroTik 10.11.12.0/24
Pool DHCP klien DHCP Server MikroTik 10.11.12.100-10.11.12.250
Gateway perangkat klien DHCP Server MikroTik 10.11.12.13
DNS perangkat klien DHCP Server MikroTik 10.11.12.13

Alamat .0 berfungsi sebagai network address dan .255 sebagai broadcast pada subnet /24. Jangan berikan kedua alamat tersebut kepada perangkat.

4. Prinsip Konfigurasi yang Wajib Dipahami

4.1 Port WAN MikroTik tidak boleh masuk bridge LAN

Port ether yang terhubung ke Raspberry Pi berfungsi sebagai WAN. Jangan masukkan port tersebut ke bridge yang menggabungkan port LAN dan Wi-Fi MikroTik.

Bridge hanya memuat:

  • Port Ethernet untuk perangkat LAN.
  • Antarmuka Wi-Fi MikroTik, misalnya wlan1 atau wifi1.
  • Antarmuka lain yang memang berfungsi sebagai LAN.

4.2 Gateway dan DNS perangkat klien mengarah ke MikroTik

Perangkat klien harus menerima:

IP      : 10.11.12.x/24
Gateway : 10.11.12.13
DNS     : 10.11.12.13

Perangkat klien tidak memakai 10.10.10.10 sebagai gateway. Alamat 10.10.10.10 hanya berfungsi sebagai gateway dan DNS hulu pada sisi WAN MikroTik.

4.3 Masquerade MikroTik harus keluar melalui port ether menuju Raspberry Pi

Aturan NAT klien harus memakai:

out-interface=ether1

Ganti ether1 dengan port fisik yang terhubung ke Raspberry Pi. Jangan memakai bridge LAN sebagai out-interface, karena trafik internet tidak keluar melalui bridge tersebut.

4.4 Raspberry Pi dan MikroTik menjalankan dua tahap NAT

Alur trafik internet berlangsung sebagai berikut:

  1. Klien 10.11.12.x mengirim trafik ke MikroTik 10.11.12.13.
  2. MikroTik melakukan masquerade ketika trafik keluar melalui port ether menuju Raspberry Pi.
  3. Raspberry Pi menerima trafik melalui eth0 pada jaringan 10.10.10.0/24.
  4. NetworkManager melakukan masquerade menuju wlan0.
  5. Router Wi-Fi meneruskan trafik ke internet.

Konfigurasi ini menghasilkan double NAT pada MikroTik dan Raspberry Pi. Akses internet keluar bekerja normal. Akses masuk dari internet memerlukan konfigurasi tambahan dan tidak termasuk dalam tutorial ini.

5. Nama Antarmuka dalam Tutorial

Tutorial memakai nama berikut:

Fungsi Nama contoh
Wi-Fi Raspberry Pi wlan0
Ethernet Raspberry Pi eth0
Profil sharing NetworkManager LAN-Internet
Port MikroTik menuju Raspberry Pi ether1
Bridge LAN MikroTik bridge

Periksa nama aktual sebelum melakukan perubahan.

Pada Raspberry Pi:

nmcli device status
nmcli -f NAME,DEVICE,TYPE,STATE connection show --active
ip -br link

Pada MikroTik:

/interface print
/interface bridge print
/interface bridge port print

6. Pemeriksaan Awal dan Pencadangan

6.1 Pastikan Raspberry Pi memiliki internet melalui Wi-Fi

Jalankan pada Raspberry Pi:

ping -I wlan0 -c 4 1.1.1.1
ping -I wlan0 -c 4 google.com
ip route get 1.1.1.1

Hasil ip route get harus menunjukkan wlan0, misalnya:

1.1.1.1 via 192.168.x.1 dev wlan0

Jika Raspberry Pi tidak dapat mengakses internet melalui wlan0, selesaikan masalah Wi-Fi terlebih dahulu.

6.2 Periksa konflik subnet

Jalankan:

ip -4 route

Pastikan jaringan Wi-Fi, Docker, Tailscale, VPN, atau antarmuka lain tidak memakai:

10.10.10.0/24
10.11.12.0/24

Setelah konfigurasi selesai, rute 10.10.10.0/24 dev eth0 merupakan hasil yang benar.

6.3 Cadangkan konfigurasi MikroTik

/export file=before-rpi-sharing
/system backup save name=before-rpi-sharing

Gunakan Winbox melalui MAC address jika perubahan alamat IP LAN berpotensi memutus sesi administrasi.

7. Konfigurasi Raspberry Pi sebagai Gateway

Pilih salah satu skenario berikut. Gunakan Bagian 7.1 jika profil LAN-Internet sudah tersedia. Gunakan Bagian 7.2 jika profil tersebut belum tersedia.

7.1 Memperbarui profil LAN-Internet yang sudah ada

Kosongkan DNS, gateway, rute, dan domain pencarian lama:

sudo nmcli connection modify "LAN-Internet" \
  ipv4.dns "" \
  ipv4.dns-search "" \
  ipv4.routes "" \
  ipv4.gateway ""

Langkah tersebut mencegah galat berikut saat mengaktifkan mode shared:

ipv4.dns: this property is not allowed for method=shared

Terapkan konfigurasi final:

sudo nmcli connection modify "LAN-Internet" \
  connection.interface-name eth0 \
  connection.autoconnect yes \
  ipv4.method shared \
  ipv4.addresses "10.10.10.10/24" \
  ipv4.never-default yes \
  ipv6.method disabled

Aktifkan ulang profil:

sudo nmcli connection down "LAN-Internet"
sudo nmcli connection up "LAN-Internet"

Jika perintah down menyatakan bahwa profil belum aktif, langsung jalankan perintah up.

7.2 Membuat profil LAN-Internet baru

Jalankan bagian ini hanya jika profil belum tersedia:

sudo nmcli connection add \
  type ethernet \
  ifname eth0 \
  con-name "LAN-Internet" \
  connection.autoconnect yes \
  ipv4.method shared \
  ipv4.addresses "10.10.10.10/24" \
  ipv4.never-default yes \
  ipv6.method disabled

Aktifkan profil:

sudo nmcli connection up "LAN-Internet"

7.3 Verifikasi IP, DHCP, DNS, forwarding, dan NAT

Jalankan:

nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns,ipv4.never-default \
  connection show "LAN-Internet"

nmcli -f NAME,DEVICE,STATE connection show --active
ip -4 address show dev eth0
ip -4 route
sysctl net.ipv4.ip_forward
sudo ss -lunp | grep ':67 '
sudo ss -luntp | grep ':53 '
sudo nft list table ip nm-shared-eth0

Hasil yang diharapkan:

Pemeriksaan Hasil
Metode IPv4 shared
Alamat eth0 10.10.10.10/24
Gateway profil LAN-Internet Kosong
DNS profil LAN-Internet Kosong
Default route Raspberry Pi Tetap melalui wlan0
DHCP Server dnsmasq mendengarkan UDP port 67
IPv4 forwarding net.ipv4.ip_forward = 1
NAT NetworkManager Aturan masquerade untuk 10.10.10.0/24 tersedia

Tabel NAT NetworkManager biasanya menampilkan aturan berikut:

ip saddr 10.10.10.0/24 ip daddr != 10.10.10.0/24 masquerade

Jika aturan tersebut tersedia, jangan menambahkan aturan MASQUERADE lain secara manual pada Raspberry Pi.

8. Mengizinkan Forwarding saat Docker Aktif

Bagian ini wajib pada konfigurasi yang diuji karena Docker memblokir jalur forwarding meskipun NetworkManager sudah membuat NAT. Indikasinya terlihat ketika MikroTik dapat melakukan ping ke 10.10.10.10, tetapi tidak dapat melakukan ping ke 1.1.1.1.

8.1 Periksa rantai Docker

systemctl is-active docker
command -v iptables
sudo iptables -L FORWARD -n -v --line-numbers
sudo iptables -L DOCKER-USER -n -v --line-numbers

8.2 Tambahkan aturan forwarding

Aturan pertama mengizinkan trafik dari MikroTik menuju internet. Aturan kedua hanya mengizinkan trafik balasan dengan status ESTABLISHED atau RELATED.

sudo iptables -C DOCKER-USER \
  -i eth0 -o wlan0 \
  -s 10.10.10.0/24 \
  -j ACCEPT 2>/dev/null || \
sudo iptables -I DOCKER-USER 1 \
  -i eth0 -o wlan0 \
  -s 10.10.10.0/24 \
  -j ACCEPT

sudo iptables -C DOCKER-USER \
  -i wlan0 -o eth0 \
  -d 10.10.10.0/24 \
  -m conntrack --ctstate ESTABLISHED,RELATED \
  -j ACCEPT 2>/dev/null || \
sudo iptables -I DOCKER-USER 2 \
  -i wlan0 -o eth0 \
  -d 10.10.10.0/24 \
  -m conntrack --ctstate ESTABLISHED,RELATED \
  -j ACCEPT

Periksa hasilnya:

sudo iptables -L DOCKER-USER -n -v --line-numbers

Contoh hasil yang benar:

num  pkts bytes target  in     out    source          destination
1       6  1320 ACCEPT  eth0   wlan0  10.10.10.0/24  0.0.0.0/0
2       4   224 ACCEPT  wlan0  eth0   0.0.0.0/0       10.10.10.0/24  ctstate RELATED,ESTABLISHED

Nilai pkts dan bytes bertambah ketika MikroTik mengakses internet.

8.3 Membuat aturan aktif otomatis setelah restart

Aturan yang dimasukkan langsung melalui iptables tersimpan di memori. Raspberry Pi atau Docker dapat membentuk ulang rantai tersebut setelah restart. Buat layanan systemd untuk memasang aturan secara otomatis setelah Docker aktif.

Pastikan lokasi iptables:

command -v iptables

Konfigurasi berikut memakai /usr/sbin/iptables. Sesuaikan path jika hasil pemeriksaan menunjukkan lokasi lain.

Buat unit layanan:

sudo nano /etc/systemd/system/mikrotik-forward.service

Masukkan isi berikut:

[Unit]
Description=Allow MikroTik internet forwarding through Raspberry Pi
Requires=docker.service
After=NetworkManager.service docker.service
PartOf=docker.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c '/usr/sbin/iptables -C DOCKER-USER -i eth0 -o wlan0 -s 10.10.10.0/24 -j ACCEPT 2>/dev/null || /usr/sbin/iptables -I DOCKER-USER 1 -i eth0 -o wlan0 -s 10.10.10.0/24 -j ACCEPT'
ExecStart=/bin/sh -c '/usr/sbin/iptables -C DOCKER-USER -i wlan0 -o eth0 -d 10.10.10.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 2>/dev/null || /usr/sbin/iptables -I DOCKER-USER 2 -i wlan0 -o eth0 -d 10.10.10.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Aktifkan layanan:

sudo systemctl daemon-reload
sudo systemctl enable --now mikrotik-forward.service

Periksa status dan aturan:

systemctl is-enabled mikrotik-forward.service
systemctl is-active mikrotik-forward.service
systemctl status mikrotik-forward.service --no-pager
sudo iptables -L DOCKER-USER -n -v --line-numbers

Hasil yang benar menunjukkan enabled, active, dan dua aturan ACCEPT.

8.4 Uji persistensi setelah restart

sudo reboot

Setelah Raspberry Pi aktif kembali, jalankan:

systemctl is-active NetworkManager
systemctl is-active docker
systemctl is-active mikrotik-forward.service
nmcli -f NAME,DEVICE,STATE connection show --active
ip -4 address show dev eth0
sudo iptables -L DOCKER-USER -n -v --line-numbers

Jika dua aturan tampil, Anda tidak perlu menjalankan perintah iptables secara manual setelah restart.

9. Menyiapkan Port WAN MikroTik

Bagian ini memakai ether1 sebagai contoh port yang terhubung ke eth0 Raspberry Pi.

9.1 Pastikan port WAN tidak masuk bridge

/interface bridge port print where interface=ether1

Jika perintah menampilkan ether1 sebagai anggota bridge, hapus hanya entri tersebut:

/interface bridge port remove [find where interface=ether1]

Periksa kembali:

/interface bridge port print

9.2 Periksa alamat statis lama

/ip address print detail where interface=ether1

Port WAN sebaiknya hanya menerima alamat melalui DHCP Client. Jika port masih memiliki alamat statis lama, catat nomor barisnya, lalu hapus alamat tersebut setelah memastikan bahwa alamat itu tidak lagi diperlukan:

/ip address remove numbers=NOMOR_ALAMAT

9.3 Aktifkan DHCP Client

Periksa DHCP Client yang sudah tersedia:

/ip dhcp-client print detail

Jika DHCP Client belum tersedia pada ether1, tambahkan:

/ip dhcp-client add \
  interface=ether1 \
  add-default-route=yes \
  default-route-distance=1 \
  use-peer-dns=yes \
  disabled=no

Jika DHCP Client sudah tersedia, sesuaikan konfigurasinya:

/ip dhcp-client set [find where interface=ether1] \
  add-default-route=yes \
  default-route-distance=1 \
  use-peer-dns=yes \
  disabled=no

Perbarui lease:

/ip dhcp-client renew [find where interface=ether1]

Jika perintah renew tidak tersedia pada versi RouterOS yang digunakan, nonaktifkan lalu aktifkan kembali DHCP Client:

/ip dhcp-client disable [find where interface=ether1]
/ip dhcp-client enable [find where interface=ether1]

9.4 Verifikasi WAN MikroTik

/ip dhcp-client print detail
/ip address print where interface=ether1
/ip route print detail where dst-address=0.0.0.0/0
/ip dns print

Hasil yang diharapkan:

Parameter Hasil
Status DHCP Client bound
Alamat WAN MikroTik 10.10.10.x/24
Gateway 10.10.10.10
Default route Dinamis dan aktif melalui 10.10.10.10
Dynamic DNS 10.10.10.10

Uji internet dari MikroTik:

/ping 10.10.10.10 count=4
/ping 1.1.1.1 count=4
/ping google.com count=4
/tool traceroute 1.1.1.1

Jika MikroTik dapat melakukan ping ke 1.1.1.1 dan google.com, sisi Raspberry Pi dan WAN MikroTik sudah bekerja.

10. Menyiapkan Bridge LAN MikroTik

10.1 Pastikan bridge hanya memuat antarmuka LAN

/interface bridge print
/interface bridge port print

Contoh anggota bridge LAN:

  • ether2, ether3, dan port lain untuk perangkat lokal.
  • wlan1 atau wifi1 untuk klien nirkabel.

Jangan tambahkan ether1 jika port tersebut terhubung ke Raspberry Pi.

Jika bridge belum tersedia, contoh konfigurasi dasarnya:

/interface bridge add name=bridge comment="Bridge LAN kabel dan Wi-Fi"
/interface bridge port add bridge=bridge interface=ether2
/interface bridge port add bridge=bridge interface=wlan1

Sesuaikan daftar port dan nama antarmuka Wi-Fi dengan perangkat MikroTik. Jangan membuat bridge kedua jika bridge LAN sudah tersedia.

10.2 Tetapkan IP gateway LAN

Periksa alamat yang terpasang:

/ip address print detail where interface=bridge

Target akhir harus menunjukkan:

10.11.12.13/24 interface=bridge

Jika bridge belum memiliki alamat, tambahkan:

/ip address add \
  address=10.11.12.13/24 \
  interface=bridge \
  comment="Gateway LAN"

Jika bridge memakai alamat lama, catat nomor baris dari hasil print, lalu ubah alamat tersebut:

/ip address set numbers=NOMOR_ALAMAT \
  address=10.11.12.13/24 \
  interface=bridge

11. Menyiapkan DHCP Server dan DNS MikroTik

11.1 Konfigurasi baru

Jalankan bagian ini hanya jika DHCP Server LAN belum tersedia:

/ip pool add \
  name=pool-LAN \
  ranges=10.11.12.100-10.11.12.250

/ip dhcp-server add \
  name=dhcp-LAN \
  interface=bridge \
  address-pool=pool-LAN \
  lease-time=1d \
  disabled=no

/ip dhcp-server network add \
  address=10.11.12.0/24 \
  gateway=10.11.12.13 \
  dns-server=10.11.12.13

11.2 Memperbarui DHCP Server yang sudah ada

Periksa nama pool, DHCP Server, dan network:

/ip pool print
/ip dhcp-server print detail
/ip dhcp-server network print detail

Sesuaikan pool yang sudah ada. Ganti NOMOR_POOL dengan nomor baris aktual:

/ip pool set numbers=NOMOR_POOL \
  ranges=10.11.12.100-10.11.12.250

Sesuaikan network DHCP yang sudah ada. Ganti NOMOR_NETWORK dengan nomor baris aktual:

/ip dhcp-server network set numbers=NOMOR_NETWORK \
  address=10.11.12.0/24 \
  gateway=10.11.12.13 \
  dns-server=10.11.12.13

Pastikan DHCP Server berjalan pada bridge LAN:

/ip dhcp-server set [find where name="dhcp-LAN"] \
  interface=bridge \
  disabled=no

Sesuaikan dhcp-LAN jika server memakai nama lain.

11.3 Aktifkan DNS relay MikroTik

/ip dns set allow-remote-requests=yes
/ip dns print

MikroTik menerima 10.10.10.10 sebagai DNS dinamis dari DHCP Client. MikroTik kemudian melayani permintaan DNS perangkat klien melalui alamat LAN 10.11.12.13.

Alur DNS final:

Perangkat klien
    -> DNS MikroTik 10.11.12.13
    -> DNS forwarder Raspberry Pi 10.10.10.10
    -> DNS hulu pada koneksi wlan0

Pastikan firewall input MikroTik tetap membatasi layanan DNS dari sisi WAN. Jangan menonaktifkan aturan firewall default tanpa pemeriksaan.

12. Menambahkan Masquerade MikroTik pada Port Raspberry Pi

Bagian ini merupakan konfigurasi yang membuat perangkat klien akhirnya dapat mengakses internet.

12.1 Periksa aturan NAT

/ip firewall nat print detail

Cari aturan srcnat untuk subnet LAN 10.11.12.0/24.

12.2 Tambahkan aturan masquerade yang benar

Jika belum tersedia, tambahkan:

/ip firewall nat add \
  chain=srcnat \
  src-address=10.11.12.0/24 \
  out-interface=ether1 \
  action=masquerade \
  comment="NAT LAN melalui Raspberry Pi"

Ganti ether1 dengan port ether aktual yang terhubung langsung ke Raspberry Pi.

Konfigurasi penting:

Parameter Nilai yang benar
chain srcnat
src-address 10.11.12.0/24
out-interface Port ether menuju Raspberry Pi, contoh ether1
action masquerade

12.3 Nonaktifkan aturan lama yang memakai bridge sebagai output

Jika aturan lama memakai out-interface=bridge, catat nomor barisnya dari hasil print, lalu nonaktifkan aturan tersebut:

/ip firewall nat disable numbers=NOMOR_RULE_LAMA

Jangan menonaktifkan aturan NAT lain sebelum memastikan fungsi dan targetnya.

12.4 Periksa penghitung paket NAT

/ip firewall nat print stats detail

Lakukan akses internet dari perangkat klien. Nilai paket dan byte pada aturan dengan komentar NAT LAN melalui Raspberry Pi harus bertambah.

13. Konfigurasi yang Harus Diterima Perangkat Klien

Putuskan lalu sambungkan kembali Wi-Fi atau kabel agar perangkat meminta lease DHCP baru.

Perangkat harus menerima:

Parameter Nilai final
IP 10.11.12.100-10.11.12.250
Subnet mask 255.255.255.0
Gateway 10.11.12.13
DNS 10.11.12.13

Perangkat tidak seharusnya menerima:

  • Gateway 10.10.10.10.
  • DNS 10.10.10.10 secara langsung.
  • Alamat dari subnet 10.10.10.0/24.

Periksa lease pada MikroTik:

/ip dhcp-server lease print detail

14. Pengujian Berurutan

14.1 Uji pada Raspberry Pi

ping -I wlan0 -c 4 1.1.1.1
ping -I wlan0 -c 4 google.com
ip route get 1.1.1.1

14.2 Uji pada MikroTik

/ping 10.10.10.10 count=4
/ping 1.1.1.1 count=4
/ping google.com count=4

14.3 Uji pada perangkat klien

Pada Linux atau macOS:

ping -c 4 10.11.12.13
ping -c 4 10.10.10.10
ping -c 4 1.1.1.1
ping -c 4 google.com
curl -I https://example.com

Pada Windows:

ipconfig /all
ping 10.11.12.13
ping 10.10.10.10
ping 1.1.1.1
ping google.com

Beberapa server atau sistem membatasi respons ICMP. Jika ping gagal tetapi browser dapat membuka situs HTTPS, gunakan browser atau curl untuk memastikan akses internet.

14.4 Interpretasi hasil

Hasil pengujian Kesimpulan
Klien gagal ping 10.11.12.13 Bridge, Wi-Fi MikroTik, IP klien, atau DHCP LAN bermasalah
Klien dapat ping gateway tetapi gagal ping 1.1.1.1 NAT MikroTik atau firewall forward bermasalah
Klien dapat ping 1.1.1.1 tetapi gagal ping domain DNS klien atau DNS relay MikroTik bermasalah
MikroTik dapat internet tetapi klien tidak Periksa masquerade pada port ether menuju Raspberry Pi
MikroTik gagal ping 1.1.1.1 Periksa forwarding Raspberry Pi dan rantai DOCKER-USER
Semua pengujian berhasil Sharing internet bekerja secara menyeluruh

15. Verifikasi setelah Restart

15.1 Raspberry Pi

systemctl is-active NetworkManager
systemctl is-active docker
systemctl is-active mikrotik-forward.service
nmcli -g ipv4.method connection show "LAN-Internet"
nmcli -f NAME,DEVICE,STATE connection show --active
ip -4 address show dev eth0
ip -4 route
sysctl net.ipv4.ip_forward
sudo ss -lunp | grep ':67 '
sudo nft list table ip nm-shared-eth0
sudo iptables -L DOCKER-USER -n -v --line-numbers

15.2 MikroTik

/interface bridge port print
/ip dhcp-client print detail
/ip route print detail where dst-address=0.0.0.0/0
/ip dns print
/ip dhcp-server network print detail
/ip dhcp-server lease print detail
/ip firewall nat print stats detail
/ping 1.1.1.1 count=4
/ping google.com count=4

15.3 Perangkat klien

Perbarui lease DHCP dengan menyambungkan ulang Wi-Fi atau kabel. Pastikan perangkat kembali menerima gateway dan DNS 10.11.12.13, lalu uji browser.

16. Kriteria Keberhasilan

Konfigurasi berhasil jika memenuhi seluruh kondisi berikut:

  • Raspberry Pi mengakses internet melalui wlan0.
  • Profil LAN-Internet aktif pada eth0 dengan alamat 10.10.10.10/24.
  • dnsmasq mendengarkan UDP port 67.
  • NetworkManager membuat NAT untuk 10.10.10.0/24.
  • net.ipv4.ip_forward bernilai 1.
  • Rantai DOCKER-USER memuat dua aturan ACCEPT.
  • Layanan mikrotik-forward.service berstatus active setelah restart.
  • Port WAN MikroTik tidak masuk bridge LAN.
  • DHCP Client MikroTik berstatus bound.
  • MikroTik menerima gateway dan DNS 10.10.10.10.
  • MikroTik dapat melakukan ping ke alamat IP publik dan nama domain.
  • Bridge LAN MikroTik memakai alamat 10.11.12.13/24.
  • Perangkat klien menerima gateway dan DNS 10.11.12.13.
  • Aturan NAT MikroTik memakai port ether menuju Raspberry Pi sebagai out-interface.
  • Penghitung paket pada aturan NAT bertambah saat klien mengakses internet.
  • Perangkat klien dapat membuka situs internet.

17. Pemecahan Masalah

Gejala Penyebab yang paling mungkin Tindakan
DHCP Client MikroTik berstatus searching Profil LAN-Internet tidak aktif, kabel bermasalah, atau port WAN masih masuk bridge Periksa eth0, UDP 67, kabel, dan keanggotaan bridge
MikroTik dapat ping 10.10.10.10, tetapi gagal ping 1.1.1.1 Docker memblokir forwarding Raspberry Pi Periksa dan pasang dua aturan DOCKER-USER
Internet MikroTik berhenti setelah restart Aturan iptables tidak aktif kembali Periksa mikrotik-forward.service dan log layanan
MikroTik dapat ping internet, tetapi klien tidak NAT klien salah atau belum tersedia Pasang masquerade dengan out-interface port ether menuju Raspberry Pi
Aturan NAT MikroTik memakai out-interface=bridge Bridge merupakan sisi LAN, bukan jalur keluar internet Nonaktifkan aturan lama dan gunakan port WAN fisik
Klien menerima gateway 10.10.10.10 Konfigurasi DHCP Server LAN salah Ubah gateway DHCP menjadi 10.11.12.13
Klien menerima DNS 10.10.10.10 DHCP membagikan DNS hulu secara langsung Ubah DNS DHCP menjadi 10.11.12.13 dan aktifkan DNS relay MikroTik
Klien dapat ping 1.1.1.1, tetapi tidak dapat membuka domain DNS relay atau DNS hulu bermasalah Periksa /ip dns print dan DNS pada wlan0
NAT counter tidak bertambah Subnet atau nama port pada aturan tidak sesuai Cocokkan 10.11.12.0/24 dan port ether aktual
Klien memperoleh alamat 169.254.x.x DHCP Server MikroTik tidak menjawab Periksa interface DHCP Server, pool, network, dan bridge

Periksa log Raspberry Pi jika masalah muncul setelah boot:

journalctl -u mikrotik-forward.service -b --no-pager
journalctl -u NetworkManager -b --no-pager | tail -n 100
journalctl -u docker -b --no-pager | tail -n 100

Periksa DNS hulu Raspberry Pi:

nmcli -f IP4.GATEWAY,IP4.DNS device show wlan0

Periksa firewall MikroTik tanpa langsung menghapus aturan:

/ip firewall filter print stats detail
/ip firewall nat print stats detail

Jangan menjalankan perintah yang menghapus seluruh firewall karena tindakan tersebut dapat memutus jaringan, mengganggu Docker, dan membuka akses yang tidak diperlukan.

18. Catatan Keamanan

  • Gunakan subnet privat 10.10.10.0/24 dan 10.11.12.0/24 untuk jaringan lokal.
  • Jangan memakai alamat publik seperti 9.10.11.12 atau 11.11.11.11 sebagai alamat LAN.
  • Jangan memasukkan port WAN menuju Raspberry Pi ke bridge LAN.
  • Aturan balik pada Raspberry Pi hanya menerima koneksi berstatus ESTABLISHED atau RELATED.
  • Biarkan firewall default MikroTik melindungi sisi WAN.
  • Batasi administrasi MikroTik hanya dari jaringan LAN.
  • Cadangkan konfigurasi sebelum mengubah bridge, alamat IP, DHCP, NAT, atau firewall.
  • Jangan menambahkan NAT manual pada Raspberry Pi jika NetworkManager sudah membuat tabel nm-shared-eth0.
  • Jangan membuat beberapa aturan NAT MikroTik yang memiliki fungsi sama.

19. Ringkasan Konfigurasi Final

Komponen Konfigurasi
Sumber internet Raspberry Pi wlan0
Profil sharing Raspberry Pi LAN-Internet
Raspberry Pi eth0 10.10.10.10/24
DHCP dan DNS transit dnsmasq dari NetworkManager
NAT Raspberry Pi Otomatis melalui nm-shared-eth0
Izin forwarding saat Docker aktif Dua aturan pada DOCKER-USER
Persistensi aturan Raspberry Pi mikrotik-forward.service
WAN MikroTik Port ether menuju Raspberry Pi, contoh ether1
Konfigurasi WAN MikroTik DHCP Client
Gateway dan DNS WAN MikroTik 10.10.10.10
Bridge LAN MikroTik Tidak mencakup port WAN
IP gateway LAN MikroTik 10.11.12.13/24
Pool DHCP klien 10.11.12.100-10.11.12.250
Gateway klien 10.11.12.13
DNS klien 10.11.12.13
NAT klien masquerade menuju port ether Raspberry Pi

20. Alur Akhir yang Telah Berhasil

Perangkat klien 10.11.12.x
    -> Gateway dan DNS MikroTik 10.11.12.13
    -> Masquerade MikroTik melalui port ether menuju Raspberry Pi
    -> Raspberry Pi eth0 10.10.10.10
    -> Forwarding melalui DOCKER-USER
    -> Masquerade NetworkManager menuju wlan0
    -> Router Wi-Fi
    -> Internet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment