2.7 KiB
auto-macvlan
Skrip untuk memasang NIC macvlan ke instance Incus dan mengaktifkan DHCP di guest, sehingga instance langsung mendapat IP di LAN (mis. 192.168.200.x) — bukan IP NAT internal incus.
Cocok untuk instance yang perlu diakses langsung dari LAN (web, SSH, service yang di-publish podman/docker di dalamnya).
Pemakaian
./incus-macvlan.sh <instance> [device] [network]
Contoh:
# pakai default: device eth1, network eth200
./incus-macvlan.sh web1
# tentukan device & network
./incus-macvlan.sh web1 eth1 eth200
# buat network macvlan bila belum ada
./incus-macvlan.sh web1 --create --parent enp2s0
Opsi
| Opsi | Default | Keterangan |
|---|---|---|
--parent <iface> |
dari default route host | Interface fisik host untuk parent macvlan |
--network <name> |
eth200 |
Nama network macvlan di incus |
--device <name> |
eth1 |
Nama NIC di dalam guest |
--create |
mati | Buat network macvlan kalau belum ada |
-h, --help |
Bantuan |
Argumen posisional: $1 instance, $2 device, $3 network. Opsi mengalahkan posisional.
Yang dilakukan
- Cek instance ada dan berjalan (start bila perlu).
- Pastikan network macvlan ada (buat dengan
--createbila perlu). - Pasang NIC
nic network=<network> name=<device>ke instance (hotplug). - Aktifkan DHCP di guest:
- NetworkManager →
nmcli - systemd-networkd →
/etc/systemd/network/20-<device>.network - fallback:
dhcpcd/dhclient/udhcpc
- NetworkManager →
- Tunggu dan tampilkan IP LAN.
Idempotent — aman dijalankan ulang.
Persiapan network macvlan (sekali)
incus network create eth200 --type=macvlan parent=enp2s0
Atau biarkan skrip membuatnya dengan --create.
Syarat
- Host Incus punya NIC fisik yang terhubung ke LAN (parent, mis.
enp2s0). - DHCP server di LAN aktif (IP instance berasal dari router LAN, bukan incus).
- Guest punya salah satu DHCP client di atas.
Catatan penting
-
Host Incus tidak bisa menghubungi instance lewat IP LAN macvlan (batasan macvlan). Dari host, kelola lewat
incus exec; instance tetap bisa diakses dari perangkat LAN lain. -
Bila instance punya dua NIC (incusbr0 + macvlan) dan default route dari incusbr0 menang, balasan ke LAN bisa keluar lewat NIC yang salah. Solusi: jadikan macvlan default dengan metrik lebih rendah, mis.:
# /etc/systemd/network/20-eth1.network [Match] Name=eth1 [Network] DHCP=yes [DHCPv4] RouteMetric=50atau nonaktifkan NIC incusbr0 bila tidak diperlukan.
-
IP yang didapat dinamis dari LAN. Kalau butuh statis, atur DHCP reservation di router atau konfigurasi statis di guest.
Lisensi
MIT — lihat LICENSE.