Skip to content

Fingerbank: unknown DHCP fingerprint when receiving one DHCP request #5546

@nqb

Description

@nqb

Describe the bug
When you receive only one DHCP request for a node, Fingerbank is not able to get complete profiling for node. You need to do a manual refresh of profiling.

To Reproduce
Steps to reproduce the behavior:

  1. Configure a Fingerbank API key
  2. Send one DHCP request for a node
  3. Check device profiling on Fingerbank tab

=> You don't get a complete profiling.

  1. Refresh Fingerbank or send a new DHCP request

=> You get complete profiling.

Expected behavior
Fingerbank should be able to get correct profile with only one DHCP request.

Additional context
Example of logs (on a cluster, running v10.0.1 with maintenance patches)

### Detect date
May 14 10:07:46 pf-node1 fingerbank: pfqueue(93176) INFO: [mac:b8:27:eb:07:81:15] Searching for 'Device' entries in schema(s) returned an empty set (fingerbank::Base::CRUD::search)

### First DHCP request and fingerbank-collector refresh
May 26 21:06:44 pf-node2 pfdhcplistener: pfqueue(34122) INFO: [mac:unknown] DHCPREQUEST from b8:27:eb:07:81:15 (10.11.20.4) (pf::dhcp::processor_v4::parse_dhcp_request)
May 26 21:06:44 pf-node2 pfdhcplistener: pfqueue(38873) INFO: [mac:unknown] DHCPACK from 10.1.80.101 (00:09:0f:09:00:24) to host b8:27:eb:07:81:15 (10.11.20.4) for 4294967295 seconds (pf::dhcp::processor_v4::parse_dhcp_ack)
May 26 21:06:44 pf-node2 fingerbank-collector: [GIN] 2020/05/26 - 21:06:44 | 200 |       90.06µs | 127.0.0.1 |   GET     /endpoint_data/b8:27:eb:07:81:15
May 26 21:06:44 pf-node2 fingerbank-collector: [GIN] 2020/05/26 - 21:06:44 | 500 |  119.873686ms | 127.0.0.1 |   GET     /endpoint_data/b8:27:eb:07:81:15/details
May 26 21:06:44 pf-node2 fingerbank: pfqueue(34122) INFO: [mac:b8:27:eb:07:81:15] Searching for 'Device' entries in schema(s) returned an empty set (fingerbank::Base::CRUD::search)
May 26 21:06:44 pf-node2 fingerbank: pfqueue(34122) INFO: [mac:b8:27:eb:07:81:15] Searching for 'Device' entries in schema(s) returned an empty set (fingerbank::Base::CRUD::search)

### Refresh Fingerbank from GUI
Jun  8 14:33:07 pf-node1 fingerbank-collector: [GIN] 2020/06/08 - 14:33:07 | 200 |     188.703µs | 127.0.0.1 |   GET     /endpoint_data/b8:27:eb:07:81:15
Jun  8 14:33:07 pf-node1 fingerbank-collector: [GIN] 2020/06/08 - 14:33:07 | 200 |  138.538663ms | 127.0.0.1 |   GET     /endpoint_data/b8:27:eb:07:81:15/details
Jun  8 14:33:11 pf-node1 fingerbank_httpd.webservices: httpd.webservices(37899) INFO: [mac:b8:27:eb:07:81:15] Database /usr/local/fingerbank/db/fingerbank_Upstream.db was changed or handles weren't initialized. Creating handle. (fingerbank::DB::SQLite::build_handle)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions