Vendor-class-identifier Option 60 woes

Randall C Grimshaw rgrimsha at syr.edu
Mon Dec 21 13:53:45 UTC 2009


Grahm:

You probably just need a variation of a PXEboot

option space SYMBOLboot;
#option SYMBOLboot.server code 186 = ip-address;
option SYMBOLboot.server  code 186 = string;
class " SYMBOLboot " {
  match option vendor-class-identifier;
}
subclass "SYMBOLboot" " SymbolWS.RFS6000-4.1.0.0-042R"
{
  vendor-option-space SYMBOLboot;
  #option SYMBOLboot.server 10.0.0.1;
  option SYMBOLboot.server  "tftp/10.0.0.1";
}

From: dhcp-users-bounces+rgrimsha=syr.edu at lists.isc.org [mailto:dhcp-users-bounces+rgrimsha=syr.edu at lists.isc.org] On Behalf Of Graham Bishop
Sent: Monday, December 21, 2009 5:04 AM
To: dhcp-users at lists.isc.org
Subject: Vendor-class-identifier Option 60 woes

Hi,

I have been struggling to find an understandable guide to getting a switch to pick up some vendor options via dhcpd.

I have captured the output of the entire dhcp discover, offer, request and ACK process and tried to manipulate samples of peoples configurations to make it work, but as of yet no luck.

Please can I ask that a more experienced dhcpd.conf writer take a look and let me know how to pass "option 186  = tftp / ftp address" in response to the vendor-class-identifier request from the client?

Output:

tcpdump:

00:58:05.817153 IP (tos 0x10, ttl 16, id 6, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 00:15:70:d9:85:06, length 300, xid 0x6b55630, secs 36, Flags [none] (0x0000)
          Client-Ethernet-Address 00:15:70:d9:85:06
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Parameter-Request Option 55, length 7:
              Subnet-Mask, BR, Time-Zone, Default-Gateway
              Domain-Name, Domain-Name-Server, Hostname
            Vendor-Class Option 60, length 29: "SymbolWS.RFS6000-4.1.0.0-042R"
            END Option 255, length 0
            PAD Option 0, length 0, occurs 16
00:58:06.000208 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 10.0.0.1.bootps > 10.0.0.245.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x6b55630, secs 36, Flags [none] (0x0000)
          Your-IP 10.0.0.245
          Server-IP 10.0.0.1
          Client-Ethernet-Address 00:15:70:d9:85:06
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Offer
            Server-ID Option 54, length 4: 10.0.0.1
            Lease-Time Option 51, length 4: 21600
            Subnet-Mask Option 1, length 4: 255.255.0.0
            Default-Gateway Option 3, length 4: 10.0.0.1
            Domain-Name-Server Option 6, length 4: 10.0.0.1
            END Option 255, length 0
            PAD Option 0, length 0, occurs 26
00:58:06.000983 IP (tos 0x10, ttl 16, id 7, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 00:15:70:d9:85:06, length 300, xid 0x6b55630, secs 36, Flags [none] (0x0000)
          Client-Ethernet-Address 00:15:70:d9:85:06
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request
            Server-ID Option 54, length 4: 10.0.0.1
            Requested-IP Option 50, length 4: 10.0.0.245
            Parameter-Request Option 55, length 7:
              Subnet-Mask, BR, Time-Zone, Default-Gateway
              Domain-Name, Domain-Name-Server, Hostname
            Vendor-Class Option 60, length 29: "SymbolWS.RFS6000-4.1.0.0-042R"
            END Option 255, length 0
            PAD Option 0, length 0, occurs 4
00:58:06.006451 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 10.0.0.1.bootps > 10.0.0.245.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x6b55630, secs 36, Flags [none] (0x0000)
          Your-IP 10.0.0.245
          Server-IP 10.0.0.1
          Client-Ethernet-Address 00:15:70:d9:85:06
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 10.0.0.1
            Lease-Time Option 51, length 4: 21600
            Subnet-Mask Option 1, length 4: 255.255.0.0
            Default-Gateway Option 3, length 4: 10.0.0.1
            Domain-Name-Server Option 6, length 4: 10.0.0.1
            END Option 255, length 0
            PAD Option 0, length 0, occurs 26

The client repeats the "Vendor-Class Option 60, length 29: "SymbolWS.RFS6000-4.1.0.0-042R", but I cannot match this to a class to pass back the required option 186?

I have the following at the moment:

ddns-update-style interim;
ignore client-updates;

option space PXE;
option PXE.ftp-ip    code 186 = string;

class "Syms" {
      log(debug, substring(option vendor-class-identifier, 0, 4));
      match if substring (option vendor-class-identifier, 0, 4) = 53:79:6d:62;
                          }
subnet 10.0.0.0 netmask 255.255.0.0 {
      range dynamic-bootp           10.0.0.245 10.0.0.247;
      option routers                10.0.0.1;
      option subnet-mask            255.255.0.0;
      option nis-domain             "linux.site";
      option domain-name-servers    10.0.0.1;
      default-lease-time            21600;
      max-lease-time                43200;
      next-server                   10.0.0.1;
      option tftp-server-name "10.0.0.1";

pool {
        allow members of "Syms";
        option PXE.ftp-ip "tftp://10.0.0.1";
        vendor-option-space PXE;
        range 10.0.0.248 10.0.0.253;
}
}

A basic topology of the network may help?
It is one server running dhcpd (fedora 10) with one switch (the client) plugged in at a time.  This dhcpd.conf will be used to upgrade firmware / configs etc.

The release notes of the switch suggest that it needs this vendor-class and that there are other options it will take other than 186.
I have tried using various combinations of the hex that is returned in a packet sniffer and found that SymbolWS.RFS6000-4.1.0.0-042R in hex 53796d626f6c57532e524653363030302d342e312e302e302d30343252 so began trying to play with vendor-encapsulation options.

Frame 1 (342 bytes on wire, 342 bytes captured)
    Arrival Time: Dec 18, 2009 09:42:15.636302000
    [Time delta from previous captured frame: 0.000000000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 0.000000000 seconds]
    Frame Number: 1
    Frame Length: 342 bytes
    Capture Length: 342 bytes
    [Frame is marked: False]
    [Protocols in frame: eth:ip:udp:bootp]
    [Coloring Rule Name: UDP]
    [Coloring Rule String: udp]
Ethernet II, Src: SymbolTe_d9:85:06 (00:15:70:d9:85:06), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Destination: Broadcast (ff:ff:ff:ff:ff:ff)
        Address: Broadcast (ff:ff:ff:ff:ff:ff)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
        .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
    Source: SymbolTe_d9:85:06 (00:15:70:d9:85:06)
        Address: SymbolTe_d9:85:06 (00:15:70:d9:85:06)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
    Type: IP (0x0800)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x10 (DSCP 0x04: Unknown DSCP; ECN: 0x00)
        0001 00.. = Differentiated Services Codepoint: Unknown (0x04)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 328
    Identification: 0x0006 (6)
    Flags: 0x00
        0.. = Reserved bit: Not Set
        .0. = Don't fragment: Not Set
        ..0 = More fragments: Not Set
    Fragment offset: 0
    Time to live: 16
    Protocol: UDP (0x11)
    Header checksum: 0xa990 [correct]
        [Good: True]
        [Bad : False]
    Source: 0.0.0.0 (0.0.0.0)
    Destination: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
    Source port: bootpc (68)
    Destination port: bootps (67)
    Length: 308
    Checksum: 0x6024 [validation disabled]
        [Good Checksum: False]
        [Bad Checksum: False]
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x07d173cb
    Seconds elapsed: 39
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: SymbolTe_d9:85:06 (00:15:70:d9:85:06)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
        Option: (53) DHCP Message Type
        Length: 1
        Value: 01
    Option: (t=55,l=7) Parameter Request List
        Option: (55) Parameter Request List
        Length: 7
        Value: 011C02030F060C
        1 = Subnet Mask
        28 = Broadcast Address
        2 = Time Offset
        3 = Router
        15 = Domain Name
        6 = Domain Name Server
        12 = Host Name
    Option: (t=60,l=29) Vendor class identifier = "SymbolWS.RFS6000-4.1.0.0-042R"
        Option: (60) Vendor class identifier
        Length: 29
        Value: 53796D626F6C57532E524653363030302D342E312E302E30...
    End Option
    Padding



I'm afraid I am a little lost now with not knowing what is needed and what is stopping it working etc.

Any help, gratefully received and apologies for the lengthy mail.

Graham.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20091221/b2a46f0f/attachment.html>


More information about the dhcp-users mailing list