[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