vserver Howto/FAQ

Howto index

Using DHCP server in a vserver

Since 2.4.18ctx-9, this is possible, but there is a catch. The set_ipv4root assign one IP and one broadcast address to a vserver. UDP service listening to 0.0.0.0 (bind any) in a vserver are indeed listening to the vserver IP and vserver broadcast. This is all they will get. This is fine for most service.

Unfortunately, dhcpd is receiving special broadcasts. Its clients are unaware of their IP number, so they are using special broadcast 255.255.255.255 address.

A vserver generally runs with the broadcast address of the network device (the one used to setup the IP alias). This network device has a broadcast address which is never 255.255.255.255. Those special broadcast are not sent to the vserver. The solution is to set the IPROOTBCAST entry in the vserver configuration file like this

IPROOTBCAST=255.255.255.255

Restart your vserver and dhcpd will work. There is a catch (at least with 2.4.18ctx-9). If you are using other services in the save vserver, also relying on broadcast for proper operation (samba for one), they won't operate properly.

One solution would be to enhance the semantic a little: A vserver would listen for its IP address, its broadcast address and also for 255.255.255.255. The dhcpd case is probably very specific though.

Btw, we are running dhcpd in a vserver because we are using heartbeat to provide failover for this service as well.