Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

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

    Bounties
    6
    13
    7.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      djzort
      last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • B
        bryan.paradis
        last edited by

        @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.

        1 Reply Last reply Reply Quote 0
        • D
          djzort
          last edited by

          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?

          1 Reply Last reply Reply Quote 0
          • B
            bryan.paradis
            last edited by

            @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

            1 Reply Last reply Reply Quote 0
            • D
              djzort
              last edited by

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

              1 Reply Last reply Reply Quote 0
              • B
                bryan.paradis
                last edited by

                @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.

                1 Reply Last reply Reply Quote 0
                • D
                  djzort
                  last edited by

                  yup looks good.

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

                  1 Reply Last reply Reply Quote 0
                  • B
                    bryan.paradis
                    last edited by

                    @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.

                    1 Reply Last reply Reply Quote 0
                    • K
                      Klaws
                      last edited by

                      Yes.

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

                      1 Reply Last reply Reply Quote 0
                      • B
                        bryan.paradis
                        last edited by

                        @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

                        1 Reply Last reply Reply Quote 0
                        • P
                          pzaharia
                          last edited by

                          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:

                          • Agent Circuit ID Sub-option: https://tools.ietf.org/html/rfc3046#section-3.1
                          • Agent Remote ID Sub-option: https://tools.ietf.org/html/rfc3046#section-3.2

                          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 ?

                          1 Reply Last reply Reply Quote 0
                          • H
                            hermandalig
                            last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • viktor_gV
                              viktor_g Netgate
                              last edited by

                              Feature request: https://redmine.pfsense.org/issues/6544

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.