USD$50 - DHCP Option 82 on status_dhcp_leases.php page



  • We configure our switches to do DHCP Snooping and add option 82 information. WiFi access points can also be configured to inject values, as can a variety of equipment.

    This information, if included in the dhcp packets, is already saved in /var/dhcpd/var/db/dhcpd.leases

    lease 192.168.1.53 {
      starts 0 2014/01/19 23:44:58;
      ends 1 2014/01/20 01:44:58;
      cltt 0 2014/01/19 23:44:58;
      binding state active;
      next binding state free;
      rewind binding state free;
      hardware ethernet aa:08:19:0c:9c:ff;
      uid "\001\000\010\031\014\234\307";
      option agent.circuit-id 0:1:0:e;
      option agent.remote-id 64:66:b3:a3:e9:80;
      client-hostname "samoa";
    }

    This bounty is merely to display this information on the status_dhcp_leases.php page. The Hex values should be decoded back to ascii.



  • @djzort:

    We configure our switches to do DHCP Snooping and add option 82 information. WiFi access points can also be configured to inject values, as can a variety of equipment.

    This information, if included in the dhcp packets, is already saved in /var/dhcpd/var/db/dhcpd.leases

    lease 192.168.1.53 {
      starts 0 2014/01/19 23:44:58;
      ends 1 2014/01/20 01:44:58;
      cltt 0 2014/01/19 23:44:58;
      binding state active;
      next binding state free;
      rewind binding state free;
      hardware ethernet aa:08:19:0c:9c:ff;
      uid "\001\000\010\031\014\234\307";
      option agent.circuit-id 0:1:0:e;
      option agent.remote-id 64:66:b3:a3:e9:80;
      client-hostname "samoa";
    }

    This bounty is merely to display this information on the status_dhcp_leases.php page. The Hex values should be decoded back to ascii.

    Could you be more clear. I have it already displaying the values I need to understand which ones and in what format.



  • agent.circuit-id is the "port" that the dhcp client is attached to. the hover-over tip should explain that. it would probably be most useful to convert from hex to int and display with slashes or dashes or something. so in this case 0:1:0:e becomes 0/1/0/14

    agent.remote-id is a mac address or the device that the dhcp client is connected to. the hover-over tip should explain that too. i guess not much to decode for this really. maybe link it to dhcp leases?



  • @djzort:

    agent.circuit-id is the "port" that the dhcp client is attached to. the hover-over tip should explain that.

    @djzort:

    agent.remote-id is a mac address or the device that the dhcp client is connected to. the hover-over tip should explain that too.

    Added tooltips to each row and to column title. Let me know if you want just column title tooltips.

    @djzort:

    It would probably be most useful to convert from hex to int and display with slashes or dashes or something. so in this case 0:1:0:e becomes 0/1/0/14

    Did the conversion of client-id. Remote-id resting as is.

    client-id: hex:hex:hex:hex -> dec/dec/dec/dec
    remote-id: hex:hex:hex:hex:hex:hex
    

    status_dhcp_leases.php with agent.circuit-id & agent.-remote-id



  • dont forget to add yourself to the credits at the top?



  • @djzort:

    dont forget to add yourself to the credits at the top?

    So has this work forfilled your bounty requirements? Have you tried it out yet? Simply backup your status_dhcp_leases.php file and place the one posted above.



  • yup looks good.

    please submit for inclusion in pfsense and pm me your paypal details



  • @djzort:

    yup looks good.

    please submit for inclusion in pfsense and pm me your paypal details

    Behavoir before merge. Because it is an odd ball thing what do you think about having a option somewhere to enable it or make it show the information if it is exists? I have a feeling that just having it always show up as another column may come up as a problem with the devs on merge.



  • Yes.

    I'd suggest to use the System Patches package to add this feature to a specific installation.



  • @Klaws:

    Yes.

    I'd suggest to use the System Patches package to add this feature to a specific installation.

    Yeah probably but then again we may see it get broken. maybe a setting to turn off or on somewhere



  • This is an old thread, but posting here anyway for future reference :)

    @djzort:

    agent.circuit-id is the "port" that the dhcp client is attached to. the hover-over tip should explain that. it would probably be most useful to convert from hex to int and display with slashes or dashes or something. so in this case 0:1:0:e becomes 0/1/0/14

    agent.remote-id is a mac address or the device that the dhcp client is connected to. the hover-over tip should explain that too. i guess not much to decode for this really. maybe link it to dhcp leases?

    Please see RFC 3046:

    Both are supposed to be opaque:
        "The Circuit ID SHOULD be considered an opaque value, with policies based on exact string match only; that is, the Circuit ID SHOULD NOT be internally parsed by the server."
        "The option [NB: Remote ID] SHOULD be considered an opaque value, with policies based on exact string match only; that is, the option SHOULD NOT be internally parsed by the server."

    In addition, the meaning of both are left to the specific implementations of each particular DHCP Relay Agents:
        Circuit ID:
          - Router interface number
          - Switching Hub port number
          - Remote Access Server port number
          - Frame Relay DLCI
          - ATM virtual circuit number
          - Cable Data virtual circuit number
        Remote ID:
          – a "caller ID" telephone number for dial-up connection
          -- a "user name" prompted for by a Remote Access Server
          -- a remote caller ATM address
          -- a "modem ID" of a cable data modem
          -- the remote IP address of a point-to-point link
          -- a remote X.25 address for X.25 connections

    IMHO, each switch/router/ras manufacturer/model would have its own implementation that would invalidate the code below (or above depending on sorting :) )

    If one would be to implement such a feature, maybe an optional input box with some modifiable regex that would be applied on the raw strings might be more future-proof ?



  • Could you be more clear. I have it already displaying the values I need to understand which ones and in what format.


Log in to reply