I have an environment where routers that could be global nameservers (read: dns_server option is set) can blink on and off the mesh fairly frequently (on the scale of maybe five minutes...) .
- When a dns_server node comes online, the listening nodes pick up the change within a couple of minutes (ok).
- When a dns_server node goes offline, the listening nodes do not delete the bad entry in resolv.conf.auto for a long time if there are no other changes in the network (i.e. no more dns_server nodes coming online). Note: "a long time" is more than 20 min - I haven't waited any longer, so it could be never. resolv.conf.auto will sort itself out if another node comes online advertising a dns_server. From the timestamp on the resolv.conf.auto file it looks like it just doesn't update unless a new node comes on.
refresh and timeout intervals are 30 and 60 sec respectively. All systems are linksys wrt54gl running OpenWRT 8.09.1 r16206 and the latest olsrd-luci libraries
dns_server node config:
DebugLevel 0
IpVersion 4
AllowNoInt yes
Pollrate 0.025
TcRedundancy 2
MprCoverage 3
LinkQualityFishEye 1
LinkQualityDijkstraLimit 0 9.0
FIBMetric "flat"
ClearScreen yes
Willingness 3
LinkQualityAging 0.1
LinkQualityAlgorithm "etx_ff"
MinTCVTime 500.0
LinkQualityLevel 2
LinkQualityWinSize 20
Hna4
{
10.103.1.0 255.255.255.0
10.100.0.0 255.255.0.0
0.0.0.0 0.0.0.0
}
LoadPlugin "olsrd_dyn_gw_plain.so.0.4"
{
}
LoadPlugin "olsrd_nameservice.so.0.3"
{
PlParam "name" "fabfi1"
PlParam "suffix" ".olsr"
PlParam "hosts-file" "/var/etc/hosts"
PlParam "resolv-file" "/var/resolv.conf.auto"
PlParam "timeout" "60"
PlParam "interval" "30"
PlParam "dns-server" "10.101.0.1"
PlParam "sighup-pid-file" "/var/run/dnsmasq.pid"
}
LoadPlugin "olsrd_txtinfo.so.0.1"
{
PlParam "accept" "127.0.0.1"
}
LoadPlugin "olsrd_dot_draw.so.0.3"
{
PlParam "accept" "10.100.0.133"
PlParam "port" "2004"
}
Interface "eth0.2"
{
Ip4Broadcast 255.255.255.255
HelloInterval 5.0
HelloValidityTime 40.0
TcInterval 2.0
TcValidityTime 256.0
MidInterval 18.0
MidValidityTime 324.0
HnaInterval 18.0
HnaValidityTime 108.0
}
Interface "wl0"
{
Ip4Broadcast 255.255.255.255
HelloInterval 5.0
HelloValidityTime 40.0
TcInterval 2.0
TcValidityTime 256.0
MidInterval 18.0
MidValidityTime 324.0
HnaInterval 18.0
HnaValidityTime 108.0
}
Listening node config:
DebugLevel 0
IpVersion 4
AllowNoInt yes
Pollrate 0.025
TcRedundancy 2
MprCoverage 3
LinkQualityFishEye 1
LinkQualityDijkstraLimit 0 9.0
FIBMetric "flat"
ClearScreen yes
Willingness 3
LinkQualityAging 0.1
LinkQualityAlgorithm "etx_ff"
MinTCVTime 500.0
LinkQualityLevel 2
LinkQualityWinSize 20
Hna4
{
10.103.5.0 255.255.255.0
0.0.0.0 0.0.0.0
}
LoadPlugin "olsrd_dyn_gw_plain.so.0.4"
{
}
LoadPlugin "olsrd_nameservice.so.0.3"
{
PlParam "name" "fabfi5"
PlParam "suffix" ".olsr"
PlParam "hosts-file" "/var/etc/hosts"
PlParam "resolv-file" "/var/resolv.conf.auto"
PlParam "interval" "30"
PlParam "timeout" "60"
PlParam "sighup-pid-file" "/var/run/dnsmasq.pid"
}
LoadPlugin "olsrd_txtinfo.so.0.1"
{
PlParam "accept" "127.0.0.1"
}
Interface "eth0.2"
{
Ip4Broadcast 255.255.255.255
HelloInterval 5.0
HelloValidityTime 40.0
TcInterval 2.0
TcValidityTime 256.0
MidInterval 18.0
MidValidityTime 324.0
HnaInterval 18.0
HnaValidityTime 108.0
}
Interface "wl0"
{
Ip4Broadcast 255.255.255.255
HelloInterval 5.0
HelloValidityTime 40.0
TcInterval 2.0
TcValidityTime 256.0
MidInterval 18.0
MidValidityTime 324.0
HnaInterval 18.0
HnaValidityTime 108.0
}
dnsmasq config (same for both server and listener):
config 'dnsmasq'
option 'boguspriv' '1'
option 'local' '/lan/'
option 'domain' 'lan'
option 'expandhosts' '1'
option 'authoritative' '1'
option 'readethers' '1'
option 'leasefile' '/tmp/dhcp.leases'
option 'resolvfile' '/tmp/resolv.conf.auto'
option 'localise_queries' '1'
option 'domainneeded' '1'
Edit: the resolv.conf.auto file did update approx 30min after the network changed. is it possible that the plugin interprets refresh and timeout interval in minutes not seconds?