Impossible to set ipv6.address to none on instance nic

Hello, I was checking out the docs here Type: nic - Incus documentation and it seemed I could disable ipv6 for incus instances. I tried like this

  eth0:
    ipv4.address: 10.0.2.4
    ipv6.address: none
    network: dns
    security.ipv4_filtering: "true"
    security.ipv6_filtering: "true"
    security.mac_filtering: "true"
    security.port_isolation: "true"
    type: nic

And when I try to start the instance

bmc@cube:~$ incus start dns-vpn
Error: Failed to start device "eth0": Error parsing IP address "[none]"
Try `incus info --show-log dns-vpn` for more info

I already tried “none“, none, “\none\”, both manually on the server itself using the incus CLI and through the terraform provider. Nothing works and I get the exact same error, if I try to remove the attribute completely it works when saving, but when I try to start the instance the same error shows

bmc@cube:~$ incus start dns-vpn
Error: Failed to start device "eth0": Error parsing IP address "[none]"
Try `incus info --show-log dns-vpn` for more info
bmc@cube:~$ 

I also tried setting a random private ipv6 address to then remove the attribute, but same error

I’m using incus version 6.22

Does anybody know what am I doing wrong? Now I’m terribly blocked because I can’t even remove the ipv6.address attribute on my instances

Here I set some random ipv6 address just to be able to start the machine

 eth0:
    ipv4.address: 10.0.2.4
    ipv6.address: fd3d:fa72:bc13:89fa:ad24:115b:cc71:4321
    network: dns
    security.ipv4_filtering: "true"
    security.ipv6_filtering: "true"
    security.mac_filtering: "true"
    security.port_isolation: "true"

It starts fine, but then when I try to remove the attribute, same error

bmc@cube:~$ incus config edit dns-vpn
Config parsing error: Failed to update device "eth0": Error parsing IP address "[none]"
Press enter to open the editor again or ctrl+c to abort change

none is only a valid value for OCI containers that use static IP addressing.

For system containers, you should configure the network management tool inside the container to apply the desired IP configuration.

Interesting :face_with_monocle: So far I just set random ipv6 addresses to my instances to be able to start them and disabled them on the network itself… But. Is there any way to remove the attribute once it is set?

stgraber@vorash-d13:~$ incus list c1
+------+---------+------+------+-----------+-----------+
| NAME |  STATE  | IPV4 | IPV6 |   TYPE    | SNAPSHOTS |
+------+---------+------+------+-----------+-----------+
| c1   | STOPPED |      |      | CONTAINER | 0         |
+------+---------+------+------+-----------+-----------+
stgraber@vorash-d13:~$ incus config show c1
architecture: aarch64
config:
  image.architecture: arm64
  image.description: Debian trixie arm64 (20260719_05:24)
  image.os: Debian
  image.release: trixie
  image.serial: '20260719_05:24'
  image.type: squashfs
  image.variant: default
  volatile.apply_template: create
  volatile.base_image: b7e1c993c48888c374170683efa167647aa8ee9f346aee77f778dccb77f94027
  volatile.cloud-init.instance-id: 2f8f8f38-22f7-4030-881c-7bdd30d3f6ac
  volatile.eth0.host_name: vethf12c3cd0
  volatile.eth0.hwaddr: 10:66:6a:2d:71:01
  volatile.eth0.name: eth0
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.uuid: dd748506-3f38-4b9c-af26-cbcc3d890a60
  volatile.uuid.generation: dd748506-3f38-4b9c-af26-cbcc3d890a60
devices:
  eth0:
    ipv4.address: 10.80.1.4
    ipv6.address: fd42:8b9f:58e4:b6ac:ad24:115b:cc71:4321
    network: incusbr0
    security.ipv4_filtering: "true"
    security.ipv6_filtering: "true"
    security.mac_filtering: "true"
    security.port_isolation: "true"
    type: nic
ephemeral: false
profiles:
  - default
stateful: false
description: ""
stgraber@vorash-d13:~$ incus network show incusbr0
config:
  ipv4.address: 10.80.1.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:8b9f:58e4:b6ac::1/64
  ipv6.nat: "true"
description: ""
name: incusbr0
type: bridge
used_by:
  - /1.0/instances/c1
  - /1.0/instances/incus-os
  - /1.0/instances/my-nginx
  - /1.0/instances/v1
  - /1.0/profiles/default
managed: true
status: Created
locations:
  - none
project: default

stgraber@vorash-d13:~$ incus start c1
stgraber@vorash-d13:~$ incus list c1
+------+---------+------------------+------------------------------------------------+-----------+-----------+
| NAME |  STATE  |       IPV4       |                      IPV6                      |   TYPE    | SNAPSHOTS |
+------+---------+------------------+------------------------------------------------+-----------+-----------+
| c1   | RUNNING | 10.80.1.4 (eth0) | fd42:8b9f:58e4:b6ac:1266:6aff:fe2d:7101 (eth0) | CONTAINER | 0         |
+------+---------+------------------+------------------------------------------------+-----------+-----------+

stgraber@vorash-d13:~$ incus stop c1
stgraber@vorash-d13:~$ incus config device set c1 eth0 ipv6.address=
stgraber@vorash-d13:~$ incus config show c1
architecture: aarch64
config:
  image.architecture: arm64
  image.description: Debian trixie arm64 (20260719_05:24)
  image.os: Debian
  image.release: trixie
  image.serial: '20260719_05:24'
  image.type: squashfs
  image.variant: default
  volatile.base_image: b7e1c993c48888c374170683efa167647aa8ee9f346aee77f778dccb77f94027
  volatile.cloud-init.instance-id: 2f8f8f38-22f7-4030-881c-7bdd30d3f6ac
  volatile.eth0.hwaddr: 10:66:6a:2d:71:01
  volatile.eth0.name: eth0
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: STOPPED
  volatile.last_state.ready: "false"
  volatile.uuid: dd748506-3f38-4b9c-af26-cbcc3d890a60
  volatile.uuid.generation: dd748506-3f38-4b9c-af26-cbcc3d890a60
devices:
  eth0:
    ipv4.address: 10.80.1.4
    network: incusbr0
    security.ipv4_filtering: "true"
    security.ipv6_filtering: "true"
    security.mac_filtering: "true"
    security.port_isolation: "true"
    type: nic
ephemeral: false
profiles:
  - default
stateful: false
description: ""

stgraber@vorash-d13:~$ incus start c1
stgraber@vorash-d13:~$ 

Oh, you’re on Incus 6.22, that’s not a supported version, you’ll want to update to either 7.0.1 or 7.2 for a supported version. We’ve done a bunch of changes to some of that NIC validation stuff because of OCI containers, so there’s a decent chance that things have changed.

1 Like

I upgraded to version 7.2 and all my homelab died :smiley:

The problem was related to this issue Incus 7.0 Cgroup controller is missing - #8 by stgraber

After removing the swap stuff from my instances configuration, they could start but they couldn’t route anywhere and it was because I had set those random ipv6 addresses

Now setting the ipv6 to none works for the instance

  eth0:
    ipv4.address: 10.0.2.2
    ipv6.address: none
    network: dns
    security.ipv4_filtering: "true"
    security.ipv6_filtering: "true"
    security.mac_filtering: "true"
    security.port_isolation: "true"
    type: nic

On the opentofu side it looks like this

  device {
    name = "eth0"
    type = "nic"
    properties = {
      network                   = var.management_net.name
      "ipv4.address"            = "10.0.1.11"
      "ipv6.address"            = "none"
      "security.ipv4_filtering" = true
      "security.ipv6_filtering" = true
      "security.mac_filtering"  = true
    }
  }

Now there are no ipv6 assigned as expected

bmc@cube:~$ incus ls
+---------------+---------+------------------------+------+-----------+-----------+
|     NAME      |  STATE  |          IPV4          | IPV6 |   TYPE    | SNAPSHOTS |
+---------------+---------+------------------------+------+-----------+-----------+
| automation    | RUNNING | 10.0.1.11 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| bastion       | RUNNING | 10.0.203.11 (wg_admin) |      | CONTAINER | 0         |
|               |         | 10.0.1.10 (eth0)       |      |           |           |
+---------------+---------+------------------------+------+-----------+-----------+
| code          | RUNNING | 10.0.0.15 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| dns-home      | RUNNING | 10.0.2.2 (eth0)        |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| dns-homelab   | RUNNING | 10.0.2.5 (eth0)        |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| dns-vpn       | RUNNING | 10.0.2.4 (eth0)        |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| monitoring    | RUNNING | 10.88.0.1 (podman0)    |      | CONTAINER | 0         |
|               |         | 10.0.7.10 (eth0)       |      |           |           |
+---------------+---------+------------------------+------+-----------+-----------+
| registry      | RUNNING | 10.0.0.14 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| reverse-proxy | RUNNING | 10.0.5.10 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| streaming     | RUNNING | 10.0.0.13 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| torrent       | RUNNING | 10.0.4.10 (eth0)       |      | CONTAINER | 0         |
+---------------+---------+------------------------+------+-----------+-----------+
| vpn-gateway   | RUNNING | 10.0.7.20 (eth4)       |      | CONTAINER | 0         |
|               |         | 10.0.6.20 (eth0)       |      |           |           |
|               |         | 10.0.5.20 (eth2)       |      |           |           |
|               |         | 10.0.202.11 (wg_mgmt)  |      |           |           |
|               |         | 10.0.201.11 (wg_mon)   |      |           |           |
|               |         | 10.0.200.11 (wg_proxy) |      |           |           |
|               |         | 10.0.1.20 (eth3)       |      |           |           |
|               |         | 10.0.0.20 (eth1)       |      |           |           |
+---------------+---------+------------------------+------+-----------+-----------+

Thank you :slight_smile: