[Dnsmasq-discuss] How to NOT bind dnsmasq to lo?
Tim Tassonis
stuff at decentral.ch
Thu Jul 11 20:11:31 UTC 2024
On 7/10/24 22:52, Sven Geuer wrote:
> Hi Tim,
>
> On Wed, 2024-07-10 at 21:55 +0200, Tim Tassonis wrote:
>> Hi all
>>
>> I tried using dnsmasq as local resolver, which in general works fine.
>>
>> However, I however would like to run a second instance of dnsmasq
>> binding only to a tap0, for a virtual network (vde2) for some qemu
>> virtual machines, and I can't seem to get that to work, as it always
>> complains about 127.0.0.1 already being taken.
>>
>> I tried:
>>
>>
>> DHCP_OPT="192.168.8.9,192.1688.8.99,255.255.255.0,192.168.8.255,8h"
>> dnsmasq --log-queries --user=dnsmasq \
>> --dhcp-leasefile=/var/lib/misc/qemu-vde-dnsmasq.leases \
>> --dhcp-range=$DHCP_RANGE \
>> --listen-address=192.168.8.1 \
>> --interface=tap0 --except-interface=lo \
>> --domain=decentral.ch \
>> --enable-tftp \
>> --dhcp-boot=/var/lib/qemu-vde/pxeboot/pxelinux.0 \
>> --pid-file=/run/qemu-vde-dnsmasq.pid
>>
>>
>>
>> This works fine, but only if the local dnsmasq is not started.
>>
>> Otherwise, it will fail with:
>>
>> dnsmasq: failed to create listening socket for 127.0.0.1: Address
>> already in use
>>
>> Any ideas?
>
> Looks like --bind-interfaces is missing from your configuration. I
> would also recommend to drop --interface and --except-interface, and
> only keep --listen-address.
>
> Please re-read the manual page:
>
>
> -i, --interface=<interface name>
> Listen only on the specified interface(s). Dnsmasq automatically
> adds the loopback (local) interface to the list of interfaces to use
> when the --interface option is used. [...]
>
> -a, --listen-address=<ipaddr>
> Listen on the given IP address(es). Both --interface and --listen-
> address options may be given, in which case the set of both
> interfaces and addresses is used. Note that if no --interface option
> is given, but --listen-address is, dnsmasq will not automatically
> listen on the loopback interface. To achieve this, its IP address,
> 127.0.0.1, must be explicitly given as a --listen-address option.
>
> -z, --bind-interfaces
> On systems which support it, dnsmasq binds the wildcard address,
> even when it is listening on only some interfaces. [...] Setting
> this option also enables multiple instances of dnsmasq which provide
> DHCP service to run in the same machine.
>
> Hope this helps,
Yes, the --bind-interfaces did the trick, thank you very much!
Bye
Tim
More information about the Dnsmasq-discuss
mailing list