Bug 166926 - dhcp ignores "option interface-mtu 9000;" in dhcpd.conf
dhcp ignores "option interface-mtu 9000;" in dhcpd.conf
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: dhcp (Show other bugs)
4
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jason Vas Dias
: FutureFeature
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-08-27 21:37 EDT by Larry Dillon
Modified: 2007-11-30 17:11 EST (History)
1 user (show)

See Also:
Fixed In Version: 3.0.2-20
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-09-05 02:10:11 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Larry Dillon 2005-08-27 21:37:45 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050720 Fedora/1.0.6-1.1.fc4 Firefox/1.0.6

Description of problem:
In /etc/dhcpd.conf, option interface-mtu 9000; is ignored by either the client or the server, not sure how to know which.

Non-standard MTU's (eg., not 1500) have not worked in Linux DHCP in the two years I've been trying.

MTU's > 1500 (aka "Jumbo Frames") are only supported on gigabit NIC's AFAIK.

Version-Release number of selected component (if applicable):
dhcp-3.0.2-14.FC4.i386

How reproducible:
Always

Steps to Reproduce:
1.given a working DHCP client and server with gigabit NIC's and jumbo frame clean switch,
2. add the line "option interface-mtu 9000;" to /etc/dhcpd.conf
3. client fails to obtain specified MTU.
  

Actual Results:  /sbin/ifconfig shows:
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Expected Results:  /sbin/ifconfig should show:
UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1

Additional info:

if, on the client, one does "/sbin/ifconfig eth0 mtu 9000" , the client accepts the MTU value.

The work-around is putting the above line in /etc/rc.local, but this fails to work on a network restart.
Comment 1 Jason Vas Dias 2005-08-29 19:45:15 EDT
This is now fixed with: 
{dhcp,dhclient}-3.0.2-20_FC4 (submitted to FC4 HEAD revision and to fc4-updates) 
{dhcp,dhclient}-3.0.3-4 (Rawhide) and
{dhcp,dhclient}-3.0.3-4_FC4 (DHCP 3.0.3 compiled for FC4, available at: 
                             http://people.redhat.com/~jvdias/dhcp/FC4 ) .

The dhcpd and dhclient binaries always handled the interface-mtu option fine:
o On the server, dhcpd.conf contains an interface-mtu setting, eg.
' subnet ... { ... interface-mtu 9000; ... } '

o On the client, the generic /etc/dhclient.conf file or the per-interface ($IF)
  specific /etc/dhclient-${IF}.conf file MUST contain a 'request' option
  containing 'interface-mtu'; ie, if you want dhclient to request all the 
  default options AND interface-mtu, /etc/dhclient{,$IF}.conf must contain :
  'request subnet-mask,  broadcast-address,  time-offset,  routers,
           domain-name,  domain-name-servers, host-name,  nis-domain,
           nis-servers,  ntp-servers, interface-mtu;
  '

Then the dhcpd server sends the interface-mtu option and the dhclient 
receives it.

But the dhclient-script was taking no account of any ${new_interface_mtu} 
option that may have been placed in its environment by dhclient.

The new dhclient-script does make the MTU setting if an interface-mtu option
is set :
    if [ -n ${new_interface_mtu} ]; then
       /sbin/ip link set $interface mtu $new_interface_mtu ;
    fi;

To enable handling of other site-specific (non-default) DHCP options,
I've added support for interface UP/DOWN hooks to dhclient script; when
an interface $IF is being brought up with a new address / routes, then
  if the /etc/dhclient-${IF}-up-hooks script exists, it is sourced immediately
    after the interface named $IF has been brought up.
  else
  if the /etc/dhclient-up-hooks script exists, it is sourced immediately
    after any interface has been brought up .
 
When an interface $IF is being brought down:
  if the /etc/dhclient-${IF}-down-hooks script exists, it is sourced 
    immediately before the interface named $IF is to be brought down.
  else
  if the /etc/dhclient-down-hooks script exists, it is sourced 
    immediately before any interface is to be brought down .

In addition, if the default option 'time-offset' is specified, dhclient-script
now handles it.


Note You need to log in before you can comment on or make changes to this bug.