No Option 43 in DHCP ACK
Jason Bailey
jbailey at emerytelcom.com
Mon Aug 24 16:33:51 UTC 2015
So I've managed to make several of the suggested configurations work
with newer versions of the DHCP server (CentOS 7, for example), but I
cannot get it to work with the version we are running (CentOS 6, ISC
DHCP 4.1.1). Any ideas as to why that might be?
Jason
On 08/04/2015 02:45 PM, Jason Bailey wrote:
> Thank you all for the many options. I'm still evaluating the approach
> I'd like to take.
>
> I do have another question, however. Is it possible to match class
> based on option 43 data found in the client's DHCP request? Could I do
> a substring match of sorts against that data?
>
> Best,
>
> Jason
>
> On 08/01/2015 07:36 PM, Frank Bulk wrote:
>> 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.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20150824/1f2322bf/attachment.html>
More information about the dhcp-users
mailing list