Belajar Iptables - Migrasi ke nftables
Episode 20 of 23

Belajar Iptables - Migrasi ke nftables

Memigrasikan ruleset iptables ke nftables secara aman: mengekspor dengan iptables-save, menerjemahkan massal dengan iptables-restore-translate, menerjemahkan per-rule dengan iptables-translate, serta strategi cutover bertahap yang bisa di-rollback di tengah jalan

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Setelah memahami di episode 19 bahwa iptables-nft hanyalah jembatan ke nf_tables, pertanyaan logis berikutnya muncul: kalau ujung-ujungnya sama, kenapa tidak langsung bicara bahasa nftables saja? Episode 20 menjawabnya dengan langkah nyata: migrasi. Kalian akan belajar menerjemahkan ruleset iptables yang sudah berjalan bertahun-tahun menjadi aturan nftables murni — tanpa downtime, tanpa kebingungan, dengan rollback selalu tersedia.

Kunci migrasi yang tenang ada di tool resmi dari proyek netfilter: iptables-translate dan iptables-restore-translate. Keduanya membaca bahasa iptables dan menulis bahasa nft — membuat perpindahan lebih seperti "mengganti kamus" daripada menulis ulang dari nol.

Kenapa Migrasi ke nftables?

Mengapa repot, kalau iptables-nft masih berfungsi? Beberapa alasan yang sah:

AlasanPenjelasan
Aturan murni nftSets, maps, dan ekspresi yang tidak dimiliki iptables
Satu sintaksinet family menangani IPv4 + IPv6 sekaligus
PerformaO(log n) lookup untuk sets vs linear scan
Operasi atomikPerubahan ruleset dengan nft -f tanpa jendela tidak aman
Masa depanPengembangan fitur hanya di nftables

Untuk deployment baru, nftables adalah pilihan; untuk server yang sudah berjalan, migrasi perlu direncanakan. Di sinilah seluruh keterampilan kalian dari episode 8 (backup) dan 19 (backend) bersatu.

Langkah 1: Ekspor Ruleset yang Ada

Selalu mulai dari state yang dikenal baik:

Ekspor ruleset saat ini
sudo iptables-save > /root/backup/rules.v4.before
sudo ip6tables-save > /root/backup/rules.v6.before

Kedua file ini adalah tiket pulang kalian. Sampai migrasi dinyatakan berhasil, mereka tidak boleh hilang.

Langkah 2: Terjemahkan Massal

iptables-restore-translate menerjemahkan seluruh file ruleset sekaligus:

Terjemahkan file ruleset
sudo iptables-restore-translate -f /root/backup/rules.v4.before > ruleset.nft
Lihat hasil terjemahan
cat ruleset.nft
text
# Translated by iptables-restore-translate v1.8.9 on ...
add table ip filter
add chain ip filter INPUT { type filter hook input priority 0; }
add chain ip filter FORWARD { type filter hook forward priority 0; }
add chain ip filter OUTPUT { type filter hook output priority 0; }
add rule ip filter INPUT ct state established,related accept
add rule ip filter INPUT tcp dport 443 accept
add rule ip filter INPUT counter drop

Perhatikan polanya: setiap chain iptables menjadi chain nftables dengan hook dan priority yang sama; aturan -A menjadi add rule; modul conntrack menjadi ekspresi ct state. Yang perlu kalian periksa: hasil terjemahan belum tentu final — ia basis yang harus di-review, bukan jawaban jadi.

Langkah 3: Terjemahkan Per-Rule (Bila Perlu)

Untuk aturan-aturan yang kompleks, atau untuk memahami satu per satu, iptables-translate menerjemahkan perintah tunggal:

Terjemahkan satu rule
sudo iptables-translate -A INPUT -p tcp --dport 443 -j ACCEPT
text
nft add rule ip filter INPUT tcp dport 443 counter accept
Terjemahkan rule conntrack
sudo iptables-translate -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
text
nft add rule ip filter INPUT ct state established,related counter accept

Juga tersedia ip6tables-translate untuk aturan IPv6. Fitur ini dua arah — ia juga bisa membaca ekspresi nft untuk membantu memahami apa yang sudah ada.

Tip

Mulai dari ruleset yang sudah bersih (episode 17) sebelum diterjemahkan. Aturan yang membingungkan hanya akan diterjemahkan menjadi nftables yang sama-sama membingungkan — bedanya sekarang lebih sulit dibaca orang yang tidak kenal iptables. Rapikan dulu, baru terjemahkan.

Langkah 4: Konsolidasi ke Family inet

Kelebihan nftables yang paling berharga: tabel inet menangani IPv4 dan IPv6 sekaligus. Setelah terjemahan, konsolidasikan:

Konsolidasi ruleset IPv4+IPv6
# Gabung aturan IPv4 dan IPv6 ke satu tabel inet
sudo nft -f ruleset.nft
sudo ip6tables-restore-translate -f /root/backup/rules.v6.before >> ruleset.nft
# Lalu rapikan duplikasi & jadikan satu tabel 'inet firewall'

Alih-alih dua tabel (ip dan ip6), kalian bisa menulis satu tabel inet dengan aturan yang berlaku untuk kedua family. Ini adalah langkah yang sebaiknya dilakukan manual — hasil translate berfungsi, tapi konsolidasi memberi penghematan terbesar.

Langkah 5: Cutover Aman & Rollback

Cutover tidak harus drama. Strategi yang direkomendasikan:

  1. Dev/staging dulu — jalankan ruleset nft di lingkungan uji, bandingkan perilaku dengan ruleset iptables selama 1-2 minggu.
  2. Backup penuh sebelum cutoveriptables-save, ip6tables-save, dan snapshot file ruleset.
  3. Cutover bertahap — misalnya terapkan aturan nft untuk satu layanan dulu, verifikasi, lanjut ke yang lain.
  4. Rollback satu perintah — kalau bermasalah, restore ruleset iptables lama:
Rollback cepat
sudo nft flush ruleset
sudo iptables-restore < /root/backup/rules.v4.before
sudo ip6tables-restore < /root/backup/rules.v6.before

Karena iptables-nft dan nft menulis ke kernel yang sama, flush lalu restore iptables memulihkan state semula dalam hitungan detik.

Warning

Jangan pernah melakukan cutover tanpa akses out-of-band ke mesin. Kesalahan sintaks nft bisa membuat aturan dasar ikut hilang (ingat konsekuensi nft flush ruleset dari episode 19). Akses konsol + backup + prosedur rollback tertulis adalah tiga syarat non-negosiasi sebelum migrasi produksi.

Memanfaatkan Fitur nftables: Sets & Maps

Setelah migrasi, kalian mendapatkan fitur yang tidak ada di iptables. Set menyimpan kumpulan nilai dan melakukan lookup O(log n):

Set nftables
nft add set inet firewall blocked_ips { type ipv4_addr; }
nft add element inet firewall blocked_ips { 203.0.113.7, 203.0.113.9 }
nft add rule inet firewall input ip saddr @blocked_ips drop

Mengelola 1000 IP dalam satu set jauh lebih efisien daripada 1000 aturan -s berurutan — dan bisa diisi/dikosongkan tanpa menyentuh aturan inti.

Timeline Migrasi Realistis

100%

Migrasi firewall seharusnya memakan waktu berminggu-minggu, bukan berjam-jam. Kesabaran di tahap review dan uji paralel adalah investasi terbesar.

Penutup

Inti yang harus dibawa pulang:

  • Ekspor dulu dengan iptables-save/ip6tables-save — itulah tiket pulang.
  • iptables-restore-translate -f menerjemahkan massal; iptables-translate untuk per-rule.
  • Konsolidasikan IPv4 + IPv6 ke tabel inet; rapikan ruleset sebelum diterjemahkan.
  • Cutover bertahap dengan backup + prosedur rollback; uji panjang di staging.
  • Manfaatkan sets/maps nftables setelah migrasi untuk skala dan performa.

Di episode 21 selanjutnya kita akan membahas automation & IaC — mengelola firewall dengan Ansible (modul iptables & iptables_state), memahami aturan Docker dan kube-proxy Kubernetes yang hidup di atas iptables, serta posisi firewalld/nftables sebagai default RHEL. Sampai jumpa di episode 21!

Belajar Iptables - Migrasi ke nftables | Belajar Iptables