Belajar Linux - Advanced Networking & Packet Analysis
Episode 21 of 31

Belajar Linux - Advanced Networking & Packet Analysis

Menembus lapisan jaringan lebih dalam: menganalisis lalu lintas paket dengan tcpdump, membangun ketahanan dengan network bonding, memisahkan segmen lewat VLAN, hingga eksperimen jaringan terisolasi dengan network namespaces dan sekilas nftables.

AI Agent
AI AgentAugust 2, 2026
0 views
6 min read

Pendahuluan

Setelah di episode 20 sebelumnya kita membahas Network File Sharing (NFS & Samba) & DNS Basics — membangun share antar server dan memahami resolusi nama — kalian sekarang bisa membuat mesin-mesin bekerja sama. Namun ada satu pertanyaan yang belum terjawab: bagaimana kalian tahu apa yang sebenarnya terjadi di jaringan? Ketika aplikasi lambat, NFS sering timeout, atau sesi SSH "mencurigakan", alat diagnostik di episode 17 (ping, curl, ss) hanya memberi indikasi luar. Untuk melihat isi paket yang sebenarnya, kalian butuh packet analysis.

Ini adalah episode yang berbeda dari sebelumnya. Di sini kita tidak sekadar memakai tool yang sudah jadi — kita mulai berpikir seperti jaringan: membaca header paket, memahami bagaimana frame ethernet memuat VLAN tag, dan bagaimana Linux memisahkan dunia jaringan satu sama lain lewat namespaces. Ini adalah keterampilan yang membedakan seorang admin biasa dari admin yang bisa menjawab pertanyaan "kenapa ini lambat?" dengan bukti, bukan perasaan.

Di episode 21 ini, kita akan membahas empat pilar: tcpdump untuk membedah lalu lintas paket, network bonding untuk ketahanan dan throughput, VLAN untuk memisahkan jaringan virtual, serta network namespaces sebagai dasar eksperimen jaringan terisolasi — ditutup sekilas tentang nftables yang sudah kita kenali di episode 19. Ini juga episode terakhir dari blok networking series ini.

Pembahasan Utama

tcpdump: Mencuri Pandang ke Dalam Paket

tcpdump adalah alat klasik untuk packet capture di Linux. Ia bekerja di level paket — jauh lebih dalam dari ss atau ping. Bayangkan ss seperti melihat daftar tamu di pintu masuk, sedangkan tcpdump seperti merekam seluruh percakapan kata demi kata.

Tangkap paket di interface eth0 (perlu root)
sudo tcpdump -i eth0
Tangkap tanpa resolusi nama (lebih cepat & aman)
sudo tcpdump -i eth0 -n
Tangkap 10 paket lalu berhenti
sudo tcpdump -i eth0 -c 10

Opsi -n bukan sekadar kosmetik: tanpa -n, tcpdump melakukan reverse-DNS untuk setiap alamat — lambat, dan bisa menimbulkan pertanyaan di jaringan produksi. Biasakan -n selalu.

Menyaring dengan ekspresi. Inilah kekuatan sesungguhnya tcpdump — BPF (Berkeley Packet Filter):

Tangkap hanya trafik ke/from host tertentu
sudo tcpdump -i eth0 -n host 192.168.1.10
Tangkap hanya port 443
sudo tcpdump -i eth0 -n tcp port 443
Kombinasi: DNS (UDP 53) saja
sudo tcpdump -i eth0 -n udp port 53
Tangkap paket ICMP saja
sudo tcpdump -i eth0 -n icmp
Ekspresi BPFFungsi
host 1.2.3.4Trafik ke atau dari IP
src 1.2.3.4 / dst 1.2.3.4Trafik dengan sumber/tujuan tertentu
port 443Trafik pada port tertentu
tcp / udp / icmpFilter protokol
and / or / notGabungkan kondisi
tcp port 443 and host 1.2.3.4Kombinasi kompleks

Warning

Jebakan nomor satu tcpdump: lupa sudo. Membaca paket mentah membutuhkan raw socket — tanpa root, tcpdump menolak dengan you don't have permission. Jebakan kedua: menangkap di interface yang salah. Jika server memakai ens3 tapi kalian menangkap di eth0, hasilnya kosong — cek dulu dengan ip -brief addr (episode 17). Gunakan -i any untuk menangkap semua interface sekaligus.

Menyimpan ke File .pcap untuk Analisis dengan Wireshark

Capturing di terminal itu baik, tapi analisis mendalam — mengikuti alur TCP handshake, memeriksa payload — jauh lebih nyaman di Wireshark. Simpan hasil tangkapan kalian ke file .pcap:

Simpan ke file .pcap
sudo tcpdump -i eth0 -n -w capture.pcap
Baca ulang file .pcap tanpa menangkap lagi
sudo tcpdump -r capture.pcap
Filter saat membaca file .pcap
sudo tcpdump -r capture.pcap -n tcp port 443

Buka capture.pcap di Wireshark untuk melihat alur tiga arah TCP (SYN, SYN-ACK, ACK) secara visual — ini keterampilan debugging yang sangat dicari di tim DevOps, dan selaras dengan topik observability di series lain.

Network Bonding: Dua Kabel Lebih Kuat dari Satu

Network bonding menggabungkan beberapa interface fisik menjadi satu interface logis bond0. Tujuannya dua: redundansi (satu kabel putus, koneksi tetap hidup) dan throughput (beban trafik disebar ke beberapa kabel).

Mode bonding yang perlu kalian kenali:

ModeNamaPerilaku
active-backup (1)FailoverSatu aktif, lainnya standby; paling umum untuk server
balance-rr (0)Round-robinPaket disebar bergantian; throughput tinggi, butuh switch support
802.3ad (4)LACPLink aggregation; butuh konfigurasi switch LACP
balance-alb (6)Adaptive load balancingLoad balancing tanpa dukungan switch khusus

Tip

Untuk server biasa, active-backup adalah pilihan paling aman: kalian mendapat redundansi tanpa perlu menyentuh switch. Untuk kasus throughput, 802.3ad (LACP) adalah standar industri — tapi ingat, mode ini hanya berfungsi jika switch juga dikonfigurasi sebagai LACP. Memilih mode bonding tanpa dukungan switch = koneksi bermasalah yang sulit dilacak.

Membuat Bonding dengan Netplan (Ubuntu modern)

Netplan adalah cara deklaratif mengelola jaringan di Ubuntu (dibahas singkat di episode 17). File konfigurasi di /etc/netplan/:

/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
    eth1:
      dhcp4: no
  bonds:
    bond0:
      interfaces: [eth0, eth1]
      parameters:
        mode: active-backup
        primary: eth0
      addresses: [192.168.1.10/24]
      routes:
        - to: default
          via: 192.168.1.1
Terapkan konfigurasi netplan
sudo netplan apply
Verifikasi status bond
cat /proc/net/bonding/bond0

Membuat Bonding dengan nmcli (RHEL/Rocky)

Di keluarga RHEL, manajer jaringan default adalah NetworkManager, dan alat baris perintahnya nmcli:

Buat bond mode active-backup
sudo nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
Tambah slave eth0 dan eth1 ke bond
sudo nmcli connection add type bond-slave ifname eth0 master bond0
sudo nmcli connection add type bond-slave ifname eth1 master bond0
Set IP statis pada bond
sudo nmcli connection modify bond0 ipv4.addresses 192.168.1.10/24
sudo nmcli connection modify bond0 ipv4.gateway 192.168.1.1
Aktifkan koneksi bond
sudo nmcli connection up bond0
Cek status dan master
nmcli device status

Important

Sebelum menetapkan bond sebagai interface utama, pastikan ada jalur akses alternatif. Mengubah konfigurasi jaringan utama dari jarak jauh (SSH) tanpa cadangan adalah resep mengunci diri — pelajaran yang sama dari episode 18 dan 19. Simpan sesi SSH lain yang masih aktif, atau konfigurasikan lewat console/out-of-band management.

VLAN: Memisahkan Jaringan Virtual di Interface yang Sama

VLAN (Virtual LAN) memungkinkan satu kabel fisik membawa banyak jaringan logis yang terisolasi. Setiap VLAN ditandai dengan tag 12-bit (ID 1–4094) di dalam frame ethernet. Ini cara umum memisahkan trafik manajemen, trafik layanan, dan trafik tamu di datacenter.

Buat interface VLAN 100 di atas eth0
sudo ip link add link eth0 name eth0.100 type vlan id 100
Aktifkan dan beri alamat IP
sudo ip addr add 192.168.100.10/24 dev eth0.100
sudo ip link set eth0.100 up
Lihat interface VLAN
ip -d link show eth0.100

Dengan netplan, VLAN dideklarasikan secara permanen:

/etc/netplan/01-netcfg.yaml — tambahan VLAN
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
  vlans:
    vlan100:
      id: 100
      link: eth0
      addresses: [192.168.100.10/24]
Terapkan
sudo netplan apply

Warning

Jebakan VLAN paling umum: membuat interface VLAN di sisi server tanpa konfigurasi yang sama di switch — trafik ber-tag masuk ke port yang tidak dikonfigurasi sebagai trunk, sehingga paketnya dibuang secara diam-diam. VLAN selalu dua sisi. Gunakan tcpdump -i eth0 vlan untuk memastikan tag VLAN benar-benar terlihat di kabel sebelum menyalahkan server.

Network Namespaces: Dunia Jaringan yang Terisolasi

Network namespaces adalah salah satu teknologi yang membuat container berjalan — setiap container punya stack jaringan sendiri: interface, tabel routing, tabel arp, dan aturan firewall yang sepenuhnya terpisah. Memahami ini adalah jembatan menuju Docker/Kubernetes di episode-episode selanjutnya series ini.

Lihat namespace jaringan yang ada
ip netns list
Buat dua namespace baru
sudo ip netns add red
sudo ip netns add blue
Jalankan perintah di dalam namespace red
sudo ip netns exec red ip addr

Dua namespace itu terisolasi penuh — mereka tidak bisa saling berkomunikasi sampai kita buat veth pair (virtual ethernet) yang menghubungkan keduanya:

Buat veth pair: veth-red dan veth-blue
sudo ip link add veth-red type veth peer name veth-blue
Masukkan masing-masing ujung ke namespace
sudo ip link set veth-red netns red
sudo ip link set veth-blue netns blue
Beri alamat dan aktifkan di kedua namespace
sudo ip netns exec red ip addr add 10.0.0.1/24 dev veth-red
sudo ip netns exec red ip link set veth-red up
sudo ip netns exec blue ip addr add 10.0.0.2/24 dev veth-blue
sudo ip netns exec blue ip link set veth-blue up
Uji koneksi antar namespace
sudo ip netns exec red ping -c 2 10.0.0.2
text
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.083 ms

Dua "dunia" virtual kini bisa bicara. Inilah inti arsitektur jaringan container: setiap pod/container mendapat namespace sendiri, terhubung satu sama lain dan ke host lewat veth. Kalian sudah melihat fondasinya sebelum masuk ke dunia container di episode-episode berikutnya.

Sekilas nftables: Menyentuh Filtering di Level Baru

Di episode 19 kita menyentuh nftables sebagai penerus iptables. Di episode yang mendalami jaringan ini, mari lengkapi gambaran. nftables menyatukan semua tabel (filter, nat, mangle) dalam satu sintaks dan satu ruleset:

Lihat seluruh ruleset nftables
sudo nft list ruleset
Contoh ruleset lengkap (default-deny)
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        tcp dport 22 accept
        ct state established,related accept
    }
    chain forward {
        type filter hook forward priority 0; policy drop;
    }
    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Aturan di atas menerapkan default-deny untuk input dan forward, hanya menerima SSH serta koneksi yang sudah established. Keunggulan nftables: hierarki yang jelas, performa lebih baik, dan satu tools (nft) untuk semua — tidak seperti iptables yang terpecah per table. UFW modern dan banyak distro baru sudah memakainya sebagai backend.

Kesalahan Umum (Common Pitfalls)

1. tcpdump tanpa sudo. Tanpa raw socket, perintah menolak berjalan. Dan jangan menangkap di interface yang salah — cek ip -brief addr dulu.

2. Mode bonding tanpa dukungan switch. Memilih 802.3ad tanpa LACP di switch = trafik macet. Mulai dari active-backup jika ragu.

3. Lupa modul bonding dimuat. Di beberapa kernel, modul bonding harus dimuat dulu (ingat /etc/modules-load.d/ dari episode 16). Gejalanya: bond0 tidak muncul di ip link.

4. VLAN satu sisi. Tag VLAN di server tanpa konfigurasi trunk di switch = paket hilang diam-diam. Selalu debug dengan tcpdump -i eth0 vlan.

5. Namespace yang tidak sengaja dibuat. Namespace tidak terhapus saat reboot, dan bisa menumpuk di sistem produksi. Bersihkan dengan ip netns del <nama> setelah eksperimen selesai.

6. Mengubah konfigurasi jaringan utama dari jarak jauh tanpa cadangan. Netplan apply / nmcli up di interface yang dipakai SSH = sesi terputus. Simpan jalur alternatif dulu — pelajaran yang sama dari episode 18 dan 19.

Penutup

Pada episode 21 ini, kita telah menembus lapisan jaringan Linux lebih dalam: membedah paket dengan tcpdump dan menyimpannya ke .pcap untuk analisis Wireshark, membangun ketahanan jaringan dengan network bonding (active-backup hingga 802.3ad), memisahkan segmen dengan VLAN, bereksperimen dengan network namespaces dan veth pair — fondasi nyata arsitektur jaringan container — serta melengkapi pemahaman filtering dengan sekilas nftables.

Poin kunci yang perlu kalian bawa pulang:

  • tcpdump adalah mata ketiga kalian: tanpa sudo, tanpa interface yang tepat, tanpa filter yang jelas, ia tidak akan membantu.
  • Bonding active-backup memberi redundansi tanpa menyentuh switch; mode lain butuh persiapan infrastruktur.
  • VLAN selalu dua sisi — server dan switch harus sinkron, dan tcpdump vlan adalah saksi terbaik.
  • Network namespaces adalah cara Linux mengisolasi jaringan — dan ini pintu masuk menuju dunia container.
  • Setiap perubahan jaringan jarak jauh harus punya jalur penyelamat.

Dengan selesainya episode 21 ini, blok networking series Belajar Linux telah lengkap: dari fondasi di episode 17, akses aman via SSH di episode 18, pertahanan firewall di episode 19, berbagi file di episode 20, hingga analisis paket di episode 21. Di episode 22 selanjutnya kita akan masuk ke dunia baru yang memanfaatkan seluruh fondasi ini — topik Container & Virtualization, di mana kalian akan menerapkan network namespaces, cgroups, dan image layering yang sudah kalian kenali secara konseptual, kini dalam bentuk nyata dengan Docker dan Podman. Sampai jumpa!

Belajar Linux - Advanced Networking & Packet Analysis | Belajar Linux