dhcp3-server vlan support seems to be broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dhcp3 (Ubuntu) |
Confirmed
|
Low
|
Unassigned | ||
isc-dhcp (Debian) |
Fix Released
|
Unknown
|
Bug Description
Binary package hint: dhcp3-server
Description: Ubuntu 8.10
Release: 8.10
dhcp3-server:
Installed: 3.1.1-1ubuntu2
Candidate: 3.1.1-1ubuntu2
Version table:
*** 3.1.1-1ubuntu2 0
500 http://
100 /var/lib/
libpcap-dev:
Installed: (none)
Candidate: 0.9.8-5
Version table:
0.9.8-5 0
500 http://
-- Let's have both an untagged "eth0" and a vlan "vlan2" which uses eth0 as it's raw device.
-- Assign 192.168.0.1/24 to eth0
-- and 192.168.3.1724 to vlan2.
-- Configure both subnets in dhcpd3.conf
When a request on the untagged network comes in, everything is fine: dhcpd receives and answers it on eth0.
Nov 8 10:33:49 grate dhcpd: DHCPDISCOVER from 00:0d:4b:0d:03:b8 via eth0
Nov 8 10:33:50 grate dhcpd: DHCPOFFER on 192.168.0.233 to 00:0d:4b:0d:03:b8 (RadioKueche) via eth0
When a request on the vlan comes in, dhcpd first receives and answers it on vlan2 (ok), then *also* on eth0 (not ok):
Nov 8 10:39:57 grate dhcpd: DHCPDISCOVER from 00:04:f2:16:9d:f2 via vlan2
Nov 8 10:39:57 grate dhcpd: DHCPDISCOVER from 00:04:f2:16:9d:f2 via eth0
Nov 8 10:39:58 grate dhcpd: DHCPOFFER on 192.168.3.252 to 00:04:f2:16:9d:f2 via vlan2
Nov 8 10:39:58 grate dhcpd: DHCPOFFER on 192.168.0.220 to 00:04:f2:16:9d:f2 via eth0
The box in question is dist-upgraded from 8.04. With 8.04, this seemingly did NOT happen: The vlan tagged request was only processed on vlan2.
Some investigation suggests, however, that this is a problem in dhcpd3 which just didn't always show up in 8.04. There is a change regarding the handling of VLAN packets and packet filters in kernel 2.6.27 which makes sure that vlan tagged packets are always presented to filters on the underlying device (eth0 in this case) with the vlan tag removed from the packet data. Previously (depending on the ethernet driver, from what I could understand) the raw data was also presented, but with the vlan tag still present.
Thus, before 2.6.27 and as a side-effect of not expecting the vlan tag, dhcpd's LPF code would filter the vlan tagged packet away as not a valid bootp/dhcp packet, and the dhcpd3 application code was only seeing the packet which was received via the "vlan2" device.
Starting with 2.6.27, the LPF code now matches for both the vlan2 received packet, and the eth0 received packet, thus causing above problem.
If the analysis is correct, this needs to be fixed upstream in dhcpd's linux interfacing code.
Changed in isc-dhcp (Debian): | |
status: | Unknown → New |
Changed in isc-dhcp (Debian): | |
status: | New → Fix Released |
Thank you for taking the time to report this bug and helping to make Ubuntu better. The issue that you reported is one that should be reproducible with the live environment of the Desktop CD of the development release - Karmic Koala. It would help us greatly if you could test with it so we can work on getting it fixed in the next release of Ubuntu. You can find out more about the development release at http:// www.ubuntu. com/testing/. Thanks again and we appreciate your help.