Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jul 2012 15:14:26 GMT
From:      John Poznicek <johnpoz@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/170279: dhclient uses low TTL of 16
Message-ID:  <201207301514.q6UFEQgu048831@red.freebsd.org>
Resent-Message-ID: <201207301520.q6UFK9Y5038584@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         170279
>Category:       misc
>Synopsis:       dhclient uses low TTL of 16
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 30 15:20:09 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     John Poznicek
>Release:        8.3
>Organization:
none
>Environment:
freebsd# uname -a
FreeBSD freebsd.local.lan 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #0: Mon Jun 11 23:52:38 UTC 2012     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
dhclient uses by default ttl of 16, depending on isp this can prevent getting dhcp lease from dhcp server.

Helping user troubleshoot problem with freebsd based pfsense, user discovered that ttl of dhcp traffic was at 16, vs os default.

info can be found in this thread
http://forum.pfsense.org/index.php/topic,51803.0.html

Per packet.c in source, 
http://svnweb.freebsd.org/base/release/8.3.0/sbin/dhclient/packet.c?revision=234063&view=markup

p.ip_ttl = 16;

Verified this with tcpdump both on freebsd machine along with on dhcp server in local network.  TTL on dhcp traffic shows 16

10:09:51.512335 00:0c:29:9a:bc:8a (oui Unknown) > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 16, id 0, offset 0, flags [none], proto UDP (17), length 328)

With default dhclient user not able to get dhcp from his isp.  Using modified dhclient where packet.c p.ip_ttl changed 128 user was able to get IP from his ISP dhcp server.


>How-To-Repeat:
Request lease and check dhcp traffic for ttl.

10:09:51.512335 00:0c:29:9a:bc:8a (oui Unknown) > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 16, id 0, offset 0, flags [none], proto UDP (17), length 328)

>Fix:
Changed

p.ip_ttl = 16;

To be
p.ip_ttl = 128;

Ran make, used this new modified dhclient, verified via tcpdump that client was now setting ttl to 128

This allowed dhclient to obtain ip address from dhcp server.

10:04:47.893610 00:0c:29:9a:bc:8a (oui Unknown) > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)




>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207301514.q6UFEQgu048831>