Menaklukkan jaringan modern NetBSD: autoconfiguration IPv6 dengan SLAAC, DHCPv6, tunneling 6to4/6in4, firewall IPv6 dengan npf, serta konsep routing lanjutan dengan bird dan OSPF.

Di episode 15 sebelumnya kita telah memperkuat sistem dari dalam dengan PaX dan pengaturan keamanan. Kini saatnya menatap masa depan jaringan: pada episode ini kita akan menaklukkan IPv6 dan advanced networking di NetBSD — autoconfiguration dengan SLAAC, DHCPv6, tunneling 6to4/6in4, firewall IPv6 dengan npf, serta konsep routing lanjutan seperti OSPF lewat bird.
Kebanyakan kernel NetBSD sudah mendukung IPv6 sejak lama. Cek dengan:
ifconfig wm0wm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 52:54:00:12:34:56
inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::5054:ff:fe12:3456%wm0 prefixlen 64 scopeid 0x1SLAAC (Stateless Address Autoconfiguration) adalah cara IPv6 memberi diri alamat tanpa server — berdasarkan prefix yang diumumkan router (lewat Router Advertisement). Cek prefix yang diterima:
ifconfig wm0wm0: flags=...
inet6 2001:db8:1::50 prefixlen 64 scopeid 0x1dhcpcd -6 wm0dhcpcd=YESSLAAC memberikan alamat, tetapi tidak memberikan semua parameter. DHCPv6 melengkapi: DNS server, domain, dan opsi lain. NetBSD menyediakan klien DHCPv6 lewat package:
cd /usr/pkgsrc/net/dhcpcd
make install cleandhcpcd=YES
dhcpcd_flags="-6"6to4 memakai prefix 2002::/16 yang diturunkan dari alamat IPv4 publik. Aktifkan sebagai interface gif:
ifconfig gif0 create
ifconfig gif0 tunnel 192.168.1.50 192.88.99.1
ifconfig gif0 inet6 2002:c0a8:0132::16in4 adalah tunnel manual ke broker IPv6 (misalnya tunnelbroker). Kalian mendapat endpoint IPv6, alamat IPv4 remote, dan prefix dari broker. Konfigurasi:
ifconfig gif0 create
ifconfig gif0 tunnel 192.168.1.50 216.66.80.30
ifconfig gif0 inet6 2001:470:1f01:abc::2
route -n add -inet6 default 2001:470:1f01:abc::1ifconfig_gif0="tunnel 192.168.1.50 216.66.80.30"
ifconfig_gif0_ipv6="inet6 2001:470:1f01:abc::2"
defaultroute6="2001:470:1f01:abc::1"Info
6in4 lebih dapat diandalkan daripada 6to4 karena alamat IPv6 diberikan eksplisit oleh broker, bukan diturunkan otomatis. Untuk production, gunakan 6in4 dengan broker terpercaya.
Firewall yang tidak mengatur IPv6 hanya melindungi setengah jalan. npf menangani IPv4 dan IPv6 dalam satu ruleset. Kembali ke npf.conf dari episode 12, tambahkan aturan untuk IPv6:
$if = "wm0"
$ext_ip6 = 2001:db8:1::50
set default: in block all
set default: out block all
group default {
pass on lo0 all
pass out on $if inet6 proto { tcp, udp, icmp6 } \
from $ext_ip6 to any
pass in on $if inet6 proto icmp6 all \
keep state
pass in on $if inet6 proto tcp from any to $ext_ip6 port 22 \
flags S/SA keep state
}Perhatikan aturan ICMPv6 (proto icmp6) — ini wajib untuk IPv6 karena protokol ini memakai ICMPv6 untuk hal penting: neighbor discovery, path MTU discovery, dan router advertisement. Menghapus ICMPv6 akan mematahkan IPv6.
npfctl reloadUntuk jaringan yang lebih kompleks, NetBSD bisa bertindak sebagai router dinamis dengan bird — daemon routing yang mendukung OSPF, BGP, dan RIP. Install dari pkgsrc:
cd /usr/pkgsrc/net/bird
make install cleanKonfigurasi OSPF sederhana di /usr/pkg/etc/bird.conf:
router id 192.168.1.50;
protocol kernel {
learn;
export all;
}
protocol device {
scan time 10;
}
protocol ospf {
export all;
area 0 {
interface "wm0" {
cost 10;
};
};
}Jalankan bird dan pantau neighbornya:
service bird start
birdc show ospf neighborBIRD 2.14 ready.
BIRD 2.14 connected.
Name Proto Address State
router2 OSPF 10.0.0.2 Full/DRNAT64 menerjemahkan antara jaringan IPv6 dan IPv4 — memungkinkan host IPv6-only berbicara dengan server IPv4. NetBSD menyediakan dukungan melalui mekanisme transisi; ini adalah topik lanjutan yang cocok untuk lingkungan yang merencanakan IPv6-only.
| Langkah | Perintah |
|---|---|
| Interface IPv6 | ifconfig -a |
| Neighbor discovery | ndp -a |
| Routing IPv6 | route show -inet6 |
| Ping IPv6 | ping6 -c 3 netbsd.org |
ping6 -c 3 netbsd.orgPING netbsd.org (2607:f0d0:...): 56 data bytes
64 bytes from ...: icmp_seq=0 time=3.24 msPada episode 16 ini, kalian telah menaklukkan jaringan modern NetBSD: autoconfiguration IPv6 dengan SLAAC, DHCPv6, tunneling 6to4 dan 6in4, firewall IPv6 dengan npf, serta routing lanjutan dengan bird dan OSPF.
Inti yang harus dibawa pulang:
fe80::); SLAAC memberi alamat global tanpa server.2002::, 6in4 memakai broker manual — untuk production gunakan 6in4.Di episode 17 selanjutnya kita akan mengeksplorasi keunikan paling NetBSD: rump kernels dan kernel-in-userspace — menjalankan kernel dan driver sebagai proses biasa dengan rump_server, mem-boot filesystem di userspace, dan memanfaatkannya untuk testing tanpa reboot. Sampai jumpa di episode 17!