[Dnsmasq-discuss] gatway
Simon Kelley
simon at thekelleys.org.uk
Mon Oct 14 11:37:08 BST 2013
On 12/10/13 10:48, Vladislav Grishenko wrote:
> Hi, Simon,
>
> Thanks for the implementation, works well with one issue is still there
> RDNSS& DNS Search List RA options contain lifetimes calculated from
> MaxRtrAdvInterval, where MaxRtrAdvInterval =<ra-interval>, and
> MinRtrAdvInterval = 3/4*<ra-interval>
> Since, there's no way to specify MinRtrAdvInterval& MaxRtrAdvInterval (as I
> proposed before), RDNSS& DNS Search List lifetimes always equal
> 2*<ra-interval>.
> So, if<ra-interval> is small, like 10sec, that lifetimes are small too,
> just 20sec, without any connection to<router lifetime>. Hosts may refresh
> RDNSS info with RS packets and trigger solicited RA answers in addition to
> existing unsolicited RA packets.
> In the same time, with working DHCPv6 stateless/full lifetime is taken from
> dhcp-range, 600 sec as min.
>
> In radvd, MinRtrAdvInterval, MaxRtrAdvInterval, DefaultLifetime and other
> lifetimes can be set via conf file,
> In dnsmasq they are automatic, guess automatic needs to be tuned up.
> What do you think?
I think you're right that it needs tuning. The calculation for prefix
valid times is a good model. That's based on the lifetime in the
DHCP-range, but with a minimum of 3 * RA_interval as an imposed minimum.
The problem with that is that RDNSS and DNSSL are per interface, not
per-prefix. Maybe the calculation should the maximum valid time of any
prefix advertised on the interface?
Cheers,
Simon.
>
> Best Regards, Vladislav Grishenko
>
>> -----Original Message-----
>> From: Simon Kelley [mailto:simon at thekelleys.org.uk]
>> Sent: Friday, October 11, 2013 2:01 AM
>> To: Vladislav Grishenko
>> Cc: dnsmasq-discuss at lists.thekelleys.org.uk
>> Subject: Re: [Dnsmasq-discuss] gatway
>>
>> On 08/10/13 12:09, Vladislav Grishenko wrote:
>>>> 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][,MinRtr
>>> AdvInt
>>> 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
>>>
>>>
>>>
>>
>> OK, I just committed my take on this, which is --ra-param option, and
>> removed --force-fast-ra
>>
>>
>> --ra-param=<interface>,[high|low],[[<ra-interval>],<router
>> lifetime>]
>> Set non-default values for router advertisements sent
>> via an interface. The priority field for the router
>> may be altered from the default of medium with eg
>> --ra-param=eth0,high. The interval between router
>> advertisements may be set (in seconds) with --ra-
>> param=eth0,60. The lifetime of the route may be
>> changed or set to zero, which allows a router to
>> advertise prefixes but not a route via itself. --ra-
>> parm=eth0,0,0 (A value of zero for the interval means
>> the default value.) All three parameters may be set at
>> once. --ra-param=low,60,1200 The interface field may
>> include a wildcard.
>>
>>
>>
>> I even added control of router priority as a bonus!
>>
>>
>> Cheers,
>>
>> Simon.
>
>
More information about the Dnsmasq-discuss
mailing list