2.1 KiB
2.1 KiB
auto-macvlan
Skrip untuk dijalankan di dalam guest incus: mengaktifkan DHCP pada NIC tambahan (mis. macvlan) supaya guest langsung mendapat IP LAN (192.168.200.x).
Sisi host (menambah NIC macvlan ke instance) dianggap sudah diatur sendiri.
guest-dhcp.sh
Jalankan di dalam guest (Debian/Ubuntu/Alpine, dll):
# auto: semua NIC non-lo yang belum punya IPv4
./guest-dhcp.sh
# NIC tertentu
./guest-dhcp.sh eth1
# beberapa NIC
./guest-dhcp.sh eth1 eth2
Opsi:
| Opsi | Default | Keterangan |
|---|---|---|
--metric N |
50 |
RouteMetric DHCPv4. Lebih kecil dari NIC incusbr0 (100) agar NIC ini jadi default route. 0 = tidak di-set. |
-h, --help |
Bantuan |
Cara menjalankan
Di dalam guest:
curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/auto-macvlan/raw/branch/main/guest-dhcp.sh | bash
Dari host incus:
curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/auto-macvlan/raw/branch/main/guest-dhcp.sh -o /tmp/guest-dhcp.sh
incus file push /tmp/guest-dhcp.sh <instance>/root/guest-dhcp.sh
incus exec <instance> -- bash /root/guest-dhcp.sh
Yang dilakukan
- Mendeteksi NIC tanpa IPv4 (atau yang kamu sebutkan).
- Mengaktifkan DHCP sesuai pengelola jaringan yang tersedia:
NetworkManager (
nmcli), systemd-networkd (/etc/systemd/network/20-<if>.network), dhcpcd, dhclient, atau udhcpc. - Menulis
[DHCPv4] RouteMetric=50(networkd) agar NIC LAN menang atas incusbr0. - Menunggu dan mencetak IP tiap NIC.
Persisten: file .network tetap ada setelah reboot (untuk systemd-networkd).
Catatan
- Skrip ini hanya mengurus DHCP di guest. Menambah NIC ke network macvlan tetap di host:
incus config device add <instance> eth1 nic network=eth200 name=eth1 - Bila guest punya dua NIC (incusbr0 + macvlan), jadikan macvlan sebagai default
(metrik lebih rendah) agar balasan ke LAN tidak keluar lewat NIC yang salah.
--metric(default 50) sudah melakukan ini untuk systemd-networkd. - Host incus tidak bisa menjangkau guest lewat IP macvlan (batasan macvlan); dari host pakai
incus exec.
Lisensi
MIT — lihat LICENSE.