AW: AW: AW: Vendor-specific information class integration

Alex Moen alexm at ndtel.com
Tue Oct 11 14:37:25 UTC 2016


On 10/11/2016 03:53 AM, Vitali Kari wrote:
> Hi Alex,
>
> please change in your class:
> vendor-string = "CALIX ONT";
> to
> set vendor-string = "CALIX ONT";
>
>
> Best regards
> Mit freundlichen Grüßen
>
> Vitali Kari
> Teamleiter NGN
>
>
> -----Ursprüngliche Nachricht-----
> Von: dhcp-users [mailto:dhcp-users-bounces at lists.isc.org] Im Auftrag von Alex Moen
> Gesendet: Montag, 10. Oktober 2016 22:20
> An: dhcp-users at lists.isc.org
> Betreff: Re: AW: AW: Vendor-specific information class integration
>
> Answers inline...
>
> On 10/10/2016 03:03 PM, Vitali Kari wrote:
>> Does the device ask for option 43 in DHCPDISCOVER?
>
> Yes, it does.  Sorry I didn't include that fact.
>
>> If not you have to put that in option manually by add this line in your class definition:
>> option dhcp-parameter-request-list = concat(option
>> dhcp-parameter-request-list,2b); # adds option 43
>
> And, I do have that in my config, as shown below in my original email today.  So, even if it isn't being requested, if the class is matched, the option should be added, right?
>
>> btw. You can add a logging line to class to confirm that the right class is matched:
>> log (info, "INFO: Match Class XY");
>
> Good tip!  I have added that, and the class is being matched according to the log entries. So, that leaves the question as to why the option is not being forwarded in the OFFER?
>
> TIA,
>
> Alex
>
>
>>
>> OK... still working on this, and not having much luck.
>>
>> First of all, I have two devices that I am dealing with.  One of the
>> devices (the calix-ont class) has a vendor-class-identifier of "CALIX
>> ONT" (as found in a wireshark capture).  The other (the calix-844ge
>> class) has a vendor-class-identifier of "844GE-1.ONT.dslforum.org". I am trying to get the DHCP server to send the proper Option 43 (hex 2b) information based on the vendor-class-identifier.
>>
>> So, in my dhcpd.conf file, I have:
>>
>> -------------------------------------------------------------
>> 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.validateMIC code 3 = boolean; 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; option
>> CALIX-ONT-SERVER.firmware4 code 104 = text; option
>> CALIX-ONT-SERVER.firmware5 code 105 = text; option
>> CALIX-ONT-SERVER.force-firmware code 200 = boolean;
>>
>> class "calix-ont" {
>>          match if(substring(option vendor-class-identifier,0,9) = "CALIX ONT");
>>          option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,2b);
>>          vendor-option-space CALIX-ONT-SERVER;
>>          vendor-string = "CALIX ONT";
>> }
>>
>> option space CALIXGC;
>> option CALIXGC.acs-url code 1 = text;
>> option CALIXGC.acs-url-supp code 5 = text;
>>
>> class "calix-844ge" {
>>          match if(substring(option vendor-class-identifier,0,5) = "844GE");
>>          option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,2b);
>>          vendor-option-space CALIXGC;
>>          vendor-string = "844GE";
>> }
>>
>> -------------------------------------------------------------
>>
>> and, in my subnet file, I have:
>>
>> -------------------------------------------------------------
>>
>> subnet 10.57.100.0 netmask 255.255.252.0 {
>>          option routers 10.57.103.254;
>>          option subnet-mask 255.255.252.0;
>>          default-lease-time 259200;
>>          max-lease-time 259200;
>>          server-name "66.163.129.244";
>>          if vendor-string = "CALIX ONT" {
>>                  option CALIX-ONT-SERVER.cms-address 66.163.129.244;
>>                  option CALIX-ONT-SERVER.second-tftp-address 66.163.129.244;
>>                  option CALIX-ONT-SERVER.force-firmware on;
>>                  option CALIX-ONT-SERVER.syslog-address 66.163.129.244;
>>                  option CALIX-ONT-SERVER.validateMIC off;
>>          }
>>          else if vendor-string = "844GE" {
>>                  option CALIXGC.acs-url "http://gcs.calix.com:8080/125053/8w9ZZJF9q4";
>>          }
>>
>> class "10.57.100.50/Ethernet1:Vlan2" {
>>          match if option agent.circuit-id = "10.57.100.50/Ethernet1:Vlan2";
>>          }
>>          pool {
>>                  allow members of "10.57.100.50/Ethernet1:Vlan2";
>>                  range 10.57.100.1;
>>                  deny dynamic bootp clients;
>>
>>          }
>> class "10.57.100.50/Ethernet2:Vlan2" {
>>          match if option agent.circuit-id = "10.57.100.50/Ethernet2:Vlan2";
>>          }
>>          pool {
>>                  allow members of "10.57.100.50/Ethernet2:Vlan2";
>>                  range 10.57.100.2;
>>                  deny dynamic bootp clients;
>>          }
>>
>> -------------------------------------------------------------
>>
>> and on and on, until the end of the subnet.
>>
>> In my pcap, I do not see any of the option 43 info being sent to the device.  At all.  No matter which device is requesting.
>>
>> What am I missing?


{FACEPALM}

OK, that fixed it!  Silly syntax error...

Thanks so much for the help, Vitaly!

Alex


More information about the dhcp-users mailing list