I'm using Proxmox for my private home server system behind a dynamic DSL network connectivity. So IPv4 is NATed and the IPv6 prefix is changing once a day.
As it turned out, with the default Proxmox install and Debians default ifupdown2 system this is very unstable. Host and VMs sporadically lose internet connectivity. This is a headless system without any monitor connected to it and I do not even own a monitor for this old low-power business system business-system without HDMI, only display port. I do only own one DP-monitor which is for my desktop system and I have to move it to the basement, where the headless server is, every time the network is broken; therefore a stable network connectivity is mandatory. I tried several options within
The solution was to switch to Systemd's networkctl. I did this on the operating system level outside of Proxmox' configuration tree. I removed
This works really stable. Dynamic IPv6 connectivity simply works this way.
The drawback is: I have to configure the vmbr0 interface manually to VMs and CTs, as Proxmox itself is unaware of its network connectivity. The network configuration in the GUI is broken and I cannot add interface vmbr0 to any VM/CT within the GUI. If I create a new VM or CT I always have to create it without a network interface and afterwards I have to manually edit the configuration files below
This is generally fine for me, with a low count of VMs/CTs which change seldomly. Yet if there is a simple way to inlcude the hosts network to proxmox's network awareness, then I'd still prefer to do so.
###
Does anyone know of a better solution to this problem? Is there some simple way to let proxmox know of systemd/networkctl host managed network interfaces?
###
networkctl output:
Systemd network configuration (including a fix for the e1000e loosing its link, this is a known bug with this old Intel devices):
As it turned out, with the default Proxmox install and Debians default ifupdown2 system this is very unstable. Host and VMs sporadically lose internet connectivity. This is a headless system without any monitor connected to it and I do not even own a monitor for this old low-power business system business-system without HDMI, only display port. I do only own one DP-monitor which is for my desktop system and I have to move it to the basement, where the headless server is, every time the network is broken; therefore a stable network connectivity is mandatory. I tried several options within
/etc/network/interfaces and nothing worked fully reliable.The solution was to switch to Systemd's networkctl. I did this on the operating system level outside of Proxmox' configuration tree. I removed
eno1 and vmbr0 from /etc/network/interfaces and added it to service files within /etc/systemd/network/. (the content of the files is shown below).This works really stable. Dynamic IPv6 connectivity simply works this way.
The drawback is: I have to configure the vmbr0 interface manually to VMs and CTs, as Proxmox itself is unaware of its network connectivity. The network configuration in the GUI is broken and I cannot add interface vmbr0 to any VM/CT within the GUI. If I create a new VM or CT I always have to create it without a network interface and afterwards I have to manually edit the configuration files below
/etc/pve.This is generally fine for me, with a low count of VMs/CTs which change seldomly. Yet if there is a simple way to inlcude the hosts network to proxmox's network awareness, then I'd still prefer to do so.
###
Does anyone know of a better solution to this problem? Is there some simple way to let proxmox know of systemd/networkctl host managed network interfaces?
###
networkctl output:
Code:
# networkctl | head -n4
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 eno1 ether enslaved configured
3 vmbr0 bridge routable configured
Systemd network configuration (including a fix for the e1000e loosing its link, this is a known bug with this old Intel devices):
Code:
# for i in /etc/systemd/network/*; do echo "$i"; cat "$i"; done
/etc/systemd/network/20-eno1.link
[Match]
OriginalName=eno1
[Link]
TCPSegmentationOffload=false
GenericSegmentationOffload=false
GenericReceiveOffload=false
#LargeReceiveOffload=false
/etc/systemd/network/25-vmbr0-en.network
[Match]
Name=eno1
[Network]
Bridge=vmbr0
/etc/systemd/network/25-vmbr0.link
[Match]
OriginalName=vmbr0
[Link]
MACAddressPolicy=none
/etc/systemd/network/25-vmbr0.netdev
[NetDev]
Name=vmbr0
Kind=bridge
MACAddress=none
/etc/systemd/network/25-vmbr0.network
[Match]
Name=vmbr0
[Network]
DHCP=yes
[DHCPv4]
UseDomains=true
[DHCPv6]
UseDomains=true
[IPv6AcceptRA]
UseDomains=true
Last edited: