[email protected] wrote:
I think what we'd want for dynamic address assignment is the ability to
manage the identities in ipadm, with the default identity being the MAC
address. Then in the future we can add the ability to specify different
DHCPv4 identities (client IDs?) on the command line, as well as multiple
IPv6 tokens and/or DUIDs for IPv6.
Would the usage of client-ID as the "binding" cover all cases?
You need to handle the default case of no DHCPv4 client-ID and just the
MAC address as the ID. I suspect one can represent this as a single
thing which can be either a binary MAC address, or a client-ID (which
might be ASCII?)
Note that IPv6 and DHCPv6 use (at least) different terminology in that
the MAC address corresponds to an 64-bit IPv6 token (or interface-ID)
[which by default is derived from the MAC address], and the DHCPv4
client-ID conceptually corresponds to the DUID (but the DUID has a type
field and comes in different types; not just a sequence of bytes like
the client-ID.)
Thus the full fledged syntax might be something like
ipadm create-dhcpv4 -i link4 [-c clientID]
where the lack of a -c means that refers to the single identity which is
the MAC address on link4. So 'ipadm destroy-dhcpv4 -i link4' would
destroy that default one.
It isn't clear whether we want to treat stateless and DHCPv6 as separate
or a union; the protocols are coupled together, but stateless using a
token derived from the MAC address, and the DUID being quite different.
A separate one could be
ipadm create-dhcpv6 -i link6 [-c DUID]
ipadm create-slac -i link6 [-t token]
and a combined one could be of the form
ipadm create-ipv6 -i link6 [-c DUID] [-t token]
The name of these objects are of the form <link, id> the same way the
static address objects are of the form <link, address>. For instance, my
laptop would show a dhcpv4 name for <ath0, 0:21:5d:96:26:fa>.
If we think this is sensible, and we don't need to support bge0:17
DHCPv4 configuration using ipadm from day one, the initial support is
just for
ipadm create-dhcpv4 -i link
ipadm destroy-dhcpv4 -i link
ipadm create-ipv6 -i link
ipadm destroy-ipv6 -i link
thus we can add the options later.
I'm not sure I see what create-ipv6/destroy-ipv6 do, and how they
would be differnt from what create-interface would do?
create-ipv6 falls in the address management part of the interface.
create-interface is the thing that sets up the phyint/ill, right?
You've specified those as different, and in that case, just like we need
create-dhcpv6 for address management we need create-<something> for
non-static IPv6 address management.
It might be that the interface can be simplified to remove the
create-interface all together, and having it be implicit in the first
address management on the link.
That would work well for the normal cases of configuring static or
dynamic addresses, but it might have issues with the NWAM-type usage
where one wants to plumb bge0 just to be able to see the state of
IFF_RUNNING (I'm guessing that is what NWAM does, but it could also use
DLPI to look for DL_NOTE_LINK_UP/DOWN.)
Any other issues with making create-interface implicit in creating the
first address on the interface?
also, as you point out, stateless and dhcpv6 are coupled together,
and in.ndpd is the configuration method here, much like in.routed
manages rdisc today, so wouldn't it be better to deal with all these
mechanisms when we add routing options in ipadm later?
I don't understand what IPv6 address management has to to with routing
(any more than IPv4 address management having something to do with routing.)
No, I don't think you can punt on IPv6 address management and just do
IPv4 if that was the question ;-)
Erik
_______________________________________________
networking-discuss mailing list
[email protected]