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.

S
Description
auto macvlan for ct incus auto dhcp
Readme MIT
32 KiB
0 Stars 1 Watchers 0 Forks
Languages
Shell 100%