Vendor Encapsulated Options Bug?

Glenn Satchell Glenn.Satchell at uniq.com.au
Sat Dec 8 04:09:17 UTC 2007


>Date: Fri, 7 Dec 2007 18:28:46 -0500
>From: "Jiann-Ming Su" <sujiannming at gmail.com>
>To: dhcp-users at isc.org
>Subject: Vendor Encapsulated Options Bug?
>
>Using 3.0.4.  Trying to pass option 43 to Aruba APs.  Their doc
>suggests the following config:
>
>  class "vendor-classes" {
>    match option vendor-class-identifier;
>  }
>  option option43 code 43 = ip-address;
>  subnet 192.168.122.0 netmask 255.255.255.0 {
>        subclass "vendor-classes" "ArubaAP" {
>                option vendor-class-identifier "ArubaAP";
>                option option43 192.168.33.179;
>        }
>  }
>
>The above config works.  I trace the traffic and the option43 section
>shows up as 0x2b04c0a821b3.
>
>However, if I modify the config a little bit as suggested in the
>dhcp-options man page:
>
>  class "vendor-classes" {
>    match option vendor-class-identifier;
>  }
>  option space ARUBA;
>  option ARUBA.option43 code 43 = ip-address;
>  subnet 192.168.122.0 netmask 255.255.255.0 {
>          subclass "vendor-classes" "ArubaAP" {
>                 vendor-option-space ARUBA;
>                 option vendor-class-identifier "ArubaAP";
>                 option ARUBA.option43 192.168.33.179;
>
>          }
>  }
>
>The option43 shows up as 0x2b062b04c0a821b3 and is rejected by the client.
>
>Why would using the "option space..." directives cause the server to
>add the addition 2 bytes (0x2b06)?
>Do I have something misconfigured, or is this a bug?  Thanks for any insights.

Not a bug, and not a misconfiguration either.

0x2b04c0a821b3 is a single option encoded as follows
2b = 43 (option number)
04 = 4 bytes, length of the option
  c0 = 192
  a8 = 168
  21 = 33
  b3 = 179

When you use option space it allows multiple options to be encoded in
option 43. You could pack another sub option in there if you wanted to.
0x2b062b04c0a821b3
2b = 43 (option number)
06 = 6 bytes, length of the total option
  2b = 43 option number within the option space
  04 = 4 bytes, length of the sub option
    c0 = 192
    a8 = 168
    21 = 33
    b3 = 179

If the client is not expecting it as encoded suboptions then it won't
know how to decode the values. I guess you could argue that is a bug in
the client perhaps?

regards,
-glenn


More information about the dhcp-users mailing list