I have had a home assistant installation running as a proxmox vm for years now. For all this time, I have been using statically configured IP of 192.168.0.60/24 configured from the hass web ui. This wasn’t a problem until first update of 2026.1.x I believe. After this update, on reboot the IP address wouldn’t be there and vm didn’t have network connectivity. Since then I tried many various things to troubleshoot this for weeks, including setting home assistant to dhcp and then making a dhcp reservation for it. My current HAOS status that the system boots into looks like this:
# ha net info
docker:
address: 172.30.32.0/23
dns: 172.30.32.3
gateway: 172.30.32.1
interface: hassio
host_internet: false
interfaces:
- connected: true
enabled: true
interface: enp6s18
ipv4:
address: []
gateway: null
method: auto
nameservers: []
ready: false
ipv6:
addr_gen_mode: default
address: []
gateway: null
ip6_privacy: default
method: auto
nameservers: []
ready: false
llmnr: announce
mac: BC:24:11:A1:6D:E8
mdns: announce
primary: false
type: ethernet
vlan: null
wifi: null
supervisor_internet: false
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:a1:6d:e8 brd ff:ff:ff:ff:ff:ff
inet6 fe80::347:b726:4a2c:d083/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 26:1e:b2:26:f1:72 brd ff:ff:ff:ff:ff:ff
inet 172.30.232.1/23 brd 172.30.233.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::241e:b2ff:fe26:f172/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
4: hassio: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 6a:87:56:21:3f:50 brd ff:ff:ff:ff:ff:ff
inet 172.30.32.1/23 brd 172.30.33.255 scope global hassio
valid_lft forever preferred_lft forever
inet6 fd0c:ac1e:2100::1/48 scope global nodad
valid_lft forever preferred_lft forever
inet6 fe80::6887:56ff:fe21:3f50/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
5: vethb25707c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 4a:36:c1:b4:d0:49 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::4836:c1ff:feb4:d049/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
6: veth6252234@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether ae:2e:2a:6e:fc:d9 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::ac2e:2aff:fe6e:fcd9/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
7: veth07a85b4@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 56:62:b9:86:c7:ce brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::5462:b9ff:fe86:c7ce/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
8: veth008965b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 92:ef:07:c8:51:05 brd ff:ff:ff:ff:ff:ff link-netnsid 2
inet6 fe80::90ef:7ff:fec8:5105/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
9: veth08f09a2@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 96:8b:49:16:57:06 brd ff:ff:ff:ff:ff:ff link-netnsid 3
inet6 fe80::948b:49ff:fe16:5706/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
10: vethb58ccba@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether ce:fc:18:e4:11:7a brd ff:ff:ff:ff:ff:ff link-netnsid 4
inet6 fe80::ccfc:18ff:fee4:117a/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
11: vethbfb0db7@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 0a:ce:68:90:ba:be brd ff:ff:ff:ff:ff:ff link-netnsid 5
inet6 fe80::8ce:68ff:fe90:babe/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
12: vethc16d473@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 56:ac:fd:18:fe:db brd ff:ff:ff:ff:ff:ff link-netnsid 6
inet6 fe80::54ac:fdff:fe18:fedb/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
13: ztyxau7zuq: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 56:d1:45:89:e2:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.194.2/24 brd 192.168.194.255 scope global ztyxau7zuq
valid_lft forever preferred_lft forever
inet6 fdb6:79f:73c6:d095:5699:9344:954f:9191/88 scope global
valid_lft forever preferred_lft forever
inet6 fe80::54d1:45ff:fe89:e20e/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
14: ztveku7j76: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 0e:c6:c9:be:b4:82 brd ff:ff:ff:ff:ff:ff
inet 10.121.15.2/24 brd 10.121.15.255 scope global ztveku7j76
valid_lft forever preferred_lft forever
inet6 fd8c:e413:25f1:5c82:f99:9344:954f:9191/88 scope global
valid_lft forever preferred_lft forever
inet6 fc7d:b891:2a44:954f:9191::1/40 scope global
valid_lft forever preferred_lft forever
inet6 fe80::cc6:c9ff:febe:b482/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
15: veth660ff8b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 8a:9b:16:bd:c0:ab brd ff:ff:ff:ff:ff:ff link-netnsid 7
inet6 fe80::889b:16ff:febd:c0ab/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
16: veth375b144@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether 6e:60:9c:1c:20:59 brd ff:ff:ff:ff:ff:ff link-netnsid 8
inet6 fe80::6c60:9cff:fe1c:2059/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
17: veth1e75983@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master hassio state UP group default
link/ether b6:a8:06:b4:8f:9f brd ff:ff:ff:ff:ff:ff link-netnsid 9
inet6 fe80::b4a8:6ff:feb4:8f9f/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Now, the logs of my router hint at the following:
client BC:24:11:A1:6D:E8 declines IP address 192.168.0.60
And as it turns out my HASS Install is very much willing to assign almost any other ip address to the interface. .61? sure. .59? also no problem. But for some insane reason I can’t figure out, it’s absolutely unwilling to assign the address .60 that it had for years without any problems.
Now this isn’t linux kernel issue. Because I can successfully assign correct ip address using ip addr add 192.168.0.60/24 dev enp6s18 and after adding correct default route manually as well, the connection works flawlessly. So there isn’t anything in the linux kernel that’s preventing the system to keep using that IP address. However both running dhcpclient manually or setting that IP manually via ha network update ... command or letting home asssistant configured to use dhcp and then letting the dhcp offer it the .60 address result in the interface not actually having any IP assigned:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:a1:6d:e8 brd ff:ff:ff:ff:ff:ff
inet6 fe80::347:b726:4a2c:d083/64 scope link noprefixroute
valid_lft forever preferred_lft forever
And I really want to figure this out. Also, while yes, I could technically just change the IP to like .61 and live with it, It would require some network reconfiguration that I’d like to avoid not to mention that this issue is just super strange. I actually think there might be some leftover / corrupted network configuration that’s casing this issue.
Logs such as supervisor log or dmesg also don’t show any errors so I’m not including them here as this post is already long.
Anyone up to the challenge to help me solve this networking mystery?