openwrt/odhcpd

bug: DHCPv6 does not respect prefix assigned to interface (<=/64)

xvzf opened this issue · 5 comments

xvzf commented

When odhcpd hands out IPv6 leases on an interface with a prefix <=/64 (e.g. /96), leases can (and often are) outside of the allocated /96 on the interface.
I've looked a bit at the code and it seems the host_id calculation always infers 64bit, thus a /64 prefix. I would've expected odhcpd in DHCPv6 server mode, to actually respect the assigned prefix.

Are you open PR to fix this?

Same issue for me with a /96. @xvzf I saw you close your PR, but your patch work great for me (Except for a typo "return return 0;". Is it safe to use it ?

xvzf commented

yeah, I've been using it since a while - I'll fix the upstream PR and will re-open it 🤞

xvzf commented

@dguglielmi feel free to upvote the PR/ comment you tested it - might help getting this upstream

I'm currently trying to split my /64 ULA into multiple /112 (per VLAN), is this patch supposed to help with that? If yes, how can I test it?

Currently, setting the interface to a /112 prefix (option ip6assign '112'), the interface gets no IPv6 at all.

xvzf commented

No, this PR only fixes an issue where addresses were assigned in the broader /64 prefix, even though the interface is only a /112