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

Add modules for RFC8925 and RFC2563 #170

Merged
merged 1 commit into from Feb 27, 2024

Conversation

candlerb
Copy link
Contributor

@candlerb candlerb commented Aug 29, 2023

These modules support DHCPv4 responses for IPv6-only or IPv6-mostly networks.

In particular: macOS / iOS / Android will configure their built-in CLAT if you provide the RFC8925 DHCPv4 response and advertise a RFC8781 NAT64 prefix in your Router Advertisements.

Copy link
Member

@Natolumin Natolumin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! This is very nice; sorry for missing it the first time you posted it

There are a few questions and follow-ups inline and a couple changes I'd like to see, but otherwise this is a nice approach

plugins/autoconfigure/plugin.go Outdated Show resolved Hide resolved
plugins/ipv6only/plugin.go Outdated Show resolved Hide resolved
plugins/autoconfigure/plugin.go Outdated Show resolved Hide resolved
plugins/autoconfigure/plugin.go Outdated Show resolved Hide resolved
plugins/autoconfigure/plugin.go Outdated Show resolved Hide resolved
plugins/ipv6only/plugin.go Outdated Show resolved Hide resolved
plugins/autoconfigure/plugin.go Show resolved Hide resolved
plugins/autoconfigure/plugin.go Outdated Show resolved Hide resolved
@candlerb
Copy link
Contributor Author

Thank you for your thorough code review!

This is excellent timing - right now I'm at APRICOT 2024 in Bangkok and I'm using this code for the IPv6-only SSID in the conference network. I'll go through all your notes tomorrow, and should be able to deploy the updated code in advance of the conference starting on Tuesday.

I added the MAC address logging to be able to report on how many clients support these DHCP options.

@candlerb
Copy link
Contributor Author

I have pushed the code which would be used if the latest version of insomniacslk/dhcp#524 is accepted (and tested it in a go workspace)

I have left AutoConfigure as it is, pending feedback on insomniacslk/dhcp#525

@Natolumin
Copy link
Member

This is good to merge as far as I'm concerned, as soon as the upstream discussions are resolved

control of link-local autoconfigure (RFC2563)

Signed-off-by: Brian Candler <b.candler@pobox.com>
@candlerb
Copy link
Contributor Author

The changes to insomniacslk/dhcp have been accepted, and I've done go get ...@latest to update go.mod. Build and test succeeds locally. Please kick off CI.

Note: I did a go mod tidy and it has removed a whole load of stuff from go.sum, including old versions of libraries. If you want to keep them, let me know and I'll try some other way of doing this.

Copy link

codecov bot commented Feb 27, 2024

Codecov Report

Attention: Patch coverage is 58.18182% with 23 lines in your changes are missing coverage. Please review.

Project coverage is 47.11%. Comparing base (321f8a6) to head (eb3cff2).

Files Patch % Lines
plugins/ipv6only/plugin.go 47.82% 12 Missing ⚠️
plugins/autoconfigure/plugin.go 65.62% 11 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #170      +/-   ##
==========================================
+ Coverage   46.58%   47.11%   +0.52%     
==========================================
  Files          16       18       +2     
  Lines        1157     1212      +55     
==========================================
+ Hits          539      571      +32     
- Misses        568      591      +23     
  Partials       50       50              
Flag Coverage Δ
integtests ∅ <ø> (?)
unittests 47.11% <58.18%> (+0.52%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Natolumin Natolumin merged commit 12a2f40 into coredhcp:master Feb 27, 2024
11 checks passed
@Natolumin
Copy link
Member

Thank you for your contribution!

@candlerb
Copy link
Contributor Author

candlerb commented Mar 3, 2024

FYI, a few stats from the IPv6-only SSID at APRICOT 2024, using coredhcp + radvd + jool:

  • 142 unique MAC addresses seen
  • Of those, 115 (81%) requested option 108 (IPv6-only Preferred)
  • Of the remaining 27, none sent option 116 (AutoConfigure).

It appears that RFC8925 support is widespread, but RFC2563 is non-existent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants