Subject: Re: Allowing ifconfig to automatically fill in IPv6 host ID
To: Robert Elz <kre@munnari.OZ.AU>
From: None <ww@styx.org>
List: tech-net
Date: 03/31/2002 22:46:44
On Tue, Mar 26, 2002 at 05:10:09PM +0700, Robert Elz wrote:
> 
> But all that happens in single user mode, without /usr mounted, so you can't
> use sed (nor awk, let alone perl) to assist, really just what the shell is
> able to do for you.

or you can call /usr a critical filesystem in /etc/rc.conf
and make sure it's mounted. you're not nfs mounting /usr on your
routers are you? (&

> Now, I have no doubt but that it is possible to do all that is needed in the
> NetBSD /bin/sh but this seems like something that is useful enough that
> having ifconfig able to do it seems like the better way.

at the expense of treating a mask of /64 as a special case. is the
feature creep necessary?

imo, we need a more general interface for configuring networking.
it should be extensible enough to do things like defining a prefix setting
operation.

> It may be that there's a method to do this already, but to make this easy,
> it would be nice to be able to config just the IID part of the address, and
> then allow the host (these are hosts, not routers...) autoconfigure from the
> prefixes obtained via RA's (or the above ioctls via ifconfig if that gets
> done).  Note: changing the MAC addr in order to have it build an EUI-64
> out of a configured mac addr isn't the right way to achieve this!

it seems to me that features like this belong in the daemons that implement
the userland parts of router advertisement and solicitation: maybe
"rtsold -e eui-64 fo0"

>       ifconfig fo0 prefix abcd:: prefixlen 16 delete
> 
> (or similar) and have fo0 remember to never use abcd::/16 when it is
> processing RA's advertising prefixes.   Of course, the ioctl to do that and
> the previous would be quite similar, each with a prefix, a prefixlen,
> and a ttl (how long the command should be obeyed, with 0 meaning forever).
> Just one adds a prefix to the RA list, the other subtracts (and of course,
> on a router, where RA's are not accepted, the RA list manually built that
> way would still be used).

i'm not sure if i follow what you want "ifconfig fo0 prefix ... delete" to do.
it seems like you're asking for an ioctl to rule out the possibility of
having a certain configuration at some time in the future. 

you could do something
like this either by making filter support in rtsold or else extending
the ip filtering engine to support more arbitrary matching conditions so
you could filter out certain advertisements before they make it up the ip
stack. 

> But we need to have at least the front end user interface (net
> administrator config interface) for this available - not hidden behind "do it
> yourself with a script").   IPv6 should be easy to use, let's not just be
> content with "well, it is possible to do ..." and instead truly make it easy.

the problem is, there's no particularly consistent interface for doing
all the different ways you'd want to set up networking (filtering rules,
router advertisement/solicitation, routing protocols). there's been
a lot of work going into this sort of thing recently. 

there's a bsd based router company that has done a good job of it -- in
particular the cli, though they make it tricky to edit the configuration
files by hand and they don't like the idea of sharing their source code.

gnu zebra has made great headway bit it intentionally has an illogical, 
though widely familiar interface. it's not finished, it doesn't support
the things you're asking for, but could easily be made to support a 
prefix command. 

it's a bigger problem than just hacking another feature into ifconfig,
and for now, an elegant sed command line has been worked out that accomplishes
the task.

-w