Endpoints
An endpoint is a single network device tracked by Taranac, keyed on its MAC address. Endpoints are the central objects of network access control: they are discovered (or added by hand), classified into one or more endpoint groups, and those groups become the conditions your NAC policies match on. A printer that lands in the Printers group can be put on the printer VLAN; a personal phone in BYOD can be given restricted access; an unrecognised device in Unclassified can be denied or quarantined.
- IoT / Sensors vendor_name Raspberry Pi*
- Printers vendor_name Canon*
- Building A oui_prefix DC:A6:32
This page covers how endpoints appear in Taranac, how classification rules sort them into groups, the OUI vendor database that powers vendor matching, and the day-to-day admin actions — manual import, block, and reassign.
Key concepts
Section titled “Key concepts”| Term | What it means |
|---|---|
| Endpoint | A device identified by a unique, normalised MAC address (AA:BB:CC:DD:EE:FF). Carries vendor, hostname, last-seen time, certificate identity and more. |
| Endpoint group | A named collection of endpoints (e.g. Printers, Corporate Devices). Used as a NAC policy condition. An endpoint can be in several groups at once. |
| Classification rule | A condition attached to a group (vendor, OUI prefix, MAC pattern, certificate, hostname). Any matching endpoint is auto-assigned to that group. |
| OUI database | A local copy of the IEEE registry mapping MAC prefixes to manufacturers. Drives the vendor field and vendor_name/oui_prefix rules. |
| Status | Lifecycle state: known, unknown, blocked, inactive. |
| Persistence type | static (pinned, never auto-removed), dynamic (auto-discovered, subject to cleanup), or guest (from a captive portal). |
Status and persistence
Section titled “Status and persistence”status reflects where the endpoint sits in its lifecycle:
known— recognised and classified into at least one group.unknown— seen on the network but not yet matched by any rule; waiting inUnclassified.blocked— denied by an administrator (authentication is rejected).inactive— not seen for a long time; hidden from lists by default.
persistence_type decides whether automatic cleanup may ever remove the endpoint:
static— added manually, via CSV, or by LDAP computer sync. Never auto-deleted.dynamic— discovered automatically (RADIUS, certificate). Eligible for cleanup once inactive.guest— created through a guest captive portal. Cleaned up after the guest session expires.
How endpoints are discovered
Section titled “How endpoints are discovered”Taranac populates the endpoint table from several built-in sources. Each source it has seen the device through is recorded as a separate discovery record under the endpoint, so you can tell why and how a device is known.
| Source | What it contributes |
|---|---|
| RADIUS | First-seen MAC during 802.1X / MAB authentication, plus NAS IP, port and auth method. Creates a dynamic endpoint. |
| Certificate (EAP-TLS) | On every EAP-TLS authentication the certificate CN / DNS SAN, issuer, serial and type (machine vs user) are captured. Updates cert_identity, cert_issuer, hostname and auth_type_last. |
| LDAP computer sync | Imports Active Directory computer objects as static endpoints. Computers without a MAC are held as Pending Computers and bound to a real endpoint on their first machine-certificate authentication, matched by hostname. |
| Manual / CSV import | Devices you add by hand or in bulk. Always static. |
| OUI database | Not a device source — it enriches every endpoint with a vendor name from the MAC prefix. |
The vendor and OUI prefix are filled in automatically whenever an endpoint is created or its MAC changes: Taranac takes the first three bytes of the MAC and looks them up in the OUI database.
The endpoints list — each row carries MAC, vendor, status and the groups the device belongs to.
Endpoint groups
Section titled “Endpoint groups”Groups are how you organise endpoints into policy-relevant buckets. Taranac ships with a set of seed groups so the system is useful on day one.
Two groups are system groups and cannot be deleted:
- Unclassified — where every new endpoint lands until a rule matches it.
- Blocked — blocked endpoints.
The rest are ordinary, editable seed groups: Corporate Devices, BYOD, Printers, IP Phones, IoT / Sensors, Security Cameras, and Guest Devices. Each carries a colour and icon for the UI, and you can create your own (for example, a per-location Building A group).
Because an endpoint can belong to multiple groups at once, you can classify along several independent axes — device type and location and access tier — without the groups fighting each other.
Endpoint groups — system groups (Unclassified, Blocked) plus editable seed groups, each with a member count.
Classification rules
Section titled “Classification rules”A classification rule lives on a group and says: any endpoint matching this condition belongs in this group. Taranac evaluates rules with all-matches semantics — there is no priority and no “first match wins”. Every enabled rule that matches fires, and the endpoint joins every group whose rule matched. If nothing matches, the endpoint stays in Unclassified.
This is deliberate: you never have to reason about a global ordering of all rules across all groups to predict where a device lands. Rules are independent.
Match types
Section titled “Match types”| Match type | Matches against | Example value | Notes |
|---|---|---|---|
exact_mac | The full MAC | AA:BB:CC:DD:EE:FF | Case-insensitive exact match. |
oui_prefix | First 3 bytes of the MAC | DC:A6:32 | Exactly three bytes (e.g. all Raspberry Pi devices). |
mac_pattern | Start of the MAC | 00:1A | Case-insensitive “starts with”; any length from 2 chars. Narrower than a fixed OUI prefix. |
vendor_name | The resolved vendor string | Hewlett Packard* | Case-insensitive substring, or a glob if * ? [ are present. |
cert_issuer | The endpoint’s certificate issuer | (a CA, picked from a list) | The value is a CA reference; the issuer DN is compared after normalisation. |
cert_identity_pattern | Certificate CN / DNS SAN | *.taranac.pro | Glob or substring. Cryptographically trustworthy. |
hostname_pattern | The endpoint hostname | PC-* | Glob or substring. Useful for devices without certificates, but less reliable (hostname is not cryptographic). |
For vendor_name and oui_prefix, the rule form offers a searchable picker backed by the OUI database, so you can find a manufacturer or prefix without typing it from memory and see how many MAC prefixes a vendor owns. For cert_issuer, you pick a CA from a list rather than typing a DN.
Certificate-based classification
Section titled “Certificate-based classification”When a device authenticates with EAP-TLS, Taranac extracts the certificate issuer and identity from the RADIUS exchange and runs classification immediately — the device is sorted into the right group as an in-memory decision on its very first authentication, without waiting on any database write. The resulting endpoint and certificate record are then persisted off the authentication path: the write is enqueued to an async writer and lands on the next cache refresh, so the auth reply is never held up by a database write (this also keeps authentication answering from cache during an HA failover). Classification is therefore effective at authentication time, even though the stored row appears a moment later. On later, non-TLS authentications, the stored certificate data is reused.
For cert_issuer rules, the CA you selected is resolved to its subject DN and compared to the endpoint’s issuer using DN normalisation, so both OpenSSL one-line form (/DC=pro/DC=taranac/CN=Root CA) and RFC 2253 form (CN=Root CA,DC=taranac,DC=pro) compare equal. If the CA is later disabled or deleted, the rule stops matching.
Seed rules
Section titled “Seed rules”Out of the box Taranac seeds vendor-based rules so common devices classify themselves:
| Group | Match type | Value |
|---|---|---|
| Printers | vendor_name | Hewlett Packard*, Hewlett-Packard*, Canon*, Epson*, Xerox*, Brother* |
| IP Phones | vendor_name | Polycom* |
| Security Cameras | vendor_name | Hikvision*, Dahua* |
| IoT / Sensors | vendor_name | Raspberry Pi*, Espressif* |
Testing rules before you trust them
Section titled “Testing rules before you trust them”Taranac includes a classification tester: enter a MAC (optionally a vendor override, certificate identity, certificate issuer, or hostname) and it shows exactly which groups the device would join and which rules fired — grouped by target group, with no side effects. Use it to validate a new rule against a real or hypothetical device before relying on it in policy.
MAC: 80:5E:C0:11:22:33Vendor: (auto-resolved from OUI, or override here)Cert identity: PC-LAB1.taranac.proHostname: PC-LAB1The OUI database
Section titled “The OUI database”The OUI database is a local copy of the IEEE MA-L registry — roughly 35,000 MAC-prefix-to-manufacturer mappings. It does two jobs: it fills in the vendor name on every endpoint, and it powers vendor_name and oui_prefix classification rules and their search pickers.
- First start — Taranac tries to download the registry from IEEE, and falls back to a bundled snapshot if IEEE is unreachable, so vendor lookups work even offline.
- Weekly refresh — an automatic weekly sync from IEEE keeps it current (controlled by the
nac.oui_auto_updatesetting). - Manual refresh — you can trigger an update from IEEE on demand. If IEEE is temporarily unavailable the request fails cleanly and the existing data is left intact.
Common scenarios
Section titled “Common scenarios”Auto-VLAN printers. Leave the seed Printers rules in place (HP, Canon, Epson, Xerox, Brother). Any printer from those vendors classifies into Printers on first sight; point your NAC policy for the Printers group at the printer VLAN. New printers from a vendor not yet covered: add one vendor_name rule.
Corporate machines by certificate. Issue machine certificates from your internal CA and add a cert_issuer rule on Corporate Devices selecting that CA. Every domain machine that authenticates with EAP-TLS lands in Corporate Devices on its first authentication — far stronger than matching by MAC, which can be spoofed.
BYOD by certificate identity or hostname. A cert_identity_pattern of *.byod.corp.local, or a hostname_pattern like IPHONE-*, can funnel personal devices into BYOD for a restricted access profile.
Cameras and IoT segmentation. The seed Security Cameras (Hikvision, Dahua) and IoT / Sensors (Raspberry Pi, Espressif) rules give you ready-made groups to drop onto isolated segments.
Location plus type. Create a Building A group with an oui_prefix or mac_pattern rule, and keep the type-based groups too. A camera in Building A ends up in both Security Cameras and Building A — match either or both in policy. This is exactly what all-matches semantics enables.
When to use which match type
Section titled “When to use which match type”| Goal | Best match type | Why |
|---|---|---|
| All devices from a manufacturer | vendor_name | Survives MAC churn; one rule covers every prefix the vendor owns. |
| One specific hardware family / model run | oui_prefix | A single 3-byte prefix, more precise than a broad vendor name. |
| A custom MAC range you assign | mac_pattern | Flexible-length “starts with”; good for self-assigned ranges. |
| One known device | exact_mac | Pin a single, important device to a group. |
| Trustworthy corporate identity | cert_issuer | Cryptographic — cannot be spoofed by changing a MAC. |
| Per-machine / per-domain certificate identity | cert_identity_pattern | Glob on the cert CN/SAN; cryptographic. |
| Devices with no certificate | hostname_pattern | Last resort; convenient but spoofable. |
Managing endpoints
Section titled “Managing endpoints”Adding endpoints by hand
Section titled “Adding endpoints by hand”You can create an endpoint manually by entering its MAC, an optional name and description, and the groups it should join. Manually created endpoints are static, so they are never cleaned up automatically. Manual creation assigns only the groups you choose — it does not run classification rules — so pick the groups explicitly.
Quick actions
Section titled “Quick actions”Each endpoint offers one-click actions:
| Action | Effect |
|---|---|
| Block | Sets status to blocked; the device is rejected on its next authentication (and any live sessions are torn down via CoA where supported). |
| Unblock | Returns status to known. |
| Pin | Promotes dynamic → static so cleanup never removes it. |
| Unpin | Returns static → dynamic. |
| Reassign | Replaces the endpoint’s entire set of group memberships with the set you supply. Submitting an empty set removes it from all groups (back to Unclassified). |
Reassign is a replace-set operation: the list you submit becomes the complete membership. The server works out which memberships to add and which to drop, and records the change in the audit log. All quick actions are idempotent.
The same operations are available in bulk over a selection of endpoints — bulk delete, bulk block, bulk pin, and bulk reassign.
Reference: endpoint fields
Section titled “Reference: endpoint fields”| Field | Meaning |
|---|---|
mac_address | Unique device identity, normalised to upper-case AA:BB:CC:DD:EE:FF. |
name / description / notes | Optional admin-supplied labels. |
status | known, unknown, blocked, inactive. |
persistence_type | static, dynamic, guest. |
discovery_type | How first discovered: manual, radius, ldap, csv_import (DHCP/SNMP/syslog reserved for future). |
vendor / oui_prefix | Manufacturer and 3-byte prefix, auto-filled from the OUI database. |
hostname | From LDAP, certificate, or other source; refreshed from the cert CN/SAN on each EAP-TLS authentication. |
ip_address | Last known IP. |
cert_identity / cert_issuer | CN/DNS SAN and issuer DN from the last machine certificate. |
auth_type_last | Last authentication method: eap_tls, peap, eap_ttls, mab. |
last_seen_at | Last activity; drives the inactive lifecycle. |
Related
Section titled “Related”- NAC overview — where endpoints fit in the access-control flow.
- Policy — using endpoint groups as authorisation conditions.
- Authentication — the 802.1X / MAB / EAP-TLS flows that discover endpoints.
- Captive portal — guest and BYOD registration that creates endpoints.
- PKI — the CAs referenced by
cert_issuerclassification rules. - Deployment bundle & docs: github.com/TaranacLabs/taranac