[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dhcp-client
Subject:    Help requested - dhclient 3.0rc12 and a cablemodem
From:       "Andrew Leach via ntlworld.com" <andrewleach () ntlworld ! com>
Date:       2001-09-19 20:09:01
[Download RAW message or body]

   *** From dhcp-client -- To unsubscribe, see the end of this message. ***

Hi,

I've configured my RedHat 7.1 linux system with a customised 2.4.9 kernel, Intel \
EtherPro100 network card and a Terayon Terajet cablemodem.

When I try to obtain an IP address from my ISP (NTL in the UK) using dhclient \
v3.0rc12 I see DHCPDISCOVER messages going out but no DHCPOFFERs, DCHPRESPONSEs, or \
DHCPACKs are being returned. I know the connection is working as my Win2k system \
works fine. So, I decided to monitor the network to see what Win2k was sending and \
try reproduce that on my linux system to see if I could get it to work.

This is what my Win2k system sends:
Frame    Time      Src MAC Addr    Dst MAC Addr    Protocol    Description      Src \
Other Addr     Dst Other Addr     Type Other Addr

2       2.234375     LOCAL      *BROADCAST      DHCP      Discover           \
(xid=5AD055E0)      0.0.0.0      255.255.255.255      + Frame: Base frame properties
+ ETHERNET: ETYPE = 0x0800 : Protocol = IP:  DOD Internet Protocol
+ IP: ID = 0xC6E; Proto = UDP; Len: 328
+ UDP: IP Multicast: Src Port: BOOTP Client, (68); Dst Port: BOOTP Server (67); \
Length = 308 (0x134)  DHCP: Discover           (xid=5AD055E0)
      DHCP: Op Code           (op)     = 1 (0x1)
      DHCP: Hardware Type     (htype)  = 1 (0x1) 10Mb Ethernet
      DHCP: Hardware Address Length (hlen) = 6 (0x6)
      DHCP: Hops              (hops)   = 0 (0x0)
      DHCP: Transaction ID    (xid)    = 1523602912 (0x5AD055E0)
      DHCP: Seconds           (secs)   = 0 (0x0)
      DHCP: Flags             (flags)  = 0 (0x0)
          DHCP: 1............... = Broadcast
      DHCP: Client IP Address (ciaddr) = 0.0.0.0
      DHCP: Your   IP Address (yiaddr) = 0.0.0.0
      DHCP: Server IP Address (siaddr) = 0.0.0.0
      DHCP: Relay  IP Address (giaddr) = 0.0.0.0
      DHCP: Client Ethernet Address (chaddr) = <my NT MAC address>
      DHCP: Server Host Name  (sname)  = <Blank>
      DHCP: Boot File Name    (file)   = <Blank>
      DHCP: Magic Cookie = 99.130.83.99
      DHCP: Option Field      (options)
          DHCP: DHCP Message Type      = DHCP Discover
          DHCP: AutoConfigure          = YES
          DHCP: Client-identifier      = (Type: 1) <my NT MAC address> 
          DHCP: Requested Address      = <a previously registered IP address> 
          DHCP: Host Name              = <NT hostname>
          DHCP: Client Class information = (Length: 8) 4d 53 46 54 20 35 2e 30 
          DHCP: Parameter Request List = (Length: 10) 01 0f 03 06 2c 2e 2f 1f 21 2b 
          DHCP: End of this option field

This is how I've configured my dhclient.conf file to try and reproduce the above:
    option autoconfigure code 251 = boolean;

    interface "eth0" {
        send autoconfigure on;
        send dhcp-client-identifier 01:<my registered MAC address>;
        send host-name "<Linux hostname>";
        send vendor-class-identifier "MSFT 5.0";
        request subnet-mask, domain-name, routers, domain-name-servers, \
netbios-name-servers, netbios-node-type, netbios-scope, router-discovery, \
static-routes, vendor-encapsulated-options;  prepend domain-name-servers \
194.168.4.100, 194.168.8.100;  media "media 10baseT/UTP";
       }

And now, this is what my Linux system sends using dhclient v3.0rc12 and the above \
config file: Frame    Time    Src MAC Addr    Dst MAC Addr    Protocol    Description \
Src Other Addr    Dst Other Addr    Type Other Addr

7    5.805000    INTEL nanana    *BROADCAST    DHCP    Discover           \
(xid=0784194B)    0.0.0.0    255.255.255.255      + Frame: Base frame properties
+ ETHERNET: ETYPE = 0x0800 : Protocol = IP:  DOD Internet Protocol
+ IP: ID = 0x0; Proto = UDP; Len: 328
+ UDP: IP Multicast: Src Port: BOOTP Client, (68); Dst Port: BOOTP Server (67); \
Length = 308 (0x134)  DHCP: Discover           (xid=0784194B)
      DHCP: Op Code           (op)     = 1 (0x1)
      DHCP: Hardware Type     (htype)  = 1 (0x1) 10Mb Ethernet
      DHCP: Hardware Address Length (hlen) = 6 (0x6)
      DHCP: Hops              (hops)   = 0 (0x0)
      DHCP: Transaction ID    (xid)    = 126097739 (0x784194B)
      DHCP: Seconds           (secs)   = 0 (0x0)
      DHCP: Flags             (flags)  = 0 (0x0)
          DHCP: 0............... = No Broadcast
      DHCP: Client IP Address (ciaddr) = 0.0.0.0
      DHCP: Your   IP Address (yiaddr) = 0.0.0.0
      DHCP: Server IP Address (siaddr) = 0.0.0.0
      DHCP: Relay  IP Address (giaddr) = 0.0.0.0
      DHCP: Client Ethernet Address (chaddr) = <my Linux MAC address>
      DHCP: Server Host Name  (sname)  = <Blank>
      DHCP: Boot File Name    (file)   = <Blank>
      DHCP: Magic Cookie = 99.130.83.99
      DHCP: Option Field      (options)
          DHCP: DHCP Message Type      = DHCP Discover
          DHCP: Host Name              = <Linux hostname>
          DHCP: AutoConfigure          = YES
          DHCP: Parameter Request List = (Length: 10) 01 0f 03 06 2c 2e 2f 1f 21 2b 
          DHCP: Client Class information = (Length: 8) 4d 53 46 54 20 35 2e 30 
          DHCP: Client-identifier      = (Type: 1) <my registered MAC address>
          DHCP: End of this option field

With the output from running dhclient below:
[root@<Linux hostname> /root]# dhclient -1
Internet Software Consortium DHCP Client V3.0rc12
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP

Listening on LPF/eth0/<my Linux MAC address>
Sending on   LPF/eth0/<my Linux MAC address>
Sending on   Socket/fallback
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 14
Trying medium "media 10baseT/UTP" 1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 16
No DHCPOFFERS received.
Unable to obtain a lease on first try.  Exiting.
[root@<Linux hostname> /root]# 

As you can see the DHCPDISCOVER packets are pretty simular, apart from the Broadcast \
flag and Request IP address option being set on my NT system. Reading the RFC2131 \
(DHCP) it suggests that the Broadcast flag should be set if a computer systems IP \
stack cannot handle being passed a unicast packet before an IP address has been \
registered. Here's an extract

    A client that cannot receive unicast IP datagrams until its protocol software has \
been configured with an IP address SHOULD   set the BROADCAST bit in the 'flags' \
field to 1 in any DHCPDISCOVER or DHCPREQUEST messages that client sends.   The \
BROADCAST bit will provide a hint to the DHCP server and BOOTP relay agent to \
broadcast any messages to the client   on the client's subnet. A client that can \
receive unicast IP datagrams before its protocol software has been configured SHOULD  \
clear the BROADCAST bit to 0. The BOOTP clarifications document discusses the \
ramifications of the use of the BROADCAST bit [21]. 

Consequently, I believe if I set the Broadcast flag on my linux system I will recieve \
a DHCPOFFER and things will burst into life (wishful thinking)!!!

Therefore, I need to know whether this behaviour is a bug/feature of dhclient 3.0rc12 \
or for someone to explain to me how I go about setting the broadcast flag on my linux \
system to true (hacking the source code of dhclient 3.0rc12 is NOT an option). Please \
can anyone assist me.

Thanks,
Andrew Leach

-----------------------------------------------------------------------
To unsubscribe from this list, visit http://www.isc.org/dhcp-lists.html
or send mail to dhcp-client-request@isc.org with the subject line of
'unsubscribe'.
-----------------------------------------------------------------------


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic