Simon,
Okay. It doesn't appear to be the IP tables, but I did some digging.
If I run tcpdump on the host I get:
[0]akutz@legacy:~$ sudo tcpdump -ni en1 'udp port 67 and udp port 68'
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
14:57:16.591186 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP,
Request from 00:18:8b:3e:29:3c, length 272
14:57:32.873143 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP,
Request from 00:23:df:58:53:3a, length 300
14:57:32.879882 IP 172.25.0.2.67 > 255.255.255.255.68: BOOTP/DHCP,
Reply, length 303
14:58:20.489057 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP,
Request from 00:18:8b:3e:29:3c, length 272
^C
4 packets captured
1086 packets received by filter
0 packets dropped by kernel
So it appears as if the VM's NIC, (coming from 0.0.0.0.68) is sending
a DHCP request to the broadcast address of the host's subnet and
getting a response from the DHCP server on the host's subnet, not the
DHCP server included with dnsmasq. I can verify this by looking at the
logs in the VM (OpenSUSE 11) in /var/log/messages. This line appears
over and over again:
linux dhclient; DHCPDISCOVER on eth0 to 255.255.255.255 port 67
interval x
I would think that this is a fairly normal set up, so what am I doing
incorrectly that the dnsmasq server isn't catching the DHCP request?
For completeness, here is the output from dnsmasq:
[130]akutz@legacy:src$ sudo ./dnsmasq -a 192.168.3.1 -b -f -F
192.168.3.15,192.168.3.254,255.255.255.0,192.168.3.255,1h -K -l /opt/
akin/dnsmasq.leases -d
dnsmasq: started, version 2.49 cachesize 150
dnsmasq: compile time options: IPv6 no-GNU-getopt no-DBus no-I18N DHCP
TFTP
dnsmasq: setting --bind-interfaces option because of OS limitations
dnsmasq-dhcp: DHCP, IP range 192.168.3.15 -- 192.168.3.254, lease time
1h
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 172.16.100.250#53
dnsmasq: using nameserver 172.25.0.2#53
dnsmasq: read /etc/hosts - 5 addresses
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPDISCOVER(vboxnet0) 08:00:27:3f:36:92
dnsmasq-dhcp: DHCPOFFER(vboxnet0) 192.168.3.165 08:00:27:3f:36:92
Thanks!
--
-a
"Only two things are infinite, the universe and human stupidity, and
I'm not sure about the former." -- Einstein
On Aug 27, 2009, at 10:53 AM, Simon Kelley wrote:
Schley Andrew Kutz wrote:
I am attempting to use dnsmasq to more fully supply functionality
for my own project, akin (http://akutz.wordpress.com/2009/08/20/building-a-better-os-x-firewall-or-how-i-solved-the-nat-problem-for-virtualbox
). The DNS portion is working great, but DHCP requests are stuck
in an endless loop of DISCOVER,OFFER.
The options I use are:
sudo ./dnsmasq -a 192.168.3.1 -b -f -F
192.168.3.15,192.168.3.254,255.255.255.0,192.168.3.255,1h -K -l /
opt/ akin/dnsmasq.leases -d
I thought it might be an IP tables issue, but I set my deny rule
to log and no packets are getting dropped. Besides, I have a
static allowance for all traffic on the virtual interface that dns
masq is operating on.
Thoughts?
Look at the logs on the clients to see if they are getting the
OFFERs. If not look again at iptables.
Simon.