[Dnsmasq-discuss] gatway
Vladislav Grishenko
themiron at mail.ru
Tue Oct 8 12:09:49 BST 2013
> From: Simon Kelley
> Sent: Tuesday, October 08, 2013 4:20 PM
> On 06/10/13 11:32, Vladislav Grishenko wrote:
> > Hi, RFC4861 says:
> >
> > A router might want to send Router Advertisements without
advertising
> > itself as a default router. For instance, a router might advertise
> > prefixes for stateless address autoconfiguration while not wishing
to
> > forward packets. Such a router sets the Router Lifetime field in
> > outgoing advertisements to zero.
> >
> >>> is it possible to tell dnsmasq not to announce itself as router?
> > So , yes, it's theoretically possible.
>
> That's good information, thanks. In answer to the next question, no, it's
not
> possible to configure dnsmasq to send Router Lifetime == 0.
>
> The lifetime, in dhcp-range is used to calculate the lifetimes for
prefixes, no
> the router lifetime. In fact the router lifetime is always advertised as
1800
> seconds, I think.
>
> Since this is a per-broadcast domain thing, and not per prefix thing, it
needs
> to be associated with an interface.
>
> Simplest would be
>
> no-router-interface=<interface>[,<interface>,....]
>
> to set the interfaces that get router lifetime of zero.
>
> More complex would be to allow explict setting of the router lifetime per
> interface, that would have to be linked to the RA frequency: you wouldn't
> want a router expiring before it could be re-advertised.
>
No-router-interface is simplest, and adds more option to control RA.
Currently we have already:
--dhcp-range=...ra-only|slaac|ra-names...
--enable-ra
--force-fast-ra
What if to logically split options to dhcp*-related and to slaac-related?
--dhcp-range=
Sets only DHCP range/RA prefix parameters (including
lease/prefix/rdnss/domain lifetimes), but not RA timeouts
--enable-ra=<interface>[,<interface>,...][,AdvDefaultLifetime][,MinRtrAdvInt
erval,MaxRtrAdvInterval]
Sets only RA timouts, if params absent - use defaults, 600 as max, 1/3*600
as min.
With this, both min & max can be configured,
As per RFC,
max should be in range 4-1800 secodns, default 600
min should be in range 3-3/4*max, default 1/3*max, if max >=9,
otherwise equal to max
With this approach, --no-router-interface will be alias of
--enable-ra=interface,0
And --force-fast-ra will be an alias of --enable-ra=interface,1800,5,20
Also, current code uses 600 as max, and 3/4*max as min ra intervals, what
fits RFC, bit, guessб isn't optimal, too big min delay.
As for startup advertisements and force-fast-ra, interval is 5-20, but can
be limited to range MIN_DELAY_BETWEEN_RAS-MAX_INITIAL_RTR_ADVERT_INTERVAL, 3
and 16 respectively as RFC suggests
Since RA can be very frequent, is it ever worth to log with LOG_INFO level
every unsolicited RTR-ADVERT? It just floods syslog and has no other meaning
in my opinion.
Best Regards, Vladislav Grishenko
More information about the Dnsmasq-discuss
mailing list