Hello, Description of problem: Please consider the following scenario: a multihomed DHCP server (router), with two Ethernet cards, eth0 and eth1. Each card is supposed to have a single Ethernet segment attached to it, with exactly one IP class, say 192.168.1.0/24 for eth0 and 192.168.2.0/24 for eth1. take The dhcp configuration file is the attached one. As long as stations are configured in "fixed DHCP" (assigned by MAC), everything works well. If the administrator enters dynamic "range" clauses in the two subnets, the corresponding IP addreses are cross-assigned (i.e. stations from one Ethernet segment inadvertently take IP addreses from the other, resulting in no TCP/IP connectivity). There is no clue in the official Red Hat documentation how to treat this case, in the dhcp configuration file. Version-Release number of selected component (if applicable): dhcp-3.0.5-13.el5 (on stock CentOS 5.2 + all updates as of January 29th, 2009) How reproducible: Always. Steps to Reproduce: 1. Configure a multihomed DHCP server (and router, i.e. IP forwarding enabled) with two ethernet cards 2. Start DHCP server using a dhcpd.conf configuration file like the attached one 3. Observe server cross-assigning IP addreses between the two segments. Actual results: The server cross-assigns IP dynamic IP addreses between the Ethernet segments; there is no specific Red Hat documentation how to treat this case (DHCP chapter in the Deployment Guide). Expected results: The server should assign IP addresses segment by segment, keeping the two pools of addreses separated (by the physical Ethernet cards and by subnet declarations). A piece of documentation should exist about how to treat this particular case. Additional info: Please see related bug #435599.
Created attachment 330325 [details] dhcpd.conf configuration file, for testcase
Even this was reported on Red Hat/CentOS 5.2, I've hit this bug again in 5.4... Is there any way to link each subnet/IP class to the corresponding network interface (say 192.168.1.0/24 to eth0, 192.168.2.0/24 to eth1) ? Regards, Răzvan
Hi, sorry for such a big delay. Looking at your dhcpd.conf I think the problem is in the 'shared-network' statement. The 'shared-network' statement in your configuration tells the server that the two subnets are on the same network segment. The following change in your dhcpd.conf fixes the problem on my testing machine: --- dhcpd.conf.orig 2010-02-15 15:38:44.000000000 +0100 +++ dhcpd.conf 2010-02-15 15:57:05.000000000 +0100 @@ -5,7 +5,7 @@ ddns-update-style interim; ignore client-updates; -shared-network example { +#shared-network example { subnet 192.168.1.0 netmask 255.255.255.0 { authoritative; @@ -77,5 +77,5 @@ } -} +#}