Dear Dnsmasq users,
The description of how to update upstream nameservers dynamically is not
very useful for several popular Linux distributions that have moved to
systemd-networkd and netplan. The DHCP client in systemd-networkd seems
well hidden.
To implement dynamic updates I wrote a small script "DNS-fix":
#!/bin/bash
# After testing this script can be copied to
# /etc/networkd-dispatcher/routable.d/
#
# set the name of the device connected to internet with DHCP (cf. ip a)
device=WAN
FILE=/etc/dnsmasq-resolv.conf
echo -e "## Don't edit this file, it will be overwritten by " > $FILE
echo -e "## /etc/networkd-dispatcher/routable.d/DNS-fix" >> $FILE
echo -e "## when the system is booted.\n" >> $FILE
serv=`netplan ip leases $device |grep "DNS="`
set $serv
if [ $# -ge 2 ]; then
serv1=`echo $1|sed -e 's/DNS=/nameserver\t/'`
echo $serv1 >> $FILE
serv2=`echo $2|sed -e 's/^/nameserver\t/'`
echo $serv2 >> $FILE
fi
#fallback server
echo "nameserver 8.8.8.8" >> $FILE
and tested it with "sudo ./DNS-fix" to confirm that the content of
/etc/dnsmasq-resolv.conf made sense. After copying DNS-fix to
/etc/networkd-dispatcher/routable.d/
and setting
resolv-file=/etc/dnsmasq-resolv.conf
the upstream nameservers will be updated from the current lease info.
Questions:
- Can you spot any problems with this idea?
- Will it work on any distribution running netplan?
- Is anyone interested in improving this idea and updating the "Automatic
nameserver configuration" section of the Dnsmasq setup information?
Any response is appreciated!
Best wishes,
Kjell
_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss