Okay, kalau anda dah berjaya setup rangkaian asas dari Bab 4 — DNS jalan, DHCP stabil, peranti semua boleh online — tahniah! Sekarang kita masuk level seterusnya. Bab ini akan tunjuk macam mana nak fine-tune rangkaian anda supaya lebih selamat, lebih teratur, dan lebih professional.
Tapi macam biasa — jangan rush. Tambah satu benda pada satu masa, test, pastikan okay, baru tambah benda seterusnya.
Apa yang anda akan belajar:
Nota Beginner: Bab ini sesuai dianggap sebagai “fasa 2”. Kalau DNS, DHCP, dan akses dalaman pun belum stabil, tangguhkan dulu bahagian lanjutan ni. Selesaikan asas dulu, baru level up.
Selepas pemasangan, akses antara muka web pfSense melalui https://10.0.0.1. Dari sini, anda boleh control semua benda — firewall rules, DHCP, DNS, VLAN, dan banyak lagi.
https://10.0.0.1
Wizard Persediaan Awal:
pfsense
lab.local
1.1.1.1
9.9.9.9
Asia/Kuala_Lumpur
my.pool.ntp.org
10.0.0.1/24
Nota Beginner: Wizard ni akan guide anda step by step. Kalau guna ISP Unifi atau TM, pilih PPPoE dan masukkan username/password yang ISP bagi. Kalau tak pasti, hubungi ISP anda.
NAT ni macam receptionist di pejabat. Semua orang dalam pejabat (rangkaian peribadi) guna satu nombor telefon utama (IP awam) untuk call keluar. Receptionist (NAT) yang uruskan siapa call siapa.
Port Forwarding:
Kadang-kadang anda nak orang luar boleh access service tertentu. Port forwarding macam bagi extension number — call masuk ke nombor utama, tapi sambung ke orang yang betul.
Firewall → NAT → Port Forward → Add Interface: WAN Protocol: TCP Destination: WAN address Destination Port: 443 Redirect Target: 10.0.20.20 Redirect Port: 443 Description: HTTPS ke Reverse Proxy
Contoh Port Forward yang Biasa:
Nota Beginner: Minimumkan port yang dibuka melalui Port Forward. Setiap port yang terbuka adalah satu “pintu masuk” yang attacker boleh cuba. Gunakan VPN untuk akses perkhidmatan dalaman — jauh lebih selamat daripada buka banyak port.
Ini cara elegant untuk pastikan peranti sentiasa dapat IP yang sama, tanpa perlu set IP statik pada peranti tu sendiri. Router yang uruskan.
Services → DHCP Server → LAN → DHCP Static Mappings Alamat MAC: aa:bb:cc:dd:ee:ff IP Address: 10.0.0.20 Hostname: docker-host Description: Pelayan Docker Utama
Bagusnya cara ni — kalau anda format semula server, dia tetap dapat IP yang sama sebab router ingat MAC address dia. Tak perlu reconfigure.
pfSense boleh jadi DNS resolver atau forwarder. Apa bezanya?
DNS Resolver (Unbound): - Menyelesaikan pertanyaan DNS secara langsung — tanya terus ke root servers - Lebih peribadi (tiada pihak ketiga nampak pertanyaan anda) - Sedikit lebih perlahan untuk pertanyaan pertama
DNS Forwarder: - Majukan pertanyaan ke pelayan DNS lain (1.1.1.1, 8.8.8.8) - Lebih pantas untuk pertanyaan pertama - Kurang peribadi
Saya cadangkan: Gunakan Pi-hole sebagai DNS utama, dengan pfSense sebagai sandaran. Best of both worlds!
Services → DNS Resolver → General Settings Aktifkan: Ya Port: 53 Interface: LAN, VLAN20, VLAN30 DNS Query Forwarding: Aktifkan (ke Pi-hole 10.0.0.2)
Jom setup VLAN step by step. Bayangkan anda nak buat tiga “bilik” dalam rangkaian — satu untuk server, satu untuk IoT, satu untuk tetamu.
Langkah 1: Cipta VLAN
Interfaces → VLANs → Add Parent Interface: igb1 (LAN) VLAN Tag: 20 Description: Pelayan (Ulang untuk VLAN 30, 40, dll.)
Langkah 2: Tetapkan Antara Muka
Interfaces → Assignments → Add VLAN 20 → Tetapkan sebagai OPT1 → Namakan semula ke "PELAYAN" → Alamat IP: 10.0.20.1/24 → DHCP: Aktifkan (10.0.20.100 - 10.0.20.254) VLAN 30 → Tetapkan sebagai OPT2 → Namakan semula ke "IOT" → Alamat IP: 10.0.30.1/24 → DHCP: Aktifkan (10.0.30.100 - 10.0.30.254)
Langkah 3: Peraturan Firewall VLAN
Ini bahagian yang paling penting — tentukan siapa boleh bercakap dengan siapa:
# VLAN PELAYAN (20) Benarkan: PELAYAN net → Mana-mana (Internet + LAN) Benarkan: PELAYAN net → PELAYAN net (inter-server) # VLAN IoT (30) Benarkan: IoT net → IoT net (peranti IoT sesama) Benarkan: IoT net → 10.0.20.23:8123 (Home Assistant sahaja) Benarkan: IoT net → Mana-mana:53 (DNS) Benarkan: IoT net → Mana-mana:123 (NTP) Sekat: IoT net → RFC1918 (sekat semua rangkaian peribadi lain) Benarkan: IoT net → Mana-mana (Internet) # VLAN Tetamu (40) Sekat: Tetamu net → RFC1918 (sekat semua rangkaian peribadi) Benarkan: Tetamu net → Mana-mana (Internet sahaja)
Perhatikan logiknya — IoT boleh access internet dan Home Assistant, tapi tak boleh nampak server atau PC anda. Tetamu pula hanya boleh guna internet. Simple dan selamat!
Sekarang kita dah buat VLAN kat firewall, kena setup switch pulak. Switch kena tahu port mana belong VLAN mana.
Konfigurasi VLAN pada Suis:
Port 1: Trunk (ke router) - VLAN 1: Tagged - VLAN 20: Tagged - VLAN 30: Tagged - VLAN 40: Tagged - PVID: 1 Port 2-3: Pelayan (VLAN 20) - VLAN 20: Untagged - PVID: 20 Port 4: NAS (VLAN 1 - LAN utama) - VLAN 1: Untagged - PVID: 1 Port 5-6: IoT (VLAN 30) - VLAN 30: Untagged - PVID: 30 Port 7: WiFi AP (Trunk) - VLAN 1: Tagged - VLAN 30: Tagged - VLAN 40: Tagged - PVID: 1 Port 8: Komputer Admin (VLAN 1) - VLAN 1: Untagged - PVID: 1
Penjelasan Tagged vs Untagged:
Ini konsep yang ramai orang pening. Saya jelaskan dengan analogi:
Nota Beginner: Kalau VLAN setup anda tak berfungsi, 90% masalah adalah salah satu daripada: (1) trunk port tak tagged semua VLAN yang perlu, (2) PVID salah, atau (3) firewall rule tak betul. Check tiga benda tu dulu.
MikroTik sangat popular sebab harga murah tapi feature gila banyak. Saya cadangkan untuk orang yang tak takut CLI:
# Konfigurasi VLAN pada MikroTik (CLI) # Cipta bridge /interface bridge add name=bridge1 # Tambah port ke bridge /interface bridge port add bridge=bridge1 interface=ether2 /interface bridge port add bridge=bridge1 interface=ether3 # Cipta VLAN /interface vlan add interface=bridge1 name=vlan20 vlan-id=20 /interface vlan add interface=bridge1 name=vlan30 vlan-id=30 # Tetapkan alamat IP /ip address add address=10.0.20.1/24 interface=vlan20 /ip address add address=10.0.30.1/24 interface=vlan30 # Konfigurasi DHCP untuk setiap VLAN /ip pool add name=pool-vlan20 ranges=10.0.20.100-10.0.20.254 /ip dhcp-server add interface=vlan20 address-pool=pool-vlan20 /ip dhcp-server network add address=10.0.20.0/24 gateway=10.0.20.1 dns-server=10.0.0.2
Ini benda yang sangat cool — satu WiFi AP boleh broadcast berbilang SSID, setiap satu dengan VLAN berbeza. Macam satu bangunan dengan pintu masuk berbeza.
Contoh Konfigurasi:
Nampak? Tetamu connect ke Guest-WiFi, tapi mereka hanya boleh access internet — tak boleh nampak NAS atau server anda. Selamat!
Pada Ubiquiti UniFi: 1. Settings → WiFi → Create New 2. Nama: IoT-Devices 3. Security: WPA2 Personal 4. VLAN: 30 5. Band: 2.4 GHz sahaja (untuk peranti IoT lama yang tak support 5GHz)
IoT-Devices
Pada TP-Link Omada: 1. Wireless Networks → Add 2. SSID: IoT-Devices 3. VLAN: 30 4. Security: WPA/WPA2-Personal 5. Schedule: Sentiasa aktif
Satu lagi feature penting — Client Isolation. Ini bermaksud peranti pada WiFi yang sama pun tak boleh nampak sesama sendiri. Sangat penting untuk rangkaian tetamu!
UniFi: WiFi → Guest Network → Client Isolation: ON Omada: Wireless → SSID → Client Isolation: Enable
Nota Beginner: Bayangkan anda bagi WiFi kat tetamu. Tanpa Client Isolation, telefon tetamu A boleh “nampak” laptop tetamu B. Dengan Client Isolation, setiap tetamu isolated — lebih selamat.
Nak tahu siapa yang makan bandwidth paling banyak? ntopng boleh jawab. Ia macam CCTV untuk rangkaian anda — nampak semua trafik secara real-time.
services: ntopng: image: ntop/ntopng:stable container_name: ntopng network_mode: host environment: - NTOPNG_ARGS=-i eth0 -w 3000 volumes: - ./ntopng/data:/var/lib/ntopng restart: unless-stopped
Ciri ntopng: - Papan pemuka trafik masa nyata — nampak siapa guna berapa bandwidth - Pengenalpastian aplikasi (Layer 7) — Netflix ke YouTube yang makan bandwidth? - Pengesanan ancaman — kalau ada traffic suspicious, ntopng alert - Sejarah trafik — boleh check traffic pattern semalam, minggu lepas - Amaran berdasarkan ambang — set alert kalau bandwidth exceed limit
Nak tahu kalau ISP deliver speed yang dijanjikan? Automate speedtest dan log hasilnya:
#!/bin/bash # /usr/local/bin/speedtest-log.sh RESULT=$(speedtest-cli --json) echo "$RESULT" >> /var/log/speedtest.json echo "$(date): $(echo $RESULT | jq -r '.download/1000000 | floor') Mbps down, $(echo $RESULT | jq -r '.upload/1000000 | floor') Mbps up"
Dari pengalaman saya, ini sangat berguna kalau anda nak complain ke ISP. Ada data concrete, bukan sekadar “internet saya slow.”
IPv6 ni macam upgrade dari nombor telefon 8 digit ke 12 digit — lebih banyak nombor, semua orang boleh dapat nombor sendiri.
Interfaces → WAN → IPv6 Configuration Type: DHCPv6 → DHCPv6 Prefix Delegation Size: 56 Interfaces → LAN → IPv6 Configuration Type: Track Interface → Track IPv6 Interface: WAN → IPv6 Prefix ID: 0 Services → DHCPv6 Server → LAN → Aktifkan → Range: ::100 to ::ffff → Router Advertisements: Managed
Nota Beginner: IPv6 memberikan alamat IP awam kepada setiap peranti. Ini bermaksud firewall rules anda jadi lebih penting! Pastikan peraturan firewall IPv6 dikonfigurasi dengan betul. Kalau tak pasti, disable IPv6 dulu dan enable kemudian bila dah lebih faham.
Bila rangkaian tak berfungsi (dan ia akan berlaku — percayalah), anda perlu tahu cara troubleshoot. Ini skills yang sangat berharga, bukan sahaja untuk homelab tapi untuk kerjaya IT anda.
pfSense dah siap sedia dengan tools troubleshooting:
Diagnostics → Ping → Ping peranti dari perspektif firewall Diagnostics → Traceroute → Jejak laluan ke destinasi Diagnostics → DNS Lookup → Uji resolusi DNS — domain resolve ke IP yang betul ke? Diagnostics → Packet Capture → Tangkap paket pada mana-mana antara muka → Sangat berguna untuk mengesan masalah VLAN
tcpdump ni macam stethoscope untuk network — anda boleh “dengar” apa yang berlaku pada kabel:
# Tangkap semua trafik pada antara muka sudo tcpdump -i eth0 # Tangkap trafik DNS sahaja sudo tcpdump -i eth0 port 53 # Tangkap trafik ke/dari IP tertentu sudo tcpdump -i eth0 host 10.0.20.20 # Tangkap trafik VLAN sudo tcpdump -i eth0 -e vlan # Simpan tangkapan ke fail (untuk analisis Wireshark) sudo tcpdump -i eth0 -w /tmp/capture.pcap
Nota Beginner: Jangan takut dengan tcpdump. Mulakan dengan command simple macam sudo tcpdump -i eth0 port 53 untuk tengok DNS traffic. Lama-lama anda akan makin selesa.
sudo tcpdump -i eth0 port 53
Nak tahu betul-betul berapa laju rangkaian antara dua peranti? iperf3 jawapannya:
# Pada pelayan (penerima) iperf3 -s # Pada klien (penghantar) iperf3 -c 10.0.20.10 # Ujian dengan berbilang aliran iperf3 -c 10.0.20.10 -P 4 # Ujian UDP iperf3 -c 10.0.20.10 -u -b 1G # Contoh output: # [SUM] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec sender # [SUM] 0.00-10.00 sec 1.10 GBytes 940 Mbits/sec receiver
941 Mbits/sec kat Gigabit link? Itu dah almost perfect. Kalau anda dapat jauh kurang dari tu, mungkin ada bottleneck — kabel rosak, switch issue, atau NIC problem.
Anda dah sampai penghujung bab rangkaian lanjutan! Ini banyak content, tapi anda tak perlu master semua sekaligus. Kita dah bincangkan:
Rangkaian yang kukuh dan terurus adalah asas kepada homelab yang berjaya. Kalau bab ini rasa overwhelming, jangan risau. Bookmark bahagian yang anda belum perlukan dan fokus pada apa yang relevan sekarang. Dari pengalaman saya, networking skills ni akan develop secara natural bila anda guna homelab setiap hari. Sabar dan enjoy the process!