ifconfig.if rtsol autoconf diff

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

ifconfig.if rtsol autoconf diff

Tim Kuijsten-3
Had some trouble this morning in configuring inet6 on a new laptop.
Finally figured out that rtsol is dropped and that the functionality is
moved to the kernel. Diff for hostname.if(5) included. Someone might
want to replace the "rtsol" keyword in the installer as well.

Index: hostname.if.5
===================================================================
RCS file: /cvs/src/share/man/man5/hostname.if.5,v
retrieving revision 1.62
diff -u -p -r1.62 hostname.if.5
--- hostname.if.5       12 Jul 2014 16:59:06 -0000      1.62
+++ hostname.if.5       5 Jun 2015 13:30:46 -0000
@@ -248,26 +248,24 @@ Valid options for a particular interface
  .Pp
  IPv6 stateless address autoconfiguration:
  .Bd -ragged -offset indent
-.Li rtsol
+.Li inet6 autoconf
  .Va options
  .Ed
  .Pp
  The above format has the following field values:
  .Bl -tag -width indent -offset indent
-.It Li rtsol
+.It Li autoconf
  The literal string
-.Dq rtsol
+.Dq autoconf
  if the interface is to be configured using
  IPv6 stateless address autoconfiguration.
  This should be used on single interface hosts only,
  since the IPv6 specifications are silent about the
  behavior on multi-interface hosts.
  Also note that the kernel must be configured as a host (i.e. non-router).
-Add the following line into
-.Xr sysctl.conf 5 :
-.Bd -literal -offset indent
-net.inet6.ip6.forwarding=0
-.Ed
+This is the default. This value deprecates the
+.Dq rtsol
+field value.
  .It Va options
  Miscellaneous options to set on the interface, e.g.,
  .Dq media 100baseTX mediaopt full-duplex .

Reply | Threaded
Open this post in threaded view
|

Re: ifconfig.if rtsol autoconf diff

Florian Obser-2
On Fri, Jun 05, 2015 at 03:41:22PM +0200, Tim Kuijsten wrote:
> Had some trouble this morning in configuring inet6 on a new laptop.

What problems did you encounter? inet6 autoconf or rtsol in
hostname.if are supposed to work exactly the same.

> Finally figured out that rtsol is dropped and that the functionality
> is moved to the kernel. Diff for hostname.if(5) included. Someone
> might want to replace the "rtsol" keyword in the installer as well.

When I moved the SLAAC logic into the kernel the main motivation was
to get rid of rtsol(8). Back then I suggested to change /etc/netstart
and the installer to deprecate the rtsol keyword as well but I got
some objections to that. Maybe we should revisit that.

Note however that rtsol in hostname.if is a keyword, it does not refer
to the (old) /sbin/rtsol binary and never did; exactly the same as the
dhcp keyword - there isn't even a dhcp binary.

So when /etc/netstart encounters the rtsol keyword it executes
ifconfig $if inet6 autoconf.
The same for dhcp, it executes dhclient $if.
inet6 autoconf in hostname.if works, too, because it's passed to
ifconfig by /etc/netstart.

I notice an inconsistency however. I recently changed some kernel bits
so that SLAAC works with net.inet6.ip6.forwarding enabled. This is
needed for RFC 7084 and intended for cpe devices.

While inet6 autoconf works perfectly fine with
net.inet6.ip6.forwarding enabled /etc/netstart will complain if it
encounters the rtsol keyword with forwarding enabled.


>
> Index: hostname.if.5
> ===================================================================
> RCS file: /cvs/src/share/man/man5/hostname.if.5,v
> retrieving revision 1.62
> diff -u -p -r1.62 hostname.if.5
> --- hostname.if.5       12 Jul 2014 16:59:06 -0000      1.62
> +++ hostname.if.5       5 Jun 2015 13:30:46 -0000
> @@ -248,26 +248,24 @@ Valid options for a particular interface
>  .Pp
>  IPv6 stateless address autoconfiguration:
>  .Bd -ragged -offset indent
> -.Li rtsol
> +.Li inet6 autoconf
>  .Va options
>  .Ed
>  .Pp
>  The above format has the following field values:
>  .Bl -tag -width indent -offset indent
> -.It Li rtsol
> +.It Li autoconf
>  The literal string
> -.Dq rtsol
> +.Dq autoconf
>  if the interface is to be configured using
>  IPv6 stateless address autoconfiguration.
>  This should be used on single interface hosts only,
>  since the IPv6 specifications are silent about the
>  behavior on multi-interface hosts.
>  Also note that the kernel must be configured as a host (i.e. non-router).
> -Add the following line into
> -.Xr sysctl.conf 5 :
> -.Bd -literal -offset indent
> -net.inet6.ip6.forwarding=0
> -.Ed
> +This is the default. This value deprecates the
> +.Dq rtsol
> +field value.
>  .It Va options
>  Miscellaneous options to set on the interface, e.g.,
>  .Dq media 100baseTX mediaopt full-duplex .
>

--
I'm not entirely sure you are real.

Reply | Threaded
Open this post in threaded view
|

Re: ifconfig.if rtsol autoconf diff

Tim Kuijsten-3
Op 06-06-15 om 13:24 schreef Florian Obser:
> On Fri, Jun 05, 2015 at 03:41:22PM +0200, Tim Kuijsten wrote:
>> Had some trouble this morning in configuring inet6 on a new laptop.
>
> What problems did you encounter? inet6 autoconf or rtsol in
> hostname.if are supposed to work exactly the same.

Mmm, I tried inet6 rtsol instead of just rtsol. Now it works idd like
inet6 autoconf. Tnx!

Somehow the static address that was set during install results in some
routing errors (i.e. "ping6: UDP connect: No route to host") after
booting into the installed OS. That's why I removed the static address
and tried rtsol again.

Thanks for the explanation. I have to read a bit more about IPv6.

-Tim

>
>> Finally figured out that rtsol is dropped and that the functionality
>> is moved to the kernel. Diff for hostname.if(5) included. Someone
>> might want to replace the "rtsol" keyword in the installer as well.
>
> When I moved the SLAAC logic into the kernel the main motivation was
> to get rid of rtsol(8). Back then I suggested to change /etc/netstart
> and the installer to deprecate the rtsol keyword as well but I got
> some objections to that. Maybe we should revisit that.
>
> Note however that rtsol in hostname.if is a keyword, it does not refer
> to the (old) /sbin/rtsol binary and never did; exactly the same as the
> dhcp keyword - there isn't even a dhcp binary.
>
> So when /etc/netstart encounters the rtsol keyword it executes
> ifconfig $if inet6 autoconf.
> The same for dhcp, it executes dhclient $if.
> inet6 autoconf in hostname.if works, too, because it's passed to
> ifconfig by /etc/netstart.
>
> I notice an inconsistency however. I recently changed some kernel bits
> so that SLAAC works with net.inet6.ip6.forwarding enabled. This is
> needed for RFC 7084 and intended for cpe devices.
>
> While inet6 autoconf works perfectly fine with
> net.inet6.ip6.forwarding enabled /etc/netstart will complain if it
> encounters the rtsol keyword with forwarding enabled.
>
>
>>
>> Index: hostname.if.5
>> ===================================================================
>> RCS file: /cvs/src/share/man/man5/hostname.if.5,v
>> retrieving revision 1.62
>> diff -u -p -r1.62 hostname.if.5
>> --- hostname.if.5       12 Jul 2014 16:59:06 -0000      1.62
>> +++ hostname.if.5       5 Jun 2015 13:30:46 -0000
>> @@ -248,26 +248,24 @@ Valid options for a particular interface
>>   .Pp
>>   IPv6 stateless address autoconfiguration:
>>   .Bd -ragged -offset indent
>> -.Li rtsol
>> +.Li inet6 autoconf
>>   .Va options
>>   .Ed
>>   .Pp
>>   The above format has the following field values:
>>   .Bl -tag -width indent -offset indent
>> -.It Li rtsol
>> +.It Li autoconf
>>   The literal string
>> -.Dq rtsol
>> +.Dq autoconf
>>   if the interface is to be configured using
>>   IPv6 stateless address autoconfiguration.
>>   This should be used on single interface hosts only,
>>   since the IPv6 specifications are silent about the
>>   behavior on multi-interface hosts.
>>   Also note that the kernel must be configured as a host (i.e. non-router).
>> -Add the following line into
>> -.Xr sysctl.conf 5 :
>> -.Bd -literal -offset indent
>> -net.inet6.ip6.forwarding=0
>> -.Ed
>> +This is the default. This value deprecates the
>> +.Dq rtsol
>> +field value.
>>   .It Va options
>>   Miscellaneous options to set on the interface, e.g.,
>>   .Dq media 100baseTX mediaopt full-duplex .