opnsense / core

OPNsense GUI, API and systems backend
https://opnsense.org/
BSD 2-Clause "Simplified" License
3.36k stars 753 forks source link

Static IPv6 not working has expected. #8041

Closed rudiservo closed 4 days ago

rudiservo commented 1 week ago

Important notices

Before you add a new report, we ask you kindly to acknowledge the following:

Describe the bug

Adding a static IPv6 to the Lan does not seem to work has expectedwork, no errors on log, shows in the overview and netstat, but not on the dashboard. Also setting a new ipv6 does not clear previous ipv6 on overview and netstat.

add from any fe80::/10 a /64 static address. i.e. fe88::1/64

Expected behavior

Static IPv6 address should show in overview and DHCPv6 should be able to view that ip-

Describe alternatives you considered

adding all the zeros to the IPv6 in the event it was a bug on checking ::, i.e. fe88:0:0:0:0:0:0:1

Relevant log files

DHCPv6 show this is the log

/usr/local/sbin/pluginctl: dhcpd_dhcp6_configure() found no suitable IPv6 address on lan(em1)

Opnsense 24.7.7

rudiservo commented 1 week ago

Upon further investigation I came to a problem, the static ipv6 address is not being properly set.

So I tested and tried to add this IPv6 fe90:1:1:1:1:1:1:1/64 image

but in ipconfig I get

inet6 fe90:0:1:1:1:1:1:1%em1 prefixlen 64 scopeid 0x3

plus all the tests I did on this interface with IPv6 it just added a new IPv6, it did not substitute.

image

Please notice that the second part is always 0 no matter what value I set, even with ipconfig i.e. ifconfig em1 inet6 fe90:1:2:3:4:5:6:7/64

My guess is the function that gets the ipv6 address does not check for "%em1", although fe80::/10 this is link local.

fichtner commented 6 days ago

Im unsure what your issue is in general but specifically: the second bit in the link-local is used for scoping in the kernel so you can’t use it. There is a reason why everyone uses the fe80::/64 prefix and only the suffix for addresses.

jfieber commented 4 days ago

If you want a locally administered address space, you will want to generate a ULA prefix and assign address out of that. Link local address are for the kernel, not the user.

https://www.unique-local-ipv6.com

rudiservo commented 4 days ago

@jfieber got it, thanks. Now the other issue is DHCPv6 does not work properly until I restarted the whole machine. I will close this and put up a new issue if one is not up yet-