Kalau perkakasan adalah badan homelab, rangkaian adalah sistem saraf dia. Tanpa rangkaian yang kemas, semua service tak boleh bercakap antara satu sama lain, troubleshooting jadi memenatkan, dan akses dari laptop atau telefon pun jadi mengelirukan.
Jangan risau — kita akan bina rangkaian ni step by step, dari asas yang paling penting dahulu. Tak perlu jadi network engineer untuk faham bab ni.
Apa yang anda akan belajar:
Nota Beginner: Untuk homelab pertama, rangkaian yang mudah difahami lebih bernilai daripada rangkaian yang terlalu canggih tapi sukar di-debug. Simple is beautiful.
VPN
Reverse Proxy
Bayangkan rangkaian homelab anda macam sistem jalan raya. Router adalah persimpangan utama, switch adalah jalan yang bercabang, dan setiap server/peranti adalah destinasi. Kalau jalan tersusun, trafik lancar. Kalau jalan berserabut, semua orang sesat.
Anda tak perlu menghafal kesemua 7 lapisan OSI — itu kerja untuk exam je. Tapi faham lapisan utama yang berkaitan dengan homelab memang sangat membantu:
Nota Beginner: Tak perlu hafal semua ni. Yang paling anda akan guna hari-hari ialah Layer 3 (IP address) dan Layer 7 (apps macam web server, DNS). Yang lain akan jadi lebih jelas bila anda mula hands-on nanti.
Alamat IP ni macam alamat rumah — setiap peranti perlukan alamat unik supaya data tahu nak pergi mana.
Alamat IP Peribadi (Private):
Kelas A: 10.0.0.0 - 10.255.255.255 (/8) Kelas B: 172.16.0.0 - 172.31.255.255 (/12) Kelas C: 192.168.0.0 - 192.168.255.255 (/16)
Subnet Mask biasa:
/24 = 255.255.255.0 = 254 hos (paling biasa) /16 = 255.255.0.0 = 65,534 hos /8 = 255.0.0.0 = 16,777,214 hos
Untuk homelab, /24 biasanya sudah lebih dari cukup untuk setiap VLAN. Anda dapat 254 alamat — tu dah banyak!
/24
Amalan terbaik: - Pelayan dan perkhidmatan penting = IP Statik (supaya alamat tak berubah-ubah) - Peranti pengguna biasa (telefon, laptop) = DHCP (biar automatik) - Tetapkan julat DHCP supaya tidak bertindih dengan IP statik
Contoh skim IP: Julat statik: 10.0.0.1 - 10.0.0.99 Julat DHCP: 10.0.0.100 - 10.0.0.254
Dari pengalaman saya, skim macam ni memang mudah nak urus. Server penting duduk kat bawah (1-99), peranti biasa duduk kat atas (100-254). Kemas dan jelas.
Router/firewall adalah penjaga pintu homelab anda. Dia tentukan siapa boleh masuk, siapa kena sekat. Jom tengok pilihan yang ada.
pfSense adalah firewall sumber terbuka yang paling popular untuk homelab. Komuniti dia besar, documentation banyak, dan kalau anda stuck — confirm ada orang pernah solve masalah yang sama.
Keperluan Minimum: - CPU: 64-bit, 600MHz+ - RAM: 1GB (2GB+ disyorkan) - Storan: 8GB SSD - NIC: Minimum 2 (WAN + LAN)
Langkah Pemasangan:
Konfigurasi Asas pfSense:
WAN Interface: igb0 (disambung ke modem ISP) - Jenis: DHCP (atau PPPoE mengikut ISP) LAN Interface: igb1 (disambung ke suis rangkaian) - IP: 10.0.0.1/24 - DHCP Server: Aktif - Julat DHCP: 10.0.0.100 - 10.0.0.254
OPNsense adalah alternatif kepada pfSense dengan antara muka yang lebih moden dan kemas:
Nota Beginner: Saya cadangkan pilih satu je antara pfSense atau OPNsense. Kedua-duanya bagus. Kalau anda suka UI yang moden, pilih OPNsense. Kalau anda nak komuniti yang lebih besar dan documentation lebih banyak, pilih pfSense.
Firewall rules ni macam peraturan rumah — siapa boleh pergi mana:
# Benarkan LAN ke Internet Sumber: LAN net → Destinasi: Mana-mana → Tindakan: Benarkan # Benarkan LAN ke pelayan Sumber: LAN net → Destinasi: 10.0.20.0/24 → Tindakan: Benarkan # Sekat IoT ke LAN (kecuali yang perlu) Sumber: IoT net → Destinasi: LAN net → Tindakan: Sekat # Benarkan IoT ke Internet Sumber: IoT net → Destinasi: Mana-mana → Tindakan: Benarkan
Logiknya mudah — peranti IoT (smart bulb, kamera) boleh access internet, tapi tak boleh “nampak” komputer dan server anda. Selamat!
VLAN (Virtual Local Area Network) ni macam bilik berasingan dalam satu rumah. Walaupun semua guna satu switch fizikal yang sama, setiap VLAN adalah rangkaian logik yang berasingan.
Kenapa penting? - Keselamatan — Mengasingkan peranti IoT daripada pelayan. Smart TV tak perlu “nampak” NAS anda. - Prestasi — Mengurangkan trafik siaran (broadcast). Kurang noise, lebih smooth. - Organisasi — Mengelompokkan peranti mengikut fungsi. Kemas!
Pada pfSense/OPNsense:
igb1
20
Pelayan
Pada Suis Terurus (contoh: TP-Link):
Port 1-4: VLAN 1 (LAN biasa) - Untagged Port 5-6: VLAN 20 (Pelayan) - Untagged Port 7: VLAN 30 (IoT) - Untagged Port 8: Trunk (ke router) - Tagged: 1, 20, 30
Nota Beginner: VLAN memang nampak complicated pada awalnya. Tapi sebenarnya konsep dia simple — anda cuma “label” setiap port switch dengan nombor VLAN. Peranti pada VLAN yang sama boleh nampak sesama sendiri, peranti pada VLAN berbeza tak boleh (kecuali router benarkan). Itu sahaja!
Pi-hole ni macam pembantu rumah yang rajin — dia bukan sahaja sekat iklan (bye bye YouTube ads!), tapi juga jadi pelayan DNS tempatan yang power.
Dengan Pi-hole, anda boleh type nas.lab.local dalam browser instead of 10.0.0.10. Lebih senang nak ingat, kan?
nas.lab.local
10.0.0.10
Pemasangan Pi-hole dengan Docker:
# docker-compose.yml version: "3" services: pihole: container_name: pihole image: pihole/pihole:latest ports: - "53:53/tcp" - "53:53/udp" - "8081:80/tcp" environment: TZ: 'Asia/Kuala_Lumpur' WEBPASSWORD: 'kata_laluan_selamat' volumes: - './etc-pihole:/etc/pihole' - './etc-dnsmasq.d:/etc/dnsmasq.d' restart: unless-stopped
Konfigurasi DNS Tempatan:
Tambah rekod DNS tempatan di Pi-hole supaya anda boleh guna nama instead of IP:
# Di Pi-hole → Local DNS → DNS Records proxmox.lab.local 10.0.20.10 nas.lab.local 10.0.0.10 nextcloud.lab.local 10.0.20.20 grafana.lab.local 10.0.20.21 gitea.lab.local 10.0.20.22 homeassist.lab.local 10.0.20.23
Sekarang anda boleh buka browser dan taip grafana.lab.local — tak perlu ingat IP lagi!
grafana.lab.local
Nak level up keselamatan DNS anda? Konfigurasi Pi-hole untuk guna DNS yang disulitkan (encrypted):
Pemasangan Unbound:
# Tambah ke docker-compose.yml unbound: container_name: unbound image: mvance/unbound:latest ports: - "5335:53/tcp" - "5335:53/udp" volumes: - './unbound:/opt/unbound/etc/unbound' restart: unless-stopped
Kemudian, tetapkan Pi-hole untuk menggunakan Unbound sebagai upstream DNS: 127.0.0.1#5335
127.0.0.1#5335
Nota Beginner: DNS yang encrypted ni optional tapi bagus untuk privacy. Kalau anda baru mula, setup Pi-hole basic dulu — dah cukup power. Boleh tambah Unbound nanti bila dah selesa.
Bayangkan anda kat kedai mamak, tiba-tiba nak check Grafana dashboard kat rumah. Tanpa VPN, tak boleh. Dengan VPN, telefon anda macam “duduk” dalam rangkaian rumah walaupun anda kat luar.
WireGuard adalah protokol VPN moden yang pantas, ringkas, dan selamat. Saya cadangkan WireGuard berbanding OpenVPN kerana ia jauh lebih mudah nak setup dan prestasi pun lebih baik.
Pemasangan WireGuard dengan Docker:
# docker-compose.yml services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Asia/Kuala_Lumpur - SERVERURL=vpn.domain-anda.com - SERVERPORT=51820 - PEERS=telefon,laptop,tablet - PEERDNS=10.0.0.2 - INTERNAL_SUBNET=10.13.13.0 volumes: - ./wireguard-config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped
Konfigurasi Port Forwarding:
Pada router anda, buat Port Forward untuk port UDP 51820 ke pelayan WireGuard:
Protokol: UDP Port Luaran: 51820 IP Destinasi: 10.0.20.20 (pelayan WireGuard) Port Dalaman: 51820
Setup client pun senang je:
Nota Beginner: WireGuard ni serius senang. Kalau anda boleh scan QR code, anda boleh setup VPN. Docker container tu dah generate semua config untuk anda.
Tanpa reverse proxy, anda kena ingat port setiap service — Grafana port 3000, Nextcloud port 8080, Gitea port 3001… pening kepala! Dengan reverse proxy:
nextcloud.lab.local
Ini reverse proxy paling senang nak setup — ada GUI, tak perlu edit config file manual.
Pemasangan:
# docker-compose.yml services: nginx-proxy-manager: image: 'jc21/nginx-proxy-manager:latest' container_name: nginx-proxy-manager ports: - '80:80' - '443:443' - '81:81' # Panel admin volumes: - ./npm-data:/data - ./npm-letsencrypt:/etc/letsencrypt restart: unless-stopped
Konfigurasi Proxy Host:
admin@example.com
changeme
10.0.20.20
8080
Selesai! Sekarang bila anda buka https://nextcloud.lab.local, Nginx Proxy Manager akan arahkan ke server yang betul secara automatik.
https://nextcloud.lab.local
Sebelum guna tool fancy, master dulu tool asas ni:
ping 10.0.0.1
Uptime Kuma adalah alat pemantauan yang ringan dan cantik. Dia akan ping semua service anda dan alert kalau ada yang down.
services: uptime-kuma: image: louislam/uptime-kuma:latest container_name: uptime-kuma volumes: - ./uptime-kuma-data:/app/data ports: - 3001:3001 restart: unless-stopped
Dari pengalaman saya, Uptime Kuma ni salah satu tool pertama yang patut anda deploy. Bila ada service down tengah malam, anda akan tahu — bukan esok pagi baru perasan.
Tahniah, anda dah habis bab rangkaian! Bab yang paling penting, kalau nak jujur. Kita dah bincangkan:
Rangkaian yang kukuh adalah asas untuk semua yang kita akan bina seterusnya. Kalau ada benda yang tak faham, jangan risau — baca semula dan cuba hands-on. Networking ni memang kena practice baru click. Ambil masa anda!
Seterusnya, kita akan tengok sistem pengendalian yang sesuai untuk homelab. Jom!