No Option 43 in DHCP ACK

Frank Bulk frnkblk at iname.com
Sun Aug 2 01:36:06 UTC 2015


Jason,

I do it within the subnet (we're also a Calix shop) and it seems to work
fine.

Frank

-----Original Message-----
From: dhcp-users-bounces at lists.isc.org
[mailto:dhcp-users-bounces at lists.isc.org] On Behalf Of Peter Rathlev
Sent: Saturday, July 18, 2015 8:38 AM
To: Users of ISC DHCP <dhcp-users at lists.isc.org>
Subject: Re: No Option 43 in DHCP ACK

On Wed, 2015-07-15 at 10:55 -0600, Jason Bailey wrote:
> Calix ONTs, actually. I'm trying to get only certain ONTs to pick up
> certain option 43 configuration directives.
> 
> Their documentation says:
> 
> Configure the default global DHCP options at the DHCP server as
> follows:
> option space CALIX-ONT-SERVER;
> option CALIX-ONT-SERVER.cms-address code 1 = ip-address;
> option CALIX-ONT-SERVER.second-tftp-address code 2 = ip-address;
> option CALIX-ONT-SERVER.syslog-address code 4 = ip-address;
> option CALIX-ONT-SERVER.firmware1 code 101 = text;
> option CALIX-ONT-SERVER.firmware2 code 102 = text;
> option CALIX-ONT-SERVER.firmware3 code 103 = text;
> 
> Configure specific values for DHCP options within a subnet
> declaration, as shown in the following example:
> 
> # AE-ONT Management Network
> subnet xxx.xxx.xxx.x netmask xxx.xxx.xxx.x{
> vendor-option-space CALIX-ONT-SERVER;
> option CALIX-ONT-SERVER.cms-address xxx.xxx.xxx.xxx;
> option CALIX-ONT-SERVER.syslog-address xxx.xxx.xxx.xxx;
> option CALIX-ONT-SERVER.firmware1 "blah";
> 
> The problem is, that doesn't work (I couldn't get to work, anyhow). If
> you use class matching, the DHCP server will send option 43
> information, but unfortunately (as far as I see it, anyway), only if
> those classes are declared globally.

Classes are always global. It's an error to place the class declaration
inside e.g. a subnet declaration.

> The problem with that is that the matching ends up being all
> encompassing and ONTs end up getting options that they shouldn't. In
> short, it creates severe issues on the network.

Could you maybe use something like this:

  option X-CALIX-Selector code 247 = string;
  subnet 192.0.2.0 netmask 255.255.255.128 {
      option X-CALIX-Selector "asdf";
  }
  subnet 192.0.2.128 netmask 255.255.255.128 {
      # No CALIX option
  }
  subnet 203.0.113.0 netmask 255.255.255.0 {
      option X-CALIX-Selector "something-else";
  }
  class "CALIX-ONT" {
      match if substring(option vendor-class-identifier, 0, 9) = "Calix
ONT";
      vendor-option-space CALIX-ONT-SERVER;
      if (config-option X-CALIX-Selector = "asdf") {
            option CALIX-ONT-SERVER.cms-address xxx.xxx.xxx.xxx;
            option CALIX-ONT-SERVER.syslog-address xxx.xxx.xxx.xxx;
            option CALIX-ONT-SERVER.firmware1 "blah";
      } elsif (config-option X-CALIX-Selector = "something-else") {
            option CALIX-ONT-SERVER.cms-address yy.yy.yy.yy;
            option CALIX-ONT-SERVER.syslog-address yy.yy.yy.yy;
            option CALIX-ONT-SERVER.firmware1 "another-blah";
      }
  }

Blocks without an X-CALIX-Selector config-option shouldn't hand you any
of the options.

-- 
Peter



_______________________________________________
dhcp-users mailing list
dhcp-users at lists.isc.org
https://lists.isc.org/mailman/listinfo/dhcp-users




More information about the dhcp-users mailing list