Load balancing appears not to work for certain clients..

Pete Clarke pete at devilincarnate.eclipse.co.uk
Fri May 25 12:24:42 UTC 2007


Hi there,

We have 2 ISC DHCP servers, running v3.05 on Solaris 10.

We generally don't have a problem with them, but for some reason, some
clients (specifically Nintendo DS's) fail to get an address.

If we disable the load balancing (i.e. shut one down) everything works
fine, it's only when the load balancing is in effect that some devices fail.

The main server config looks like:

ddns-update-style none;
authoritative;

# options global to all supported networks
log-facility local7;

# failover configuration
failover peer "dhcp" {
	primary;
	address 192.168.22.22;
	port 647;
	peer address 192.168.22.23;
	peer port 647;
	max-response-delay 30;
	max-unacked-updates 10;
	load balance max seconds 3;
	mclt 900;
	split 128;
}

# global options
option ip-forwarding off;

# specify the default filenames..
lease-file-name "/var/cache/dhcpd/dhcpd.leases";
pid-file-name "/var/run/dhcpd.pid";

# include local network configurations in the file(s) below:
include "/etc/dhcpd/networks.conf"

The secondary is:

ddns-update-style none;
authoritative;

# options global to all supported networks
log-facility local7;

# failover configuration
failover peer "dhcp" {
	secondary;
	address 192.168.22.23;
	port 647;
	peer address 192.168.22.22;
	peer port 647;
	max-response-delay 30;
	max-unacked-updates 10;
	load balance max seconds 3;
}

# global options
option ip-forwarding off;

# specify the default filenames..
lease-file-name "/var/cache/dhcpd/dhcpd.leases";
pid-file-name "/var/run/dhcpd.pid";

# include local network configurations in the file(s) below:
include "/etc/dhcpd/networks.conf";

The networks.conf file simply includes the pools we serve ... a typical
subnet looks like:

subnet 10.192.148.0 netmask 255.255.255.0 {
	pool {
		failover peer "dhcp";

 		# default lease time of 30 minutes
		default-lease-time 1800;

		# maximum lease time of 1 hour
		max-lease-time 3600;

		option subnet-mask 255.255.255.0;
		option routers 10.192.148.1;
		option domain-name "<DOMAIN NAME>";
		option domain-name-servers 192.168.22.22,192.168.22.23;

		range 10.192.148.20 10.192.148.254;

		allow unknown clients;

		# failover pools can not allow dynamic bootp
		deny dynamic bootp clients;
	}
}

What tends to happen is that in the logs we see "load balanced to peer
dhcp" on one side, but the other side appears not to get the request...
99% of all other requests/traffic is fine, it just fails on some clients
- but those that it does fail on *never* work..

I have snoop traces of the packets, and they're identical (apart from
things like checksum and hardware identifiers)...

Does anyone have any ideas?


Cheers,




Pete.



More information about the dhcp-users mailing list