<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:10.0pt'>Grahm:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>You probably just need a
variation of a PXEboot<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>option space SYMBOLboot;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>#option </span><span
style='font-family:"Arial","sans-serif"'>SYMBOLboot</span><span
style='font-family:"Arial","sans-serif"'>.server code 186 = ip-address;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>option </span><span
style='font-family:"Arial","sans-serif"'>SYMBOLboot</span><span
style='font-family:"Arial","sans-serif"'>.server  code 186 = string;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>class "</span><span
style='font-family:"Arial","sans-serif"'> SYMBOLboot</span><span
style='font-family:"Arial","sans-serif"'> " {<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>  match
option vendor-class-identifier;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>}<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>subclass
"SYMBOLboot" "</span><span style='font-family:"Arial","sans-serif"'>
SymbolWS.RFS6000-4.1.0.0-042R</span><span style='font-family:"Arial","sans-serif"'>"</span><span
style='font-family:"Arial","sans-serif"'><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>{<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'> 
vendor-option-space SYMBOLboot;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>  #option SYMBOLboot.server
</span><span style='font-family:"Arial","sans-serif"'>10.0.0.1</span><span
style='font-family:"Arial","sans-serif"'>;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>  option SYMBOLboot.server 
"tftp/10.0.0.1";<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Arial","sans-serif"'>}<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
dhcp-users-bounces+rgrimsha=syr.edu@lists.isc.org [mailto:dhcp-users-bounces+rgrimsha=syr.edu@lists.isc.org]
<b>On Behalf Of </b>Graham Bishop<br>
<b>Sent:</b> Monday, December 21, 2009 5:04 AM<br>
<b>To:</b> dhcp-users@lists.isc.org<br>
<b>Subject:</b> Vendor-class-identifier Option 60 woes<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div>

<div>

<div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:10.0pt'>Hi,<br>
<br>
I have been struggling to find an understandable guide to getting a switch to
pick up some vendor options via dhcpd.<br>
<br>
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.<br>
<br>
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?<br>
<br>
Output:<br>
<br>
tcpdump:<br>
<br>
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)<br>
          Client-Ethernet-Address
00:15:70:d9:85:06<br>
          Vendor-rfc1048
Extensions<br>
            Magic Cookie
0x63825363<br>
            DHCP-Message
Option 53, length 1: Discover<br>
           
Parameter-Request Option 55, length 7:<br>
             
Subnet-Mask, BR, Time-Zone, Default-Gateway<br>
             
Domain-Name, Domain-Name-Server, Hostname<br>
            Vendor-Class
Option 60, length 29: "SymbolWS.RFS6000-4.1.0.0-042R"<br>
            END Option
255, length 0<br>
            PAD Option
0, length 0, occurs 16<br>
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)<br>
          Your-IP 10.0.0.245<br>
          Server-IP 10.0.0.1<br>
          Client-Ethernet-Address
00:15:70:d9:85:06<br>
          Vendor-rfc1048
Extensions<br>
            Magic Cookie
0x63825363<br>
            DHCP-Message
Option 53, length 1: Offer<br>
            Server-ID
Option 54, length 4: 10.0.0.1<br>
            Lease-Time
Option 51, length 4: 21600<br>
            Subnet-Mask
Option 1, length 4: 255.255.0.0<br>
           
Default-Gateway Option 3, length 4: 10.0.0.1<br>
            Domain-Name-Server
Option 6, length 4: 10.0.0.1<br>
            END Option
255, length 0<br>
            PAD Option
0, length 0, occurs 26<br>
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)<br>
          Client-Ethernet-Address
00:15:70:d9:85:06<br>
          Vendor-rfc1048
Extensions<br>
            Magic Cookie
0x63825363<br>
            DHCP-Message
Option 53, length 1: Request<br>
            Server-ID
Option 54, length 4: 10.0.0.1<br>
            Requested-IP
Option 50, length 4: 10.0.0.245<br>
           
Parameter-Request Option 55, length 7:<br>
             
Subnet-Mask, BR, Time-Zone, Default-Gateway<br>
             
Domain-Name, Domain-Name-Server, Hostname<br>
            Vendor-Class
Option 60, length 29: "SymbolWS.RFS6000-4.1.0.0-042R"<br>
            END Option
255, length 0<br>
            PAD Option
0, length 0, occurs 4<br>
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)<br>
          Your-IP 10.0.0.245<br>
          Server-IP 10.0.0.1<br>
          Client-Ethernet-Address
00:15:70:d9:85:06<br>
          Vendor-rfc1048
Extensions<br>
            Magic Cookie
0x63825363<br>
            DHCP-Message
Option 53, length 1: ACK<br>
            Server-ID
Option 54, length 4: 10.0.0.1<br>
            Lease-Time
Option 51, length 4: 21600<br>
            Subnet-Mask
Option 1, length 4: 255.255.0.0<br>
           
Default-Gateway Option 3, length 4: 10.0.0.1<br>
           
Domain-Name-Server Option 6, length 4: 10.0.0.1<br>
            END Option
255, length 0<br>
            PAD Option
0, length 0, occurs 26<br>
<br>
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?<br>
<br>
I have the following at the moment:<br>
<br>
ddns-update-style interim;<br>
ignore client-updates;<br>
<br>
option space PXE;<br>
option PXE.ftp-ip    code 186 = string;<br>
<br>
class "Syms" {<br>
      log(debug, substring(option
vendor-class-identifier, 0, 4));<br>
      match if substring (option
vendor-class-identifier, 0, 4) = 53:79:6d:62;<br>
               
          }<br>
subnet 10.0.0.0 netmask 255.255.0.0 {<br>
      range
dynamic-bootp          
10.0.0.245 10.0.0.247;<br>
      option
routers               
10.0.0.1;<br>
      option
subnet-mask           
255.255.0.0;<br>
      option
nis-domain            
"linux.site";<br>
      option domain-name-servers   
10.0.0.1;<br>
     
default-lease-time           
21600;<br>
     
max-lease-time               
43200;<br>
     
next-server                  
10.0.0.1;<br>
      option tftp-server-name "10.0.0.1";<br>
<br>
pool {<br>
        allow members of "Syms";<br>
        option PXE.ftp-ip
"tftp://10.0.0.1";<br>
        vendor-option-space PXE;<br>
        range 10.0.0.248 10.0.0.253;<br>
}<br>
}<br>
<br>
A basic topology of the network may help?<br>
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.<br>
<br>
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.<br>
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.<br>
<br>
Frame 1 (342 bytes on wire, 342 bytes captured)<br>
    Arrival Time: Dec 18, 2009 09:42:15.636302000<br>
    [Time delta from previous captured frame: 0.000000000
seconds]<br>
    [Time delta from previous displayed frame: 0.000000000
seconds]<br>
    [Time since reference or first frame: 0.000000000 seconds]<br>
    Frame Number: 1<br>
    Frame Length: 342 bytes<br>
    Capture Length: 342 bytes<br>
    [Frame is marked: False]<br>
    [Protocols in frame: eth:ip:udp:bootp]<br>
    [Coloring Rule Name: UDP]<br>
    [Coloring Rule String: udp]<br>
Ethernet II, Src: SymbolTe_d9:85:06 (00:15:70:d9:85:06), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)<br>
    Destination: Broadcast (ff:ff:ff:ff:ff:ff)<br>
        Address: Broadcast
(ff:ff:ff:ff:ff:ff)<br>
        .... ...1 .... .... .... .... = IG
bit: Group address (multicast/broadcast)<br>
        .... ..1. .... .... .... .... = LG
bit: Locally administered address (this is NOT the factory default)<br>
    Source: SymbolTe_d9:85:06 (00:15:70:d9:85:06)<br>
        Address: SymbolTe_d9:85:06
(00:15:70:d9:85:06)<br>
        .... ...0 .... .... .... .... = IG
bit: Individual address (unicast)<br>
        .... ..0. .... .... .... .... = LG
bit: Globally unique address (factory default)<br>
    Type: IP (0x0800)<br>
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255
(255.255.255.255)<br>
    Version: 4<br>
    Header length: 20 bytes<br>
    Differentiated Services Field: 0x10 (DSCP 0x04: Unknown
DSCP; ECN: 0x00)<br>
        0001 00.. = Differentiated Services
Codepoint: Unknown (0x04)<br>
        .... ..0. = ECN-Capable Transport
(ECT): 0<br>
        .... ...0 = ECN-CE: 0<br>
    Total Length: 328<br>
    Identification: 0x0006 (6)<br>
    Flags: 0x00<br>
        0.. = Reserved bit: Not Set<br>
        .0. = Don't fragment: Not Set<br>
        ..0 = More fragments: Not Set<br>
    Fragment offset: 0<br>
    Time to live: 16<br>
    Protocol: UDP (0x11)<br>
    Header checksum: 0xa990 [correct]<br>
        [Good: True]<br>
        [Bad : False]<br>
    Source: 0.0.0.0 (0.0.0.0)<br>
    Destination: 255.255.255.255 (255.255.255.255)<br>
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)<br>
    Source port: bootpc (68)<br>
    Destination port: bootps (67)<br>
    Length: 308<br>
    Checksum: 0x6024 [validation disabled]<br>
        [Good Checksum: False]<br>
        [Bad Checksum: False]<br>
Bootstrap Protocol<br>
    Message type: Boot Request (1)<br>
    Hardware type: Ethernet<br>
    Hardware address length: 6<br>
    Hops: 0<br>
    Transaction ID: 0x07d173cb<br>
    Seconds elapsed: 39<br>
    Bootp flags: 0x0000 (Unicast)<br>
        0... .... .... .... = Broadcast
flag: Unicast<br>
        .000 0000 0000 0000 = Reserved
flags: 0x0000<br>
    Client IP address: 0.0.0.0 (0.0.0.0)<br>
    Your (client) IP address: 0.0.0.0 (0.0.0.0)<br>
    Next server IP address: 0.0.0.0 (0.0.0.0)<br>
    Relay agent IP address: 0.0.0.0 (0.0.0.0)<br>
    Client MAC address: SymbolTe_d9:85:06 (00:15:70:d9:85:06)<br>
    Client hardware address padding: 00000000000000000000<br>
    Server host name not given<br>
    Boot file name not given<br>
    Magic cookie: (OK)<br>
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover<br>
        Option: (53) DHCP Message Type<br>
        Length: 1<br>
        Value: 01<br>
    Option: (t=55,l=7) Parameter Request List<br>
        Option: (55) Parameter Request List<br>
        Length: 7<br>
        Value: 011C02030F060C<br>
        1 = Subnet Mask<br>
        28 = Broadcast Address<br>
        2 = Time Offset<br>
        3 = Router<br>
        15 = Domain Name<br>
        6 = Domain Name Server<br>
        12 = Host Name<br>
    Option: (t=60,l=29) Vendor class identifier =
"SymbolWS.RFS6000-4.1.0.0-042R"<br>
        Option: (60) Vendor class identifier<br>
        Length: 29<br>
        Value:
53796D626F6C57532E524653363030302D342E312E302E30...<br>
    End Option<br>
    Padding<br>
<br>
<br>
<br>
I'm afraid I am a little lost now with not knowing what is needed and what is
stopping it working etc.<br>
<br>
Any help, gratefully received and apologies for the lengthy mail.<br>
<br>
Graham.<o:p></o:p></span></p>

</div>

</div>

</div>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</body>

</html>