Option 43?

Tina Siegenthaler tina at zool.uzh.ch
Fri Feb 29 15:02:47 UTC 2008


Hi list

We recently bought an UPS from APC with a network card that should  
allow administration of the UPS over the network. However, I can't get  
it to accept a IP address from our DHCP server. According to the  
manual of the UPS network card, it will first look for a BOOTP server  
(which it does), and when it doesn't find one will then check for a  
DHCP server. And indeed, that is what I'm seeing in the dhcpd.log:

Feb 29 15:06:52 zoolse0339 dhcpd: BOOTREQUEST from 00:c0:b7:73:37:74  
via en0: BOOTP from dynamic client and no dynamic leases

(repeated many times)

then, after about 13 minutes, it finally tries DHCP:

Feb 29 15:19:58 zoolse0339 dhcpd: DHCPDISCOVER from 00:c0:b7:73:37:74  
via en0
Feb 29 15:19:59 zoolse0339 dhcpd: DHCPOFFER on 130.60.225.18 to  
00:c0:b7:73:37:74 via en0
Feb 29 15:21:03 zoolse0339 dhcpd: DHCPREQUEST for 130.60.225.18  
(130.60.23.4) from 00:c0:b7:73:37:74 via en0
Feb 29 15:21:03 zoolse0339 dhcpd: DHCPACK on 130.60.225.18 to  
00:c0:b7:73:37:74 via en0

which seems to work, at least at first. I can ping the IP, but about  
15 seconds later, it starts again issuing BOOTREQUESTS:

Feb 29 15:21:18 zoolse0339 dhcpd: BOOTREQUEST from 00:c0:b7:73:37:74  
via en0: BOOTP from dynamic client and no dynamic leases

and I can no longer ping it. 15 minutes later it tries again a  
DHCPDISCOVER etc etc...

Now, the manual of the UPS also states:

"A properly configured DHCP server responds with a DHCP offer that  
includes all the setting that the (network) Management Card needs for  
network communication. The DHCP offer also includes the Vendor  
Specific Information option (DHCP option 43). By default, the  
Management Card ignores DHCP offers that  do not encapsulate the APC  
cookie in DHCP option 43 using the following hexadecimal format:
Option 43 = 01 04 31 41 50 43
where
- the first byte (01) is the code
- the second byte (04) is the length
- the remaining bytes (31 41 50 43) are the APC cookie."

Well, that seems pretty clear, but obviously, the UPS network card is  
not ignoring the OFFER, but accepts it at first, but then decides to  
drop the assigned IP after some time...

  I did a tcpdump on the DHCP server to check what the UPS is sending  
and what the DHCP server sends back. The UPS sends this DHCPDISCOVER:

Bootstrap Protocol
     Message type: Boot Request (1)
     Hardware type: Ethernet
     Hardware address length: 6
     Hops: 1
     Transaction ID: 0x0000e86e
     Seconds elapsed: 64
     Bootp flags: 0x0000 (Unicast)
     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: 130.60.225.1 (130.60.225.1)
     Client MAC address: American_73:37:74 (00:c0:b7:73:37:74)
     Server host name not given
     Boot file name not given
     Magic cookie: (OK)
     Option: (t=53,l=1) DHCP Message Type = DHCP Request
         Option: (53) DHCP Message Type
         Length: 1
         Value: 03
     Option: (t=61,l=10) Client identifier
         Option: (61) Client identifier
         Length: 10
         Value: 0000C0B7733774000000
     Option: (t=50,l=4) Requested IP Address = 130.60.225.18
         Option: (50) Requested IP Address
         Length: 4
         Value: 823CE112
     Option: (t=54,l=4) Server Identifier = 130.60.225.4
         Option: (54) Server Identifier
         Length: 4
         Value: 823CE104
     Option: (t=55,l=14) Parameter Request List
         Option: (55) Parameter Request List
         Length: 14
         Value: 0603010F42430D2C2B3A3B2A020C
         6 = Domain Name Server
         3 = Router
         1 = Subnet Mask
         15 = Domain Name
         66 = TFTP Server Name
         67 = Bootfile name
         13 = Boot File Size
         44 = NetBIOS over TCP/IP Name Server
         43 = Vendor-Specific Information
         58 = Renewal Time Value
         59 = Rebinding Time Value
         42 = Network Time Protocol Servers
         2 = Time Offset
         12 = Host Name
     Option: (t=60,l=3) Vendor class identifier = "APC"
         Option: (60) Vendor class identifier
         Length: 3
         Value: 415043
     Option: (t=61,l=7) Client identifier
         Option: (61) Client identifier
         Length: 7
         Value: 0100C0B7733774
         Hardware type: Ethernet
         Client MAC address: American_73:37:74 (00:c0:b7:73:37:74)
     Option: (t=77,l=4) User Class Information
         Option: (77) User Class Information
         Length: 4
         Value: 53554D58
     End Option

I can't see an option 43 here??? There's an option 60 which contains  
the vendor class identifier "APC"... Forgive me if I'm being stupid,  
but I have no experience with these options, we just have a very plain  
DHCP server setup...

The OFFER that the server send back looks like this:

Bootstrap Protocol
     Message type: Boot Reply (2)
     Hardware type: Ethernet
     Hardware address length: 6
     Hops: 1
     Transaction ID: 0x0000e86e
     Seconds elapsed: 64
     Bootp flags: 0x0000 (Unicast)
     Client IP address: 0.0.0.0 (0.0.0.0)
     Your (client) IP address: 130.60.225.18 (130.60.225.18)
     Next server IP address: 0.0.0.0 (0.0.0.0)
     Relay agent IP address: 130.60.225.1 (130.60.225.1)
     Client MAC address: American_73:37:74 (00:c0:b7:73:37:74)
     Server host name not given
     Boot file name not given
     Magic cookie: (OK)
     Option: (t=53,l=1) DHCP Message Type = DHCP Offer
         Option: (53) DHCP Message Type
         Length: 1
         Value: 02
     Option: (t=54,l=4) Server Identifier = 130.60.23.4
         Option: (54) Server Identifier
         Length: 4
         Value: 823C1704
     Option: (t=51,l=4) IP Address Lease Time = 6 hours
         Option: (51) IP Address Lease Time
         Length: 4
         Value: 00005460
     Option: (t=6,l=8) Domain Name Server
         Option: (6) Domain Name Server
         Length: 8
         Value: 823C8003823C4033
         IP Address: 130.60.128.3
         IP Address: 130.60.64.51
     Option: (t=3,l=4) Router = 130.60.225.1
         Option: (3) Router
         Length: 4
         Value: 823CE101
     Option: (t=1,l=4) Subnet Mask = 255.255.255.128
         Option: (1) Subnet Mask
         Length: 4
         Value: FFFFFF80
     Option: (t=15,l=6) Domain Name = "uzh.ch"
         Option: (15) Domain Name
         Length: 6
         Value: 757A682E6368
     Option: (t=58,l=4) Renewal Time Value = 3 hours
         Option: (58) Renewal Time Value
         Length: 4
         Value: 00002A30
     Option: (t=59,l=4) Rebinding Time Value = 5 hours, 15 minutes
         Option: (59) Rebinding Time Value
         Length: 4
         Value: 000049D4
     End Option
     Padding


It obviously contains no option 43. OK, it seems that I somehow have  
to include this vendor specific information option in the OFFER, so  
that if a client sends option 60 = 41 50 43, the server will include  
option 43 = 01 04 31 41 50 43 in its OFFER. Any hints how I should be  
doing this? The UPS already has its own class and subclass. can I  
include option 43 there?

TIA, Tina










More information about the dhcp-users mailing list