LXC IPv6 nur im Container auf Proxmox deaktivieren
Das Ziel ist:
- Hypervisor Proxmox mit IPv6 & somit von beliebigen Containern oder VMs nutzbar
- LXC Container mit komplett deaktiviertem IPv6
Im Netz finden sich dazu unterschiedliche Lösungen, welche nicht funktionieren bzw. ausreichend sind.
Typische nicht vollständige Lösung unter LXC auf Proxmox:
root@lxc:~$
echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.d/99-disable-ipv6.conf
root@lxc:~$
echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.d/99-disable-ipv6.conf
root@lxc:~$
echo "net.ipv6.conf.lo.disable_ipv6=1" >> /etc/sysctl.d/99-disable-ipv6.conf
root@lxc:~$
reboot
Proxmox konfiguriert die Container via generierter systemd-networkd Konfiguration. Diese Konfiguration wird mit jedem Neustart des Container neu von Proxmox geschrieben. Proxmox bietet laut Doku leider keine Möglichkeit den entsprechenden Parameter via Hostsystem zu setzen.
Daher folgende Lösung via crontab @reboot
root@lxc:~$
crontab -e
@reboot sleep 5 && echo "LinkLocalAddressing = ipv4" >> /etc/systemd/network/eth0.network && systemctl restart systemd-networkd
@reboot wird 5 Sekunden nach einem Neustart ausgeführt und fügt in die systemd network Konfiguration den Eintrag „LinkLocalAddressing = ipv4“ hinzu sowie startet den systemd-networkd neu. Default ist „ipv6“, möglicher Wert zur Deaktivierung von IPv6 wäre auch „no“
Dokumentation zu LinkLocalAdressing:
https://wiki.archlinux.org/index.php/IPv6#systemd-networkd_3
https://manpages.ubuntu.com/manpages/xenial/man5/systemd.network.5.html