#798981 dnsmasq: dhcp offers not accepted by client

#798981#5
Date:
2015-09-14 17:17:01 UTC
From:
To:
Please forgive my vague title. It is a bug that has been hitting me for
some time, but since I had a work around, I never reported it. But doing
now. I hope I can explain it.



rrs@learner:/media/SSHD/rrs-home/devel/config_validator (master)$ cat /etc/network/interfaces.d/lxcbr0.conf
# This bridge will is used to NAT LXC containers' traffic
auto lxcbr0
iface lxcbr0 inet static
    #bridge_stp off
    address 172.16.10.1
    netmask 255.255.0.0
    #up ip link set dev lxcbr0 up
    #down ip link set dev lxcbr0 down
    pre-up brctl addbr lxcbr0
    post-down brctl delbr lxcbr0
    post-down echo 0 > /proc/sys/net/ipv4/ip_forward
    post-down echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
    #post-up iptables -A POSTROUTING -t nat -s 172.16.10.1/16 -j MASQUERADE
    #pre-down iptables -D POSTROUTING -t nat -s 172.16.10.1/16 -j MASQUERADE
    #post-up iptables -A FORWARD -i lxcbr0 -s 172.16.10.1/16 -j ACCEPT
    #pre-down iptables -D FORWARD -i lxcbr0 -s 172.16.10.1/16 -j ACCEPT
    # add checksum so that dhclient does not complain.
    # udp packets staying on the same host never have a checksum filled else
    post-up iptables -A POSTROUTING -t mangle -p udp --dport bootpc -s 172.16.0.0/16 -j CHECKSUM --checksum-fill
    pre-down iptables -D POSTROUTING -t mangle -p udp --dport bootpc -s 172.16.0.0/16 -j CHECKSUM --checksum-fill
2015-09-14 / 22:35:20 ♒♒♒  ☺


This is what my bridge interface is. I like it this way, because I can
instrcut both, Containers and Virtual Machines, to bind to this bridge,
and then I can focus on all my management on this interface. And all the
VMs and Containers get to talk to each other on the bridge.


I use dnsmasq to serve the DHCP requests. My settings are as defined
below:

rrs@learner:/media/SSHD/rrs-home/devel/config_validator (master)$ cat /etc/dnsmasq.d/50myLXC
# Bind it to the LXC interface
interface=lxcbr0
bind-interfaces

# Want DHCP client FQDN
#dhcp-fqdn

# Domain name and ip range with lease time
domain=lxc.local,172.16.10.0/16
#dhcp-range=192.168.122.100,192.168.122.200,1h
dhcp-range=lxcbr0,172.16.10.10,172.16.10.200,1h

# DHCP options
dhcp-option=40,lxc.local
log-dhcp
2015-09-14 / 22:37:49 ♒♒♒  ☺



The name got stuck because I started with configuring it for containers,
but I use the same setup for the VMs. In VirtualBox, for each Guest VM,
I choose "Bridged Adapter" as the setting.


The problem:

I use my laptopt as usual. Multiple suspends/resumes. And then I just
fire up a Guest VM. And it timesout in getting a DHCP address.

In the logs, it shows that the DHCP address was offered.

Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 next server: 172.16.10.1
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 broadcast response
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  1 option: 53 message-type  2
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 51 lease-time  1h
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 58 T1  30m
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 59 T2  52m30s
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:18:54 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 available DHCP range: 172.16.10.10 -- 172.16.10.200
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 client provides name: debian
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 DHCPDISCOVER(lxcbr0) 172.16.10.77 08:00:27:ec:39:96
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 tags: lxcbr0
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 DHCPOFFER(lxcbr0) 172.16.10.77 08:00:27:ec:39:96
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 next server: 172.16.10.1
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 broadcast response
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  1 option: 53 message-type  2
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 51 lease-time  1h
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 58 T1  30m
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 59 T2  52m30s
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:18:57 learner dnsmasq-dhcp[1407]: 1240112453 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 available DHCP range: 172.16.10.10 -- 172.16.10.200
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 client provides name: debian
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 DHCPDISCOVER(lxcbr0) 172.16.10.77 08:00:27:ec:39:96
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 tags: lxcbr0
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 DHCPOFFER(lxcbr0) 172.16.10.77 08:00:27:ec:39:96
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 next server: 172.16.10.1
Sep 14 22:19:01 learner dnsmasq-dhcp[1407]: 1240112453 broadcast response



But the client times out waiting for the IP address.


Then I just restarted the dnsmasq service:

Sep 14 22:29:03 learner systemd[1]: Stopping dnsmasq - A lightweight DHCP and caching DNS server...
Sep 14 22:29:03 learner dnsmasq[1407]: no servers found in /var/run/dnsmasq/resolv.conf, will retry
Sep 14 22:29:05 learner systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Sep 14 22:29:05 learner systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Sep 14 22:29:05 learner dnsmasq[1547]: dnsmasq: syntax check OK.
Sep 14 22:29:05 learner dnsmasq[1556]: started, version 2.75 cachesize 150
Sep 14 22:29:05 learner dnsmasq[1556]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
Sep 14 22:29:05 learner dnsmasq-dhcp[1556]: DHCP, IP range 172.16.10.10 -- 172.16.10.200, lease time 1h
Sep 14 22:29:05 learner dnsmasq-dhcp[1556]: DHCP, sockets bound exclusively to interface lxcbr0
Sep 14 22:29:05 learner dnsmasq[1556]: no servers found in /var/run/dnsmasq/resolv.conf, will retry
Sep 14 22:29:05 learner dnsmasq[1556]: read /etc/hosts - 10 addresses
Sep 14 22:29:05 learner dnsmasq[1556]: reading /var/run/dnsmasq/resolv.conf
Sep 14 22:29:05 learner dnsmasq[1556]: using nameserver 192.168.1.1#53
Sep 14 22:29:11 learner systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.



And now, when I boot the Guest VMs, they do get the IP. Logs below:


Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 available DHCP range: 172.16.10.10 -- 172.16.10.200
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 client provides name: debian
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 DHCPDISCOVER(lxcbr0) 172.16.10.40 08:00:27:5a:d8:7a
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 tags: lxcbr0
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 DHCPOFFER(lxcbr0) 172.16.10.40 08:00:27:5a:d8:7a
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 next server: 172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  1 option: 53 message-type  2
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 51 lease-time  1h
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 58 T1  30m
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 59 T2  52m30s
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 available DHCP range: 172.16.10.10 -- 172.16.10.200
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 client provides name: debian
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 DHCPREQUEST(lxcbr0) 172.16.10.40 08:00:27:5a:d8:7a
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 tags: lxcbr0
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 DHCPACK(lxcbr0) 172.16.10.40 08:00:27:5a:d8:7a debian
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 next server: 172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  1 option: 53 message-type  5
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 51 lease-time  1h
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 58 T1  30m
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 59 T2  52m30s
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:30:07 learner dnsmasq-dhcp[1556]: 3774021946 sent size:  6 option: 12 hostname  debian

And this one for the BSD VM.


Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 client provides name: debian-bsd
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 DHCPDISCOVER(lxcbr0) 172.16.10.108 08:00:27:46:31:d7
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 tags: lxcbr0
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 DHCPOFFER(lxcbr0) 172.16.10.108 08:00:27:46:31:d7
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 next server: 172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  1 option: 53 message-type  2
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 51 lease-time  1h
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 58 T1  30m
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 59 T2  52m30s
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 available DHCP range: 172.16.10.10 -- 172.16.10.200
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 client provides name: debian-bsd
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 DHCPREQUEST(lxcbr0) 172.16.10.108 08:00:27:46:31:d7
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 tags: lxcbr0
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 DHCPACK(lxcbr0) 172.16.10.108 08:00:27:46:31:d7 debian-bsd
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 1:netmask, 28:broadcast, 2:time-offset, 3:router,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 15:domain-name, 6:dns-server, 119:domain-search,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 12:hostname, 44:netbios-ns, 47:netbios-scope,
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 requested options: 26:mtu, 121:classless-static-route, 42:ntp-server
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 next server: 172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  1 option: 53 message-type  5
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 54 server-identifier  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 51 lease-time  1h
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 58 T1  30m
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 59 T2  52m30s
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  1 netmask  255.255.0.0
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option: 28 broadcast  172.16.255.255
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  3 router  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  4 option:  6 dns-server  172.16.10.1
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size:  9 option: 15 domain-name  lxc.local
Sep 14 22:30:58 learner dnsmasq-dhcp[1556]: 2713556075 sent size: 10 option: 12 hostname  debian-bsd



So, this is how I concluded to file it against dnsmasq.


And, thank you for dnsmasq. It is one of the most useful and important
tool in my daily life.

#798981#10
Date:
2015-09-26 21:08:35 UTC
From:
To:
It's a fairly tall order to reproduce this, but I have one idea. What
is the MAC address associated with lxcbr0? Is it possible that that is
changing as a result of the suspend/resume cycle?


Cheers,

Simon.

#798981#15
Date:
2015-09-27 09:58:04 UTC
From:
To:
Hello Simon,

Thanks for the pointer. I never had paid attention to the MAC.

So when nothing is in use, the status of the bridge interface is:

rrs@learner:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc
noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00
brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft
forever preferred_lft forever
    inet6 ::1/128 scope host

 valid_lft forever preferred_lft forever
2: wlan0:
<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group
default qlen 1000
    link/ether 2c:33:7a:8e:d6:2f brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic wlan0

      valid_lft 6618sec preferred_lft 6618sec
    inet6
fe80::2e33:7aff:fe8e:d62f/64 scope link
       valid_lft forever
preferred_lft forever
3: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu
1500 qdisc noqueue state DOWN group default
    link/ether
00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 172.16.10.1/16 brd
172.16.255.255 scope global lxcbr0
       valid_lft forever
preferred_lft forever
    inet6 fe80::20d8:7aff:fe71:53a5/64 scope link

      valid_lft forever preferred_lft forever
2015-09-27 / 15:23:22 ♒♒♒
 ☺



And interestingly, based on which VM / Container starts, the bridge interface gets a matching MAC address.

When booting a Fedora Container:

rrs@learner:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
group default qlen 1000
    link/ether 2c:33:7a:8e:d6:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic wlan0
       valid_lft 6730sec preferred_lft 6730sec
    inet6 fe80::2e33:7aff:fe8e:d62f/64 scope link
       valid_lft forever preferred_lft forever
3: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
    link/ether e2:29:b7:8d:a0:4e brd ff:ff:ff:ff:ff:ff
    inet 172.16.10.1/16 brd 172.16.255.255 scope global lxcbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d8:7aff:fe71:53a5/64 scope link
       valid_lft forever preferred_lft forever
6: vb-fedoraTempl@if2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
qdisc pfifo_fast master lxcbr0 state LOWERLAYERDOWN group default qlen
1000
    link/ether e2:29:b7:8d:a0:4e brd ff:ff:ff:ff:ff:ff link-netnsid 0
2015-09-27 / 15:21:30 ♒♒♒  ☺


When booting a Debian container.


rrs@learner:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
group default qlen 1000
    link/ether 2c:33:7a:8e:d6:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic wlan0
       valid_lft 6596sec preferred_lft 6596sec
    inet6 fe80::2e33:7aff:fe8e:d62f/64 scope link
       valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
state UP group default
    link/ether 96:07:08:fd:b1:af brd ff:ff:ff:ff:ff:ff
    inet 172.16.10.1/16 brd 172.16.255.255 scope global lxcbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d8:7aff:fe71:53a5/64 scope link
       valid_lft forever preferred_lft forever
7: vb-debTemplate@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast master lxcbr0 state UP group default qlen 1000
    link/ether 96:07:08:fd:b1:af brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::9407:8ff:fefd:b1af/64 scope link
       valid_lft forever preferred_lft forever
2015-09-27 / 15:23:44 ♒♒♒  ☺



In both the cases, the bridge has the same MAC ID that was (auto)
assigned to the vif.

#798981#20
Date:
2015-09-27 15:49:25 UTC
From:
To:
I realized I did not clearly answer this part of the question. But I
think if the bridge is not in use by a VM/Container, it would be DOWN
and not having a MAC.

#798981#25
Date:
2015-09-29 21:15:00 UTC
From:
To:
A quick Google found this:


http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynam
ic-ports/

which appears to be relevant.

AFAIK dnsmasq doesn't explicitly store the MAC address of the
interface on which it's listening, but the MAC address will appear in
ARP entries, so there's a possibility of a mismatch there. It might be
worth following the procedure in that link and nailing the MAC address
of the bridge, to see if that helps.

Another possibility is this:

Sep 14 22:29:05 learner dnsmasq-dhcp[1556]: DHCP, sockets bound
exclusively to interface lxcbr0

Which tells you that dnsmasq called the sockopt SO_BINDTODEVICE on the
socket used for DHCP. It's possible that the identify of the interface
is changing enough to affect that. An easy test for this theory is to
remove

bind-interfaces

from your dnsmasq configuration.



Cheers,

Simon.