Nik Afiq 7eb7072ec5
Some checks failed
validate / lint (push) Failing after 1s
feat: add vlan50-parent role for nik-debian's tagged VLAN 50 interface
Creates enp1s0.50 on nik-debian (no L3 address, VLAN 40/node IP/default
route untouched) for Multus to later attach macvlan/ipvlan workloads to.

Verified live: enp1s0.50 is up with no IPv4 address (only the automatic
IPv6 link-local, which is expected and harmless), default route
unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 17:56:59 +09:00

1.7 KiB

vlan50-parent

Creates enp1s0.50, a tagged VLAN 50 parent interface on nik-debian, for Multus macvlan/ipvlan attachments (Phase 3/4 of ~/repo/homelab/plan.md). Leaves the existing untagged VLAN 40 config (enp1s0's own address, default route, k3s node identity, host DNS) untouched.

Before running

  • Requires the managed-switch port for nik-debian already carrying VLAN 50 tagged in addition to its existing VLAN 40 untagged/PVID 40 — this is the home-network-repo-owned switch/Flint handoff from plan.md Phase 1. This role has no way to verify that from the host side; if the switch isn't actually passing tagged VLAN 50 frames yet, the subinterface will come up with link state but no VLAN 50 traffic will ever arrive.
  • Confirm console/recovery access to nik-debian (physical/IPMI/other out-of-band) before applying, same as any host networking change.

What it does

  • Installs the vlan package and loads/persists the 8021q kernel module.
  • Writes /etc/network/interfaces.d/enp1s0.50iface ... inet manual with vlan-raw-device enp1s0 and vlan-id 50. No IP address is ever assigned to it.
  • Brings the interface up now (ifup) if not already present, and asserts afterward that it's UP, carries no IPv4/IPv6 address, and that the host's own default route is still via enp1s0 — never via enp1s0.50.

Rollback

sudo ifdown enp1s0.50 || true
sudo ip link delete enp1s0.50 2>/dev/null || true
sudo rm -f /etc/network/interfaces.d/enp1s0.50
sudo rm -f /etc/modules-load.d/8021q.conf

Leaves the vlan package and 8021q module load itself in place (harmless if unused); remove manually only if desired.