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