# 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): ```bash # 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:** ```bash curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/auto-macvlan/raw/branch/main/guest-dhcp.sh | bash ``` **Dari host incus:** ```bash 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 /root/guest-dhcp.sh incus exec -- 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-.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: ```bash incus config device add 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](LICENSE).