[Dnsmasq-discuss] dnsmasq On Subnets - Failing

Simon Kelley simon at thekelleys.org.uk
Sat Sep 24 23:15:49 UTC 2022



On 23/09/2022 13:20, Zeta Cloud wrote:
> Hi.
> 
> I'm running dnsmasq as the local DHCP server in a container/VM/jail 
> intended to serve as a router for multiple VMs, and the router VM is set 
> up with multiple vnics, each on a different subnet.
> 
> vnic1: Subnet A -> 192.168.11.0 (external)
> vnic2: Subnet B -> 192.168.21.0 (internal)
> vnic3: Subnet C -> 192.168.31.0 (storage)
> 
> The problem I'm having is that as soon as a VM on subnet A requests a 
> DHCP address, dnsmasq will not respond to any future requests from VMs 
> on subnet B or subnet C. If I restart the dnsmasq service, and if the 
> first DHCP request is from subnet B, it won't respond to queries from 
> subnet A/C. Etc.
> 
> Is this peculiar to the particular version of dnsmasq-2.86? I've tried 
> everything, with and without option bind-interfaces, with and without 
> all interfaces explicitly listed, exclude-interfaces, etc.
> 
> Any help on this would be greatly appreciated. I've already spent 2 days 
> trying to figure out what was going on. I'm trying to set up 
> containers/VMs. The problem I face is that once I set up a VM on one 
> subnet, VM creation fails for all other subnets. A restart of dnsmasq 
> doesn't help, because then dnsmasq responds to the first and subsequent 
> DHCP requests from a subnet, but stops responding to VMs on other subnets.
> 
> Thanks very much.
> 
> Sam
> 
> My dnsmasq.conf included below for reference.
> ------------------------------------------
> dhcp-authoritative
> dhcp-lease-max=1000
> dhcp-leasefile=/var/cache/dnsmasq/dnsmasq.leases
> dhcp-rapid-commit
> log-facility=/var/log/dnsmasq/dnsmasq.log
> log-queries
> log-dhcp
> 
> # NAT Interface
> except-interface=net0
> no-dhcp-interface=net0
> 
> domain=zetac.lan
> 
> # Subnet A
> interface=net1
> bind-interfaces
> listen-address=192.168.11.1
> dhcp-range=set:extl,192.168.11.101,192.168.11.200,12h
> dhcp-option=tag:extl,option:dns-server,192.168.11.1
> dhcp-option=option:netmask,255.255.255.0
> dhcp-option=option:domain-name,zetac.lan
> 
> # Subnet B
> interface=net2
> bind-interfaces
> listen-address=192.168.21.1
> dhcp-range=set:intl,192.168.21.101,192.168.21.200,12h
> dhcp-option=tag:intl,option:dns-server,192.168.21.1
> dhcp-option=option:netmask,255.255.255.0
> dhcp-option=option:domain-name,zetac.lan
> 
> # Subnet B
> interface=net3
> bind-interfaces
> listen-address=192.168.31.1
> dhcp-range=set:intl,192.168.31.101,192.168.31.200,12h
> dhcp-option=tag:intl,option:dns-server,192.168.31.1
> dhcp-option=option:netmask,255.255.255.0
> dhcp-option=option:domain-name,zetac.lan
> 
> bogus-priv
> filterwin2k
> no-hosts
> no-resolv
> no-poll
> expand-hosts
> domain-needed
> dns-forward-max=150
> neg-ttl=3600
> 

What netmasks are set _in_the_kernel_ for net1, net2 and net3? The fact 
that you've set the netmasks as dhcp-options makes me worry that they 
may not be set correctly, as if they are you wouldn't need the 
dhcp-options, the correct value would be sent automatically.

You have log-dhcp set. Posting the resulting logs here might be useful.

Simon.




More information about the Dnsmasq-discuss mailing list