vyos@vyos# show system name-server name-server eth0 [edit] vyos@vyos# vyos-hostsd-client --get-name-servers {'dhcp-eth0': {'192.168.10.1': None}} [edit] # use dhcp eth0 and without system vyos@vyos# show service dns forwarding allow-from 0.0.0.0/0 dhcp eth0 listen-address 0.0.0.0 [edit] vyos@vyos# cat /run/pdns-recursor/recursor.forward-zones.conf # Autogenerated by VyOS (vyos-hostsd) # Do not edit, your changes will get overwritten # dot zone (catch-all): '+' indicates recursion is desired # (same as forward-zones-recurse) # static: # zones added via 'service dns forwarding domain' [edit] # use system without dhcp vyos@vyos# delete service dns forwarding dhcp [edit] vyos@vyos# set service dns forwarding dns dns64-prefix dnssec [edit] vyos@vyos# set service dns forwarding system [edit] vyos@vyos# commit [edit] vyos@vyos# cat /run/pdns-recursor/recursor.forward-zones.conf # Autogenerated by VyOS (vyos-hostsd) # Do not edit, your changes will get overwritten # dot zone (catch-all): '+' indicates recursion is desired # (same as forward-zones-recurse) # static: # system: # dhcp-eth0: 192.168.10.1 # dhcpv6-eth0: +.=192.168.10.1 # zones added via 'service dns forwarding domain' [edit]
In service_dns_forwarding.py, there is some code similar to be related to the dns['dhcp'] entry
# add dhcp nameserver tags for configured interfaces if 'system_name_server' in dns: for interface in dns['system_name_server']: # system_name_server key contains both IP addresses and interface # names (DHCP) to use DNS servers. We need to check if the # value is an interface name - only if this is the case, add the # interface based DNS forwarder. if interface_exists(interface): hc.add_name_server_tags_recursor(['dhcp-' + interface, 'dhcpv6-' + interface ])
These code is handling dns interface from
if 'system' in dns: base_nameservers = ['system', 'name-server'] if conf.exists(base_nameservers): dns.update({'system_name_server': conf.return_values(base_nameservers)})
I copied as
# add dhcp interfaces if 'dhcp' in dns: for interface in dns['dhcp']: if interface_exists(interface): hc.add_name_server_tags_recursor(['dhcp-' + interface, 'dhcpv6-' + interface ])
result:
vyos@vyos# delete service dns forwarding system [edit] vyos@vyos# set service dns forwarding dhcp eth0 [edit] vyos@vyos# commit [edit] vyos@vyos# cat /run/pdns-recursor/recursor.forward-zones.conf # Autogenerated by VyOS (vyos-hostsd) # Do not edit, your changes will get overwritten # dot zone (catch-all): '+' indicates recursion is desired # (same as forward-zones-recurse) # static: # dhcp-eth0: 192.168.10.1 # dhcpv6-eth0: +.=192.168.10.1 # zones added via 'service dns forwarding domain' [edit]