Conversation
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a clients SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes openwrt#349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
a5d60cc to
02bbac7
Compare
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a clients SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes openwrt#349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
02bbac7 to
bb65e8c
Compare
|
Note to self: do we want a configure tuneable? Or do we just set |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes openwrt#349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
bb65e8c to
87eb475
Compare
src/dhcpv6-ia.c
Outdated
| hdr->msg_type == DHCPV6_MSG_REQUEST || | ||
| (hdr->msg_type == DHCPV6_MSG_REBIND && !a)) { | ||
| (hdr->msg_type == DHCPV6_MSG_REBIND && !a) || | ||
| (hdr->msg_type == DHCPV6_MSG_ADDR_REG_INFORM && !a)) { |
There was a problem hiding this comment.
There's more cases to consider? If a is true, then that address is already taken? Also, there might be a static lease configured (even though it might not be in use), we should check for that as well....in both cases, we should log and drop (4.2.1, second last paragraph)
There was a problem hiding this comment.
This case is taken care of higher up - a is set, as part of normal lease operations, and the lease is updated. These 4 message types just lodge a new lease. Static leases are checked earlier in the code (irrespective of message type).
The spec is clear about 'refreshing timers' and updating leases - that's all implicitly handled (testing will establish this), so we should not drop those - but use those to update our leases.
|
And some more random points that don't fit some specific line(s) in the diff:
(personal opinion) The RFC comments are slowly getting a bit out of hand, while a quick: /* See RFC527, second paragraph */
if (something_unexpected)
do_something_drastic();Is helpful, citing ever longer passages from RFCs just blows up the size of the code, and anyone who is interested should really go read the referred-to paragraph/section of the relevant RFC anyway to make sure that they get the whole context. |
I don't think it's necessary...if we're running a DHCPv6 server, it doesn't seem to serve any real purpose to not allow clients to inform us of their autoconfigured addresses...?
If the |
You're right. There is not (yet). The spec defines no server behaviour for this in §4.2.1. It's mandated as part of §4.2 - what the client must do. ( It does no harm if the client erroneously lodges a LL with us. It's nothing that we would assign anyway from our available prefixes. IOW, it's also harmless for us to check this somewhere. And the implied behaviour is... that we discard it. ) static inline bool IN6_IS_ADDR_GLOBAL(const struct in6_addr *a)
{
return !(
IN6_IS_ADDR_UNSPECIFIED(a) ||
IN6_IS_ADDR_LOOPBACK(a) ||
IN6_IS_ADDR_MULTICAST(a) ||
IN6_IS_ADDR_LINKLOCAL(a) ||
IN6_IS_ADDR_ULA(a)
);
}? https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html defines others. Edit: I think this is largely handled by
Not a bad idea.
Hmm - understand. I think 2-3 lines for a code-block is fine, with exceptions for complex bits. Because this RFC basically uses existing functionality with some extra ifs, it's much clearer that we cover all of the MUST parts in the server behaviour (e.g. via a code search) since most machinery is already implicit. In short, it'd be nice to get this tested before making more changes, or... you could write out your implementation and we compare notes :) |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes openwrt#349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
7e584db to
d69379c
Compare
|
OK @Alphix last commit addresses 'exactly one' and:
|
Hm, yes,
Yeah, feel free to not do any changes until you've done more tests... ...and no, I'm not going to write an implementation right now :) |
|
Thanks for the comprehensive review @Alphix. This already feels like a better result. If those last few changes look good - then I'll squash. This is the on_link check Lines 902 to 934 in 03c1468 where valid_addr is Lines 33 to 36 in 03c1468 That could probably be better named as something like |
I think I'll just keep my mouth shut now until you have the chance to test this code. Feel free to squash/not squash as/when you prefer... |
|
The good news is that most of this is structurally correct, and almost worked on the first try (I got the replies but IA Addr was missing from response because I used type 3 and not 5) :) Basically, I'll refresh with what I get working so we can chisel out a good way to handle these records. |
What a coincidence, I've been fiddling with the same stuff because of my work with creating better statefiles that can be used to persist leases across a restart/reboot. I think I might have something that can benefit both of us....basically I want to add an array of real IPv6 addresses to |
|
Yeah, my solution at present is just to jam the peer IP in there (if checks pass), since this RFC mandates the IP Addr == sender addr. Now the ubus lease handling stuff needs tweaking 😅 |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes openwrt#349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
a2ae249 to
729e6f6
Compare
|
OK - the exchanges work with this, although the lease handling is still not yet ready. |
Did you implement it in Edit: and if you give me some time, I think I'll have something for you wrt. the lease handling... |
|
Implemented in 6c. Easiest way to test. |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Relay portion Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
729e6f6 to
6a0425e
Compare
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
6a0425e to
0e936e9
Compare
|
OK - I've been testing this one out against 6c, and it works fine: odhcp6c request odhcpd reply: and {
"duid": "0004xx",
"iaid": 0,
"hostname": "",
"accept-reconf": false,
"flags": [
"bound",
"self-generated"
],
"ipv6-addr": [
{
"address": "fd51:1c2a:8909:0:a00:27ff:fe59:96ef",
"preferred-lifetime": 1325,
"valid-lifetime": 1325
}
],
"valid": 4297
},
{
"duid": "0004xx",
"iaid": 0,
"hostname": "",
"accept-reconf": false,
"flags": [
"bound",
"self-generated"
],
"ipv6-addr": [
{
"address": "2001:db8:20:1100:a00:27ff:fe59:96ef",
"preferred-lifetime": 1325,
"valid-lifetime": 1325
}
],
"valid": 1325
} |
|
Awesome, I'll post a draft of the thing I'm working on....hopefully this evening (CET) or tomorrow...I hope you'll find that both of our projects will dovetail nicely... |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
0e936e9 to
f500d7a
Compare
|
Let's see - I'm happy with where things are handling leases at present here - but you typically reveal something I hadn't thought of. |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Add support for the Client FQDN option: RFC9686 §4.2: MAY include ... the Client FQDN option Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
f500d7a to
1bfd335
Compare
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Add support for the Client FQDN option: RFC9686 §4.2: MAY include ... the Client FQDN option Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
1bfd335 to
981dc32
Compare
@systemcrash see #364 |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Add support for the Client FQDN option: RFC9686 §4.2: MAY include ... the Client FQDN option Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
981dc32 to
8a75343
Compare
|
I think this is ready for general consumption now. @Alphix you seem to dislike passing loads of parameters, but it feels like we can pass addrbuf once or twice to avoid doing inet_ntop at different steps. The 6c half needs some more time - cleanup and hooking in to stats. Currently it triggers on RA, which doesn't seem optimal... but it works. So I can throw it out there so at least others can test this. |
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Add support for the Client FQDN option: RFC9686 §4.2: MAY include ... the Client FQDN option Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
8a75343 to
0b93b1b
Compare
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: openwrt#353
Add support for the Client FQDN option: RFC9686 §4.2: MAY include ... the Client FQDN option Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: openwrt#353
0b93b1b to
3720175
Compare
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a client SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
Closes #349
Might require a few tweaks. This code is untested, but simple enough to merge and see production when this option appears (or we add it in odhcp6c and test that way - ULA are supposed to be registered).
@Alphix and @Noltari at your leisure.