Incorrect "Server Identifier" in DHCPACK?



  • I have a situation where the following happens between WAN on my pfsense 2.1 box and my ISP:

    Feb 6 22:21:44 	pfSense dhclient[22956]: DHCPREQUEST on em0 to 255.255.255.255 port 67
    Feb 6 22:21:44 	pfSense dhclient[22956]: DHCPACK from <isp dhcp="" server="" public="" ip="">
     <snip>Feb 6 22:21:45 	pfSense dhclient[22956]: bound to <wan public="" ip=""> -- renewal in 3600 seconds.
     <snip>Feb 6 23:21:44 	pfSense dhclient[29195]: DHCPREQUEST on em0 to <isp dhcp="" server="" private="" ip="">
     port 67</isp></snip></wan></snip></isp>
    

    The initial DHCP request works fine and I get an ack back from the ISP.
    However, on the next lease renewal request, dhclient attempts to use the private IP for the ISP DHCP server, which of course is not reachable.

    After a packet capture on WAN, I can see that the "Server Identifier" option field in the DHCPACK contains the private IP address of the ISP DHCP server.

    I assume that this should contain the public IP of the ISP DHCP server instead, but I'm not sure.
    I tried to find the answer in http://tools.ietf.org/html/rfc2131, but I didn't see anything clarifying which address should be used on a renew request.

    Can anyone tell me if the "Server Identifier" option field in the DHCPACK is indeed incorrect?
    Or is dhclient supposed to use another field from DHCPACK for a renew request (like the relay agent IP address for example)?