Strange ip helper behaviour on 6850
Posted: 05 Jan 2011 10:05
Can someone think of a reason why the following works this way on a 6850, or is it really a bug ?
We have replaced some 7700's with 6850's. On the 6850 the behaviour of the ip helper is different then on the old 7700.
The IP helper is pointing to our DHCP server, and the ip helper forward delay is set to 0 (this is needed because some OCE printers allways set the timer to 0 in the DHCP requests).
On the 7700's the behaviour is as expected, DHCP broadcasts are sent to the DHCP server by the gateway address. The DHCP server sents the answer back to the gateway address, which relays it to the PC. When all is done, and the PC wants to renew it's IP address, it sents an unicast directly to the DHCP server, which responds with a direct answer.
On a 6850 the discovery works the same. The PC broadcasts a DHCP discover, the relay agent sents the request to the DHCP server, which answer to the gateway addres, which relays it to the PC. So far so good.
But now if the PC wants to renew it's address, it sents it to the DHCP server with an unicast. The DHCP server will now receive this packet from the PC, BUT also will receive a request from the gateway address for the same IP address. The DHCP server will respond to both requests, luckely with the same answer. So the PC received two answers. 1 from the DHCP server IP, and 1 from the gateway address.
On 1 location we have 2 6850 connected to each other, with only 1 6850 having an uplink. So if a PC connected to a L2 behind the second 6850 sents a DHCP renew, the first 6850 doubles the request as described above. And the second 6850 (the one with the uplinks) doubles these 2 packets, resulting the DHCP server received 4 requests, and answers them.
I've tested with software versions 6.1.3, 6.3.1 and 6.4.3.668.r01 and all show the same behaviour.
What is the reason for the IP helper to act in the case of a DHCP UDP unicast packet ? The function of the ip helper is only to "help" in case of a DHCP UDP broadcast packets as far as I know.
I can't think of any usefull situation where this is needed/helpfull. Am I missing something, or is this really a bug ?
We have replaced some 7700's with 6850's. On the 6850 the behaviour of the ip helper is different then on the old 7700.
The IP helper is pointing to our DHCP server, and the ip helper forward delay is set to 0 (this is needed because some OCE printers allways set the timer to 0 in the DHCP requests).
On the 7700's the behaviour is as expected, DHCP broadcasts are sent to the DHCP server by the gateway address. The DHCP server sents the answer back to the gateway address, which relays it to the PC. When all is done, and the PC wants to renew it's IP address, it sents an unicast directly to the DHCP server, which responds with a direct answer.
On a 6850 the discovery works the same. The PC broadcasts a DHCP discover, the relay agent sents the request to the DHCP server, which answer to the gateway addres, which relays it to the PC. So far so good.
But now if the PC wants to renew it's address, it sents it to the DHCP server with an unicast. The DHCP server will now receive this packet from the PC, BUT also will receive a request from the gateway address for the same IP address. The DHCP server will respond to both requests, luckely with the same answer. So the PC received two answers. 1 from the DHCP server IP, and 1 from the gateway address.
On 1 location we have 2 6850 connected to each other, with only 1 6850 having an uplink. So if a PC connected to a L2 behind the second 6850 sents a DHCP renew, the first 6850 doubles the request as described above. And the second 6850 (the one with the uplinks) doubles these 2 packets, resulting the DHCP server received 4 requests, and answers them.
I've tested with software versions 6.1.3, 6.3.1 and 6.4.3.668.r01 and all show the same behaviour.
What is the reason for the IP helper to act in the case of a DHCP UDP unicast packet ? The function of the ip helper is only to "help" in case of a DHCP UDP broadcast packets as far as I know.
I can't think of any usefull situation where this is needed/helpfull. Am I missing something, or is this really a bug ?