[Dnsmasq-discuss] DNSMASQ wrong network DHCPOFFERs

Luis Kleber luis at smart6.com.br
Fri Nov 9 01:45:57 GMT 2018


I'm using Dnsmasq like DHCP server for multi networks with Neutron and each
network in a VLAN.
Everything works fine, but sometimes DNSMASK offers wrong addresses.

It seems to be related to neutron-dhcp-agent restart, broadcast dhcp
request flag, and a server with many addresses allocated to clientes, but
i'm not sure.

Below more details. It's not easy to reproduce.

> Linux Namespace used by Neutron as DHCP server.
*[root at devel91 ~] ip netns exec qdhcp-3a07cc53-9944-4420-9b76-fa32e41922f5
ifconfig*
*lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536*
*        inet 127.0.0.1  netmask 255.0.0.0*
*        inet6 ::1  prefixlen 128  scopeid 0x10<host>*
*        loop  txqueuelen 1000  (Local Loopback)*
*        RX packets 804  bytes 61104 (59.6 KiB)*
*        RX errors 0  dropped 0  overruns 0  frame 0*
*        TX packets 804  bytes 61104 (59.6 KiB)*
*        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0*

*tape56ef56c-66: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500*
*        inet 100.97.97.3  netmask 255.255.255.0  broadcast 100.97.97.255*
*        inet6 fe80::f816:3eff:fe94:ee91  prefixlen 64  scopeid 0x20<link>*
*        ether fa:16:3e:94:ee:91  txqueuelen 1000  (Ethernet)*
*        RX packets 174520  bytes 49840349 (47.5 MiB)*
*        RX errors 0  dropped 0  overruns 0  frame 0*
*        TX packets 176548  bytes 57602628 (54.9 MiB)*
*        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0*


Dnsmasq version 2.78  Copyright (c) 2000-2017 Simon Kelley
Compile time options: IPv6 GNU-getopt DBus no-i18n IDN2 DHCP DHCPv6 no-Lua
TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
It happens with version 2.76 too.


I'm using a script to generate a limited number of MACs (60) for DHCP
Requests. I have a DNSMASK pool with 54 addresses to be offered.
*loop do*
*  XX=$(printf "%02X\n" $(shuf -i 11-70 -n 1))*
*  sleep 1*
*  dhtest -i em2 -f -m A0:11:$XX:33:44:$XX   #The "-f" FLAG is for
broadcast DHCP request used by TP-LINK and other vendors CPE's*
*done*


The DHCP namespace IP address is *100.97.97.3/24 <http://100.97.97.3/24>*.
The dnsmasq config for this network should give addresses in the range
 *100.97.97.11
- 100.97.97.64*, and gateway *100.97.97.1* and 2 DNS.
There is another namespace with IP 100.97.97.2 and 2 other namespaces
working with HA (VRRP with IP 100.97.97.1) all in the same LAN
(network/subnet).

Bellow are some logs to try to find the problem point.

> MAC* a0:11:2c:33:44:2c *got IP *100.97.97.61* address while DNSMASQ was
running with OLD PID 12128 (PID before Dnsmasq proccess restart).
Nov  7 14:22:25 dnsmasq-dhcp[12128]: 1914494840
DHCPDISCOVER(tape56ef56c-66) a0:11:2c:33:44:2c
Nov  7 14:22:26 dnsmasq-dhcp[12128]: 1914494840 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c
Nov  7 14:22:26 dnsmasq-dhcp[12128]: 1914494840 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c
Nov  7 14:22:26 dnsmasq-dhcp[12128]: 1914494840 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c
Nov  7 14:23:39 dnsmasq-dhcp[12128]: 958193258 DHCPDISCOVER(tape56ef56c-66)
a0:11:2c:33:44:2c
Nov  7 14:23:40 dnsmasq-dhcp[12128]: 958193258 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c
Nov  7 14:23:40 dnsmasq-dhcp[12128]: 958193258 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c
Nov  7 14:23:40 dnsmasq-dhcp[12128]: 958193258 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:2c:33:44:2c

> systemctl restart neutron-dhcp-agent.service (this was at 14:23:xx)

> MAC *a0:11:11:33:44:11* got IP *100.97.97.61* address while DNSMASQ was
running with NEW PID 39632 (PID after Dnsmasq restart).
Nov  7 14:24:16 dnsmasq-dhcp[39632]: 131303615 DHCPDISCOVER(tape56ef56c-66)
a0:11:11:33:44:11
Nov  7 14:24:16 dnsmasq-dhcp[39632]: 131303615 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:24:16 dnsmasq-dhcp[39632]: 131303615 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:24:16 dnsmasq-dhcp[39632]: 131303615 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:12 dnsmasq-dhcp[39632]: 825015409 DHCPDISCOVER(tape56ef56c-66)
a0:11:11:33:44:11
Nov  7 14:27:13 dnsmasq-dhcp[39632]: 825015409 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:13 dnsmasq-dhcp[39632]: 825015409 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:13 dnsmasq-dhcp[39632]: 825015409 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:32 dnsmasq-dhcp[39632]: 1448165127
DHCPDISCOVER(tape56ef56c-66) a0:11:11:33:44:11
Nov  7 14:27:33 dnsmasq-dhcp[39632]: 1448165127 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:33 dnsmasq-dhcp[39632]: 1448165127 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:27:33 dnsmasq-dhcp[39632]: 1448165127 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11

> MAC* a0:11:2c:33:44:2c*  got IP *100.101.1.59* address while DNSMASQ was
running with new PID 39632.
> The problem was this address that doesn't belong to this network. But
this address offered  exist on dnsmasq config (config bellow).
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441
DHCPDISCOVER(tape56ef56c-66) a0:11:2c:33:44:2c
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 DHCPOFFER(tape56ef56c-66)
100.101.1.59 a0:11:2c:33:44:2c
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 DHCPREQUEST(tape56ef56c-66)
100.101.1.59 a0:11:2c:33:44:2c
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 DHCPACK(tape56ef56c-66)
100.101.1.59 a0:11:2c:33:44:2c

> My script remains requesting DHCP with same random MAC addresses only
changing last 2 bytes (a0:11:11:33:44:**) and all addresses offered where
from the wrong network. It seems to be full, all offered and used.

Nov  7 14:30:07 dnsmasq-dhcp[39632]: 531232206 DHCPDISCOVER(tape56ef56c-66)
a0:11:11:33:44:11
Nov  7 14:30:08 dnsmasq-dhcp[39632]: 531232206 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:30:08 dnsmasq-dhcp[39632]: 531232206 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:30:08 dnsmasq-dhcp[39632]: 531232206 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:30:38 dnsmasq-dhcp[39632]: 1560432315
DHCPDISCOVER(tape56ef56c-66) a0:11:11:33:44:11
Nov  7 14:30:39 dnsmasq-dhcp[39632]: 1560432315 DHCPOFFER(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:30:39 dnsmasq-dhcp[39632]: 1560432315 DHCPREQUEST(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11
Nov  7 14:30:39 dnsmasq-dhcp[39632]: 1560432315 DHCPACK(tape56ef56c-66)
100.97.97.61 a0:11:11:33:44:11


[root at devel91 ~] systemctl status neutron-dhcp-agent.service -l
● neutron-dhcp-agent.service - OpenStack Neutron DHCP Agent
   Loaded: loaded (/usr/lib/systemd/system/neutron-dhcp-agent.service;
enabled; vendor preset: disabled)
   Active: active (running) since Qua 2018-11-07 14:23:42 -02; 42min ago
 Main PID: 39445 (neutron-dhcp-ag)
    Tasks: 13
   CGroup: /system.slice/neutron-dhcp-agent.service
           ├─39445 /usr/bin/python2 /usr/bin/neutron-dhcp-agent
--config-file /usr/share/neutron/neutron-dist.conf --config-file
/etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
--config-dir /etc/neutron/conf.d/common --config-dir
/etc/neutron/conf.d/neutron-dhcp-agent --log-file
/var/log/neutron/dhcp-agent.log
           ├─39490 sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
           ├─39491 /usr/bin/python2 /usr/bin/neutron-rootwrap-daemon
/etc/neutron/rootwrap.conf
           ├─39575 /usr/bin/python2 /bin/privsep-helper --config-file
/usr/share/neutron/neutron-dist.conf --config-file
/etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
--config-dir /etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmp_N9dUK/privsep.sock
           ├─39576 /usr/bin/python2 /bin/privsep-helper --config-file
/usr/share/neutron/neutron-dist.conf --config-file
/etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
--config-dir /etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpbIRjwc/privsep.sock
           ├─39577 /usr/bin/python2 /bin/privsep-helper --config-file
/usr/share/neutron/neutron-dist.conf --config-file
/etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
--config-dir /etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpkBMZy3/privsep.sock
           ├─39578 /usr/bin/python2 /bin/privsep-helper --config-file
/usr/share/neutron/neutron-dist.conf --config-file
/etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
--config-dir /etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpYHHG05/privsep.sock
           ├─39632 dnsmasq --no-hosts --no-resolv --except-interface=lo
--pid-file=/var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/pid
--dhcp-hostsfile=/var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/host
--addn-hosts=/var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/addn_hosts
--dhcp-optsfile=/var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/opts
--dhcp-leasefile=/var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/leases
--dhcp-match=set:ipxe,175 --bind-interfaces --interface=tape56ef56c-66
--dhcp-range=set:tag0,100.97.97.0,static,255.255.255.0,86400s
--dhcp-option-force=option:mtu,1500 --dhcp-lease-max=256
--conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal
           ├─39645 dnsmasq --no-hosts --no-resolv --except-interface=lo
--pid-file=/var/lib/neutron/dhcp/4201703f-98fe-4ca6-8b03-2a68fbb7242b/pid
--dhcp-hostsfile=/var/lib/neutron/dhcp/4201703f-98fe-4ca6-8b03-2a68fbb7242b/host
--addn-hosts=/var/lib/neutron/dhcp/4201703f-98fe-4ca6-8b03-2a68fbb7242b/addn_hosts
--dhcp-optsfile=/var/lib/neutron/dhcp/4201703f-98fe-4ca6-8b03-2a68fbb7242b/opts
--dhcp-leasefile=/var/lib/neutron/dhcp/4201703f-98fe-4ca6-8b03-2a68fbb7242b/leases
--dhcp-match=set:ipxe,175 --bind-interfaces --interface=tap5ff4e88b-68
--dhcp-range=set:tag0,100.99.99.0,static,255.255.255.0,86400s
--dhcp-option-force=option:mtu,1500 --dhcp-lease-max=256
--conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal
           ├─39655 dnsmasq --no-hosts --no-resolv --except-interface=lo
--pid-file=/var/lib/neutron/dhcp/46e1907c-0bb6-4141-8db4-2cc372c625af/pid
--dhcp-hostsfile=/var/lib/neutron/dhcp/46e1907c-0bb6-4141-8db4-2cc372c625af/host
--addn-hosts=/var/lib/neutron/dhcp/46e1907c-0bb6-4141-8db4-2cc372c625af/addn_hosts
--dhcp-optsfile=/var/lib/neutron/dhcp/46e1907c-0bb6-4141-8db4-2cc372c625af/opts
--dhcp-leasefile=/var/lib/neutron/dhcp/46e1907c-0bb6-4141-8db4-2cc372c625af/leases
--dhcp-match=set:ipxe,175 --bind-interfaces --interface=tapb871519b-71
--dhcp-range=set:tag0,100.98.98.0,static,255.255.255.0,86400s
--dhcp-option-force=option:mtu,1500 --dhcp-lease-max=256
--conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal
           ├─39660 dnsmasq --no-hosts --no-resolv --except-interface=lo
--pid-file=/var/lib/neutron/dhcp/bf2c1841-e09b-4a00-8911-25893ccbf948/pid
--dhcp-hostsfile=/var/lib/neutron/dhcp/bf2c1841-e09b-4a00-8911-25893ccbf948/host
--addn-hosts=/var/lib/neutron/dhcp/bf2c1841-e09b-4a00-8911-25893ccbf948/addn_hosts
--dhcp-optsfile=/var/lib/neutron/dhcp/bf2c1841-e09b-4a00-8911-25893ccbf948/opts
--dhcp-leasefile=/var/lib/neutron/dhcp/bf2c1841-e09b-4a00-8911-25893ccbf948/leases
--dhcp-match=set:ipxe,175 --bind-interfaces --interface=tap4cdf4812-fd
--dhcp-range=set:tag0,100.100.0.0,static,255.255.240.0,86400s
--dhcp-option-force=option:mtu,1500 --dhcp-lease-max=4096
--conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal
           └─39671 dnsmasq --no-hosts --no-resolv --except-interface=lo
--pid-file=/var/lib/neutron/dhcp/c541368d-4189-435b-bbc8-093dae40aa8e/pid
--dhcp-hostsfile=/var/lib/neutron/dhcp/c541368d-4189-435b-bbc8-093dae40aa8e/host
--addn-hosts=/var/lib/neutron/dhcp/c541368d-4189-435b-bbc8-093dae40aa8e/addn_hosts
--dhcp-optsfile=/var/lib/neutron/dhcp/c541368d-4189-435b-bbc8-093dae40aa8e/opts
--dhcp-leasefile=/var/lib/neutron/dhcp/c541368d-4189-435b-bbc8-093dae40aa8e/leases
--dhcp-match=set:ipxe,175 --bind-interfaces --interface=tapd449e876-4d
--dhcp-range=set:tag0,100.96.96.0,static,255.255.255.0,86400s
--dhcp-option-force=option:mtu,1500 --dhcp-lease-max=256
--conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal

Nov 07 14:23:42 devel91 systemd[1]: Started OpenStack Neutron DHCP Agent.
Nov 07 14:23:42 devel91 systemd[1]: Starting OpenStack Neutron DHCP Agent...
Nov 07 14:23:45 devel91 sudo[39490]:  neutron : TTY=unknown ; PWD=/ ;
USER=root ; COMMAND=/bin/neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
Nov 07 14:23:45 devel91 sudo[39503]:  neutron : TTY=unknown ; PWD=/ ;
USER=root ; COMMAND=/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
privsep-helper --config-file /usr/share/neutron/neutron-dist.conf
--config-file /etc/neutron/neutron.conf --config-file
/etc/neutron/dhcp_agent.ini --config-dir
/etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmp_N9dUK/privsep.sock
Nov 07 14:23:45 devel91 sudo[39507]:  neutron : TTY=unknown ; PWD=/ ;
USER=root ; COMMAND=/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
privsep-helper --config-file /usr/share/neutron/neutron-dist.conf
--config-file /etc/neutron/neutron.conf --config-file
/etc/neutron/dhcp_agent.ini --config-dir
/etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpbIRjwc/privsep.sock
Nov 07 14:23:45 devel91 sudo[39515]:  neutron : TTY=unknown ; PWD=/ ;
USER=root ; COMMAND=/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
privsep-helper --config-file /usr/share/neutron/neutron-dist.conf
--config-file /etc/neutron/neutron.conf --config-file
/etc/neutron/dhcp_agent.ini --config-dir
/etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpkBMZy3/privsep.sock
Nov 07 14:23:45 devel91 sudo[39518]:  neutron : TTY=unknown ; PWD=/ ;
USER=root ; COMMAND=/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
privsep-helper --config-file /usr/share/neutron/neutron-dist.conf
--config-file /etc/neutron/neutron.conf --config-file
/etc/neutron/dhcp_agent.ini --config-dir
/etc/neutron/conf.d/neutron-dhcp-agent --privsep_context
neutron.privileged.default --privsep_sock_path /tmp/tmpYHHG05/privsep.sock




> DNSMASQ configuration file
[root at devel91 ~] cat /etc/neutron/dnsmasq-neutron.conf
log-queries #DEBUG para LOGs no syslog padrao.
log-dhcp #Log de DHCP ?
log-facility=/tmp/dnsmasq.log #Se ativado, cuidar com rotacao do arquivo

dhcp-option-force=26,1500
dhcp-option-force=6,xx.xx.xx.xx,8.8.8.8
dhcp-reply-delay=1   #(Algum dos servers demorar mais pra responder)

dhcp-range=set:PRIV-192.168.0.0-,192.168.0.10,192.168.0.250,86400s
dhcp-option=tag:PRIV-192.168.0.0-,3,192.168.0.1
dhcp-range=set:PRIV-192.168.1.0-,192.168.1.10,192.168.0.250,86400s
dhcp-option=tag:PRIV-192.168.1.0-,3,192.168.1.1
dhcp-range=set:PRIV-10.0.0.0-,10.0.0.10,10.0.0.250,86400s
dhcp-option=tag:PRIV-10.0.0.0-,3,10.0.0.1
dhcp-range=set:PRIV-10.0.1.0-,10.0.1.10,10.0.1.250,86400s
dhcp-option=tag:PRIV-10.0.1.0-,3,10.0.1.1

dhcp-range=set:infra-70-subnet,100.101.1.11,100.101.1.64,600s
dhcp-option=tag:infra-70-subnet,3,100.101.1.1
dhcp-range=set:infra-71-subnet,100.101.2.11,100.101.2.64,600s
dhcp-option=tag:infra-71-subnet,3,100.101.2.1
dhcp-range=set:infra-72-subnet,100.98.98.11,100.98.98.64,600s
dhcp-option=tag:infra-72-subnet,3,100.98.98.1
dhcp-range=set:infra-73-subnet,100.101.4.11,100.101.4.64,600s
dhcp-option=tag:infra-73-subnet,3,100.101.4.1
dhcp-range=set:infra-74-subnet,100.101.5.11,100.101.5.64,600s
dhcp-option=tag:infra-74-subnet,3,100.101.5.1
dhcp-range=set:infra-75-subnet,100.99.99.11,100.99.99.64,600s
dhcp-option=tag:infra-75-subnet,3,100.99.99.1
dhcp-range=set:infra-76-subnet,100.101.7.11,100.101.7.64,600s
dhcp-option=tag:infra-76-subnet,3,100.101.7.1
dhcp-range=set:infra-77-subnet,100.101.8.11,100.101.8.64,600s
dhcp-option=tag:infra-77-subnet,3,100.101.8.1
dhcp-range=set:infra-78-subnet,100.102.1.11,100.102.1.64,600s
dhcp-option=tag:infra-78-subnet,3,100.102.1.1
dhcp-range=set:infra-79-subnet,100.102.2.11,100.102.2.64,600s
dhcp-option=tag:infra-79-subnet,3,100.102.2.1
dhcp-range=set:infra-80-subnet,100.102.3.11,100.102.3.64,600s
dhcp-option=tag:infra-80-subnet,3,100.102.3.1
dhcp-range=set:infra-81-subnet,100.97.97.11,100.97.97.64,600s
dhcp-option=tag:infra-81-subnet,3,100.97.97.1
dhcp-range=set:infra-82-subnet,100.102.5.11,100.102.5.64,600s
dhcp-option=tag:infra-82-subnet,3,100.102.5.1
dhcp-range=set:infra-83-subnet,100.102.6.11,100.102.6.64,600s
dhcp-option=tag:infra-83-subnet,3,100.102.6.1
dhcp-range=set:infra-84-subnet,100.102.7.11,100.102.7.64,600s
dhcp-option=tag:infra-84-subnet,3,100.102.7.1
dhcp-range=set:infra-85-subnet,100.102.8.11,100.102.8.64,600s
dhcp-option=tag:infra-85-subnet,3,100.102.8.1
dhcp-range=set:infra-86-subnet,100.103.1.11,100.103.1.64,600s
dhcp-option=tag:infra-86-subnet,3,100.103.1.1
dhcp-range=set:infra-87-subnet,100.103.2.11,100.103.2.64,600s
dhcp-option=tag:infra-87-subnet,3,100.103.2.1
dhcp-range=set:infra-88-subnet,100.103.3.11,100.103.3.64,600s
dhcp-option=tag:infra-88-subnet,3,100.103.3.1
dhcp-range=set:infra-89-subnet,100.103.4.11,100.103.4.64,600s
dhcp-option=tag:infra-89-subnet,3,100.103.4.1
dhcp-range=set:infra-90-subnet,100.103.5.11,100.103.5.64,600s
dhcp-option=tag:infra-90-subnet,3,100.103.5.1
dhcp-range=set:infra-91-subnet,100.103.6.11,100.103.6.64,600s
dhcp-option=tag:infra-91-subnet,3,100.103.6.1
dhcp-range=set:infra-92-subnet,100.103.7.11,100.103.7.64,600s
dhcp-option=tag:infra-92-subnet,3,100.103.7.1
dhcp-range=set:infra-93-subnet,100.103.8.11,100.103.8.64,600s
dhcp-option=tag:infra-93-subnet,3,100.103.8.1
dhcp-range=set:infra-94-subnet,100.104.1.11,100.104.1.64,600s
dhcp-option=tag:infra-94-subnet,3,100.104.1.1
dhcp-range=set:infra-95-subnet,100.96.96.11,100.96.96.64,600s
dhcp-option=tag:infra-95-subnet,3,100.96.96.1



This was the lease file when I saw that reproduced the problem.
cat /var/lib/neutron/dhcp/3a07cc53-9944-4420-9b76-fa32e41922f5/leases

1541608853 a0:11:3a:33:44:3a 100.101.1.61 * *
1541608845 a0:11:28:33:44:28 100.101.1.23 * *
1541608841 a0:11:23:33:44:23 100.101.1.13 * *
1541608795 a0:11:41:33:44:41 100.101.1.19 * *
1541609097 70:4f:57:ca:25:00 100.101.1.36 Archer_C20 01:70:4f:57:ca:25:00
1541608789 a0:11:30:33:44:30 100.101.1.41 * *
1541608783 a0:11:25:33:44:25 100.101.1.47 * *
1541608739 a0:11:45:33:44:45 100.101.1.55 * *
1541608745 a0:11:1a:33:44:1a 100.101.1.53 * *
1541608720 a0:11:2c:33:44:2c 100.101.1.59 * *
1541608867 a0:11:44:33:44:44 100.97.97.50 * *
1541608801 a0:11:36:33:44:36 100.97.97.26 * *
1541608684 a0:11:3d:33:44:3d 100.97.97.38 * *
1541608778 a0:11:0b:33:44:0b 100.97.97.24 * *
1541608810 a0:11:3f:33:44:3f 100.97.97.40 * *
1541608749 a0:11:20:33:44:20 100.97.97.37 * *
1541608631 a0:11:16:33:44:16 100.97.97.18 * *
1541608847 a0:11:43:33:44:43 100.97.97.22 * *
1541608669 a0:11:29:33:44:29 100.97.97.52 * *
1541608804 a0:11:2b:33:44:2b 100.97.97.32 * *
1541608696 a0:11:12:33:44:12 100.97.97.36 * *
1541608837 a0:11:15:33:44:15 100.97.97.44 * *
1541608592 a0:11:18:33:44:18 100.97.97.20 * *
1541608857 a0:11:27:33:44:27 100.97.97.49 * *
1541608724 a0:11:13:33:44:13 100.97.97.64 * *
1541608573 a0:11:38:33:44:34 100.97.97.23 * *
1541608566 a0:11:40:33:44:40 100.97.97.46 * *
1541608657 a0:11:1c:33:44:1c 100.97.97.56 * *
1541608767 a0:11:33:33:44:33 100.97.97.17 * *
1541608759 a0:11:46:33:44:46 100.97.97.30 * *
1541608799 a0:11:10:33:44:10 100.97.97.34 * *
1541608706 a0:11:21:33:44:21 100.97.97.12 * *
1541608831 a0:11:3e:33:44:3e 100.97.97.11 * *
1541608869 a0:11:26:33:44:26 100.97.97.21 * *
1541608598 a0:11:2d:33:44:2d 100.97.97.33 * *
1541608828 a0:11:42:33:44:42 100.97.97.47 * *
1541608855 a0:11:2a:33:44:2a 100.97.97.57 * *
1541608765 a0:11:38:33:44:38 100.97.97.27 * *
1541608833 a0:11:3b:33:44:3b 100.97.97.35 * *
1541608797 a0:11:3c:33:44:3c 100.97.97.63 * *
1541608849 a0:11:31:33:44:31 100.97.97.16 * *
1541608816 a0:11:0e:33:44:0e 100.97.97.31 * *
1541608716 a0:11:2f:33:44:2f 100.97.97.13 * *
1541608863 a0:11:22:33:44:22 100.97.97.39 * *
1541608771 a0:11:2e:33:44:2e 100.97.97.62 * *
1541608769 a0:11:32:33:44:32 100.97.97.43 * *
1541608861 a0:11:17:33:44:17 100.97.97.45 * *
1541608700 a0:11:0f:33:44:0f 100.97.97.59 * *
1541608839 a0:11:11:33:44:11 100.97.97.61 * *
1541608865 a0:11:37:33:44:37 100.97.97.53 * *
1541608814 a0:11:35:33:44:35 100.97.97.51 * *
1541608859 a0:11:1d:33:44:1d 100.97.97.29 * *
1541608835 a0:11:14:33:44:14 100.97.97.15 * *
1541694227 fa:16:3e:94:ee:91 100.97.97.3 host-100-97-97-3 *
1541694227 fa:16:3e:1f:02:87 100.97.97.1 host-100-97-97-1 *
1541694227 fa:16:3e:9f:c1:40 100.97.97.2 host-100-97-97-2 *

After this first wrong offer, only wrong addresses (100.101.1.x) where
offered.
This "wrong network" is not in use within this scenario, only on dnsmasq
configuration file.

The problem started some time when used  infra-70-subnet   instead of
infra-81-subnet.
I tried to attacked dnsmasq full log debug, but it was rejected.
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 tags: infra-70-subnet,
tape56ef56c-66
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 reply delay: 1
Nov  7 14:28:40 dnsmasq-dhcp[39632]: 2132249441 DHCPOFFER(tape56ef56c-66)
100.101.1.59 a0:11:2c:33:44:2c

What kind of logs or Informations can help to understand what is happening?
I don't think that could be configuration missing/mistake because it works
for a long time and is not easy to reproduce.

Is there a config that could identify what's happening?

Thanks for any help

Luís Kleber
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20181108/0175c2d7/attachment-0001.html>


More information about the Dnsmasq-discuss mailing list