dec0dOS/zero-ui

feat: Support IPv6 auto-assignment modes

GermanCoding opened this issue · 1 comments

Feature Request

It would be great if zero-ui would expose the IPv6 configuration options, as available in the controller. From the controller docs:

Auto-Assign Modes:

Auto assign modes (v4AssignMode and v6AssignMode) contain objects that map assignment modes to booleans.

For IPv4 the only valid setting is zt which, if true, causes IPv4 addresses to be auto-assigned from ipAssignmentPools to members that do not have an IPv4 assignment. Note that active bridges are exempt and will not get auto-assigned IPs since this can interfere with bridging. (You can still manually assign one if you want.)

IPv6 includes this option and two others: 6plane and rfc4193. These assign private IPv6 addresses to each member based on a deterministic assignment scheme that allows members to emulate IPv6 NDP to skip multicast for better performance and scalability. The rfc4193 mode gives every member a /128 on a /88 network, while 6plane gives every member a /80 within a /40 network but uses NDP emulation to route all IPs under that /80 to its owner. The 6plane mode is great for use cases like Docker since it allows every member to assign IPv6 addresses within its /80 that just work instantly and globally across the network.

Describe Preferred Solution

Just expose checkboxes in the UI (just like on ZT-central), that allow checking of one of the three assignment modes.

Note that you can actually already add IPv6 ranges in zero-ui, just put them in Auto-Assign Pools (it's does accept IPv6 as well). It's just not used right now, because zt, 6plane and rfc4193 are all set to false in the controller.

ZT-central uses different UI elements for IPv6 + IPv4 Address Pools, but I think that's not actually required - it can both live in the same UI element, as the controller stores it combined anyway.

Describe Alternatives

I'm currently managing the IPv6 assignment modes manually (without zero-ui), but having this in the project would be great 👍

Additional Context

This is how it looks on ZT-central:

zt-central

If the feature request is approved, would you be willing to submit a PR?
Zero experience with React, not much time right now. Maybe in the future.

Hello, @GermanCoding!
This feature request is related to #6.

Currently, I don't have the opportunity to implement the IPv6 soon. So any help is greatly appreciated!