Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support IPv6 auto-assignment modes #89

Open
GermanCoding opened this issue Jun 26, 2022 · 1 comment
Open

feat: Support IPv6 auto-assignment modes #89

GermanCoding opened this issue Jun 26, 2022 · 1 comment
Labels
new-feature New features or options. priority-medium This issue may be useful, and needs some attention.

Comments

@GermanCoding
Copy link

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.

@GermanCoding GermanCoding added the new-feature New features or options. label Jun 26, 2022
@dec0dOS dec0dOS added the priority-medium This issue may be useful, and needs some attention. label Jun 27, 2022
@dec0dOS
Copy link
Owner

dec0dOS commented Jun 27, 2022

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!

@NoobTW NoobTW mentioned this issue Apr 16, 2023
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature New features or options. priority-medium This issue may be useful, and needs some attention.
Projects
None yet
Development

No branches or pull requests

2 participants