Skip to content

Device Tracking

Device Tracking (also known as SISF, Switch Integrated Security Features) is a Layer 2 security mechanism that builds a binding table of connected hosts by monitoring ARP, DHCP, NDP, and DHCPv6 traffic. It is the foundational feature behind IP Source Guard, Dynamic ARP Inspection, and 802.1X address assignment validation. Device Tracking policies define per-port or per-VLAN behavior including which protocols to glean, trusted port designation, tracking state management, security levels, and address limits.

Diagram
NameTypeConstraintMandatoryDefault Value
device_trackingClass[device_tracking]No

device_tracking (iosxe.devices.configuration)

Section titled “device_tracking (iosxe.devices.configuration)”
NameTypeConstraintMandatoryDefault Value
logging_theftBooleantrue, falseNo
tracking_auto_source_fallback_ipv4IPNo
tracking_auto_source_fallback_maskIPNo
tracking_auto_source_fallback_overrideBooleantrue, falseNo
tracking_retry_intervalIntegermin: 1, max: 3600No
binding_reachable_lifetimeIntegermin: 1, max: 86400No
policiesList[policies]No

policies (iosxe.devices.configuration.device_tracking)

Section titled “policies (iosxe.devices.configuration.device_tracking)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
trusted_portBooleantrue, falseNo
device_roleChoicenode, switch, routerNo
device_role_node_legacyBooleantrue, falseNo
device_role_switch_legacyBooleantrue, falseNo
device_role_router_legacyBooleantrue, falseNo
data_glean_log_onlyBooleantrue, falseNo
data_glean_recovery_dhcpBooleantrue, falseNo
data_glean_recovery_ndpBooleantrue, falseNo
prefix_gleanBooleantrue, falseNo
prefix_glean_onlyBooleantrue, falseNo
destination_glean_log_onlyBooleantrue, falseNo
destination_glean_recovery_dhcpBooleantrue, falseNo
protocol_arpBooleantrue, falseNo
protocol_arp_prefix_listStringNo
protocol_dhcp4Booleantrue, falseNo
protocol_dhcp4_prefix_listStringNo
protocol_dhcp6Booleantrue, falseNo
protocol_dhcp6_prefix_listStringNo
protocol_ndpBooleantrue, falseNo
protocol_ndp_prefix_listStringNo
tracking_enableBooleantrue, falseNo
tracking_enable_reachable_lifetime_secondsIntegermin: 1, max: 86400No
tracking_enable_reachable_lifetime_infiniteBooleantrue, falseNo
tracking_disableBooleantrue, falseNo
tracking_disable_stale_lifetimeStringNo
limit_address_countIntegermin: 1, max: 32000No
security_level_gleanBooleantrue, falseNo
security_level_guardBooleantrue, falseNo
security_level_inspectBooleantrue, falseNo
medium_type_wirelessBooleantrue, falseNo

The following configuration enables theft logging, sets the tracking retry interval, configures auto-source fallback for device-tracking probes, and sets the binding reachable lifetime.

device-tracking logging theft
device-tracking tracking retry-interval 30
device-tracking tracking auto-source fallback 10.0.0.1 255.255.255.0 override
device-tracking binding reachable-lifetime 7200
iosxe:
devices:
- name: Switch1
configuration:
device_tracking:
logging_theft: true
tracking_retry_interval: 30
tracking_auto_source_fallback_ipv4: 10.0.0.1
tracking_auto_source_fallback_mask: 255.255.255.0
tracking_auto_source_fallback_override: true
binding_reachable_lifetime: 7200

A policy for trunk ports that disables all protocol gleaning, enables tracking with a reachable lifetime, marks the port as trusted, sets the security level to glean, and enables data-glean and destination-glean recovery.

device-tracking policy DT_TRUNK_POLICY
trusted-port
device-role switch
limit address-count 100
security-level glean
data-glean recovery ndp dhcp
destination-glean recovery dhcp
prefix-glean
no protocol arp
no protocol dhcp4
no protocol dhcp6
no protocol ndp
tracking enable reachable-lifetime 300
iosxe:
devices:
- name: Switch1
configuration:
device_tracking:
policies:
- name: DT_TRUNK_POLICY
trusted_port: true
device_role: switch
limit_address_count: 100
security_level_glean: true
data_glean_recovery_dhcp: true
data_glean_recovery_ndp: true
destination_glean_recovery_dhcp: true
prefix_glean: true
protocol_arp: false
protocol_dhcp4: false
protocol_dhcp6: false
protocol_ndp: false
tracking_enable: true
tracking_enable_reachable_lifetime_seconds: 300

A minimal policy for access ports with default protocol gleaning, tracking enabled, and a lower address limit.

device-tracking policy DT_ACCESS_POLICY
limit address-count 10
tracking enable
iosxe:
devices:
- name: Switch1
configuration:
device_tracking:
policies:
- name: DT_ACCESS_POLICY
tracking_enable: true
limit_address_count: 10

A policy that disables tracking and sets a stale lifetime for entries.

device-tracking policy DT_NO_TRACK
tracking disable stale-lifetime 3600
iosxe:
devices:
- name: Switch1
configuration:
device_tracking:
policies:
- name: DT_NO_TRACK
tracking_disable: true
tracking_disable_stale_lifetime: "3600"

A policy demonstrating all available attributes including legacy device-role syntax, protocol prefix-lists, security levels, data-glean logging, and wireless medium type.

device-tracking policy DT_FULL_POLICY
trusted-port
device-role node
limit address-count 50
security-level guard
data-glean log-only
data-glean recovery ndp dhcp
destination-glean log-only
destination-glean recovery dhcp
prefix-glean only
protocol arp prefix-list ARP_PFXLIST
protocol dhcp4 prefix-list DHCP4_PFXLIST
protocol dhcp6 prefix-list DHCP6_PFXLIST
protocol ndp prefix-list NDP_PFXLIST
tracking enable reachable-lifetime infinite
medium-type wireless
iosxe:
devices:
- name: Switch1
configuration:
device_tracking:
policies:
- name: DT_FULL_POLICY
trusted_port: true
device_role: node
device_role_node_legacy: true
device_role_switch_legacy: false
device_role_router_legacy: false
data_glean_log_only: true
data_glean_recovery_dhcp: true
data_glean_recovery_ndp: true
prefix_glean: true
prefix_glean_only: true
destination_glean_log_only: true
destination_glean_recovery_dhcp: true
protocol_arp: true
protocol_arp_prefix_list: ARP_PFXLIST
protocol_dhcp4: true
protocol_dhcp4_prefix_list: DHCP4_PFXLIST
protocol_dhcp6: true
protocol_dhcp6_prefix_list: DHCP6_PFXLIST
protocol_ndp: true
protocol_ndp_prefix_list: NDP_PFXLIST
tracking_enable: true
tracking_enable_reachable_lifetime_infinite: true
limit_address_count: 50
security_level_glean: false
security_level_guard: true
security_level_inspect: false
medium_type_wireless: true