本文档介绍如何验证IP设备跟踪(IPDT)操作和某些故障排除操作。
本文档没有任何特定的要求。
本文档中的输出基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
IPDT的主要任务是跟踪连接的主机(MAC和IP地址的关联)。 为此,它以默认间隔30秒发送单播地址解析协议(ARP)探测。这些探测发送到链路另一端所连接主机的MAC地址,并使用第2层(L2)作为默认源。根据RFC 5227中列出的ARP探测定义,这允许ARP所通过的物理接口的MAC地址以及发送方IP地址0.0.0.0。
注意:IPDT已被弃用,而支持基于SISF(交换机集成安全功能)的设备跟踪。SISF提供增强的IP跟踪,并支持IPv4和IPv6。
从Cisco IOS® XE Denali 16.1.1开始,现有的IPv6监听和IP设备跟踪(IPDT)命令具有相应的基于SISF的设备跟踪命令,允许您将配置应用到IPv4和IPv6地址系列。
本文档保留以供参考,因为它涉及传统IP设备跟踪(IPDT)功能。当前部署可以使用基于SISF的设备跟踪,在现代Cisco IOS-XE平台中取代IPDT。有关SISF故障排除的其他指南,请参阅Catalyst 9000系列交换机上的SISF故障排除。
在本文档中,术语“ARP探测”用于指在本地链路上以全零发送方IP地址广播的ARP请求数据包。发送方硬件地址必须包含发送数据包的接口的硬件地址。必须将发件人IP地址字段设置为全零,以避免当地址已被另一台主机使用时,ARP会将其缓存到同一链路上的其他主机中。必须将目标IP地址字段设置为已探测的地址。ARP探测功能可传递一个问题(有人使用这个地址吗?)和一个隐含的语句(这是您希望使用的地址。)
IPDT的目的是让交换机获取并维护通过IP地址连接到交换机的设备列表。探测功能不会填充跟踪条目;它仅用于在通过主机的ARP请求/应答获知条目后维护表中的条目。
启用IPDT时,IP ARP检测会自动启用。它在监控ARP数据包时检测新主机的存在。如果启用了动态ARP检测,则仅使用其验证的ARP数据包来检测设备跟踪表的新主机。
IP DHCP监听(如果已启用)在DHCP分配或撤销新主机的IP地址时检测新主机的存在或删除。当发现给定主机的DHCP流量时,IPDT ARP探测间隔计时器重置。
IPDT是一项始终可用的功能,但是,在较新的Cisco IOS®版本中,默认情况下会启用其相互依赖关系(请参阅Cisco Bug ID CSCuj04986)。 当其IP/MAC主机关联数据库用于填充动态访问控制列表(ACL)的源IP或维护IP地址到安全组标记的绑定时,它非常有用。
在以下两种情况下发送ARP探测:
交换机发送的keepalive探针是L2检查。因此,从交换机的角度来看,ARP中用作源的IP地址并不重要:此功能可在未配置IP地址的设备上使用,因此IP源0.0.0.0不相关。
当主机收到此消息时,它会回复并填写目标IP字段,该字段将使用收到的数据包中唯一可用的IP地址,即主机自己的IP地址。这可能会导致错误重复的IP地址警报,因为作出回复的主机将自己的IP地址同时视为数据包的源和目标;有关重复IP地址方案的详细信息,请参阅排除“重复IP地址0.0.0.0”错误消息故障文章。
IPDT的全局开/关配置是一种传统行为,会导致现场出现问题,因为客户并不总是知道必须启用IPDT才能使用某些功能。在当前版本中,IPDT仅在启用需要IPDT的功能时在接口级别进行控制。
默认情况下,IPDT在这些版本中处于全局启用状态;即no global config命令:
需要注意的是,即使全局启用IPDT,这并不一定意味着IPDT主动监控给定端口。
在IPDT始终打开以及全局启用IPDT时可以全局开启/关闭的版本中,其他功能可确定在特定接口上它是否处于活动状态(请参阅“功能区域”部分)。
从给定接口发出的IPDT及其ARP探测用于以下功能:
| Platform |
功能 |
默认打开(开始于) |
禁用方法 |
禁用CLI |
| Cat 2960/3750(Cisco IOS) |
IPDT |
15.2(1)E * |
全局CLI(旧版本)* 每个接口 |
无ip设备跟踪* IP设备跟踪最大值为0*** |
| Cat 2960/3750(Cisco IOS) |
NMSP |
无 |
全局CLI或 每个接口的CLI |
未启用NMSP NMSP附件禁止发**** |
| Cat 2960/3750(Cisco IOS) |
设备传感器 |
15.0(1)SE |
全局CLI |
无宏自动监控 |
| Cat 2960/3750(Cisco IOS) |
ARP监听 |
15.2(1)E** |
不适用 |
不适用 |
| Cat 3850 |
IPDT |
所有版本* |
每个接口* |
IP设备跟踪最大值为0*** |
| Cat 3850 |
NMSP |
所有版本 |
每个接口 |
NMSP附件抑制 |
| Cat 3850 |
设备传感器 |
无 |
不适用 |
不适用 |
| Cat 3850 |
ARP监听 |
所有版本** |
不适用 |
不适用 |
| Cat 4500 |
IPDT |
15.2(1)E / 3.5.0E * |
全局CLI(旧版本)* 每个接口 |
无IP设备跟踪* IP设备跟踪最大值为0*** |
| Cat 4500 |
NMSP |
无 |
全局CLI或 每个接口的CLI |
未启用NMSP NMSP附件禁止发**** |
| Cat 4500 |
设备传感器 |
15.1(1)SG/3.3.0SG |
全局CLI |
无宏自动监控 |
| Cat 4500 |
ARP监听 |
15.2(1)E/3.5.0E电** |
不适用 |
不适用 |
在默认情况下未启用IPDT的版本中,可以通过运行以下命令全局关闭IPDT:
Switch(config)#no ip device tracking
在IPDT始终开启的版本上,不能运行以前的命令,或者不允许禁用IPDT(Cisco Bug ID CSCuj04986)。 在这种情况下,有几种方法可以确保IPDT不监控特定端口或不生成重复的IP警报。
此命令不允许交换机在检测到链路UP/flap时发送10秒的探测,这样可最大程度地降低在链路另一端的主机检查重复IP地址时发送探测的可能性。RFC指定重复地址检测的10秒窗口。如果延迟设备跟踪探测,则大多数情况下可以解决此问题。
如果交换机在主机(例如,Microsoft Windows PC)处于重复地址检测阶段时发出客户端的ARP探测,则主机将探测检测为重复的IP地址,并向用户显示一条消息,提示在网络上发现重复的IP地址。如果PC无法获取地址,用户必须手动释放/更新地址;断开并重新连接到网络,或者重新启动PC以访问网络。
除了探测延迟,当交换机检测到来自PC/主机的探测时,延迟还会自行重置。例如,如果探测计时器倒计到五秒钟,并且检测到来自PC/主机的ARP探测,则该计时器会重置回10秒。
此配置已通过Cisco Bug ID CSCtn27420提供。
使用此命令,您可以配置交换机以发送不符合RFC的ARP探测;ip源不是0.0.0.0,但它是主机所在的VLAN中的交换机虚拟接口(SVI)。Microsoft Windows计算机不再将探测功能视为RFC 5227定义的探测功能,也不会将其标记为潜在的重复IP。
对于没有可预测/可控制的终端设备的客户,或者对于拥有许多交换机且仅具有L2角色的客户,SVI的配置(在设计中引入第3层变量)不是合适的解决方案。版本15.2(2)E及更高版本中引入的一项增强功能,允许任意分配IP地址的可能性无需属于交换机,即可用作IPDT生成的ARP探测中的源地址。此增强功能引入了通过以下方式修改系统自动行为的机会(此列表显示使用每个命令后系统如何自动行为):
作为上述计算的一个示例,假设您探测主机192.168.1.200,并提供了掩码和主机位,则生成源地址192.168.1.1。如果探测条目10.5.5.20,则可以生成源地址为10.5.5.1的ARP探测,以此类推。
此命令不会真正禁用IPDT,但是它会将跟踪的主机数量限制为零。这不是推荐的解决方案,必须谨慎使用,因为它会影响依赖于IPDT的所有其他功能,包括Cisco Bug ID CSCun81556中描述的端口通道配置。
可触发IPDT的一些功能包括NMSP、设备传感器、dot1x/MAB、WebAuth和IPSG。建议不要在中继端口上启用这些功能。此解决方案专用于最困难或最复杂的情况。在这些情况下,所有以前提供的解决方案要么未按预期运行,要么产生了其他问题。但是,这是在禁用IPDT时允许极精细度的唯一解决方案,因为您只能关闭导致问题的与IPDT相关的功能,而所有其他功能不会受到影响。
在最新的Cisco IOS版本15.2(2)E及更高版本中,您会看到类似下面的输出:
Switch#show ip device tracking interface GigabitEthernet 1/0/9
--------------------------------------------
Interface GigabitEthernet1/0/9 is: STAND ALONE
IP Device Tracking = Disabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 180000
IPv6 Device Tracking Client Registered Handle: 75
IP Device Tracking Enabled Features:
HOST_TRACK_CLIENT_ATTACHMENT
HOST_TRACK_CLIENT_SM
输出底部所有帽中的两行是使用IPDT工作的两行。如果禁用接口中运行的单个服务,则可以避免禁用设备跟踪时产生的大多数问题。
在Cisco IOS的早期版本中,尚无法轻松了解接口下启用了哪些模块,因此您必须经过更复杂的过程才能获得相同的结果。您必须打开debug ip device track interface,它是在大多数设置中必须安全的低频日志。请注意不要打开debug ip device tracking all,因为反之,在扩展的情况下会泛洪控制台。
一旦启动调试,将接口恢复为默认值,然后从接口配置中添加和删除IPDT服务。调试的结果会告诉您哪些服务已用您使用的命令启用/禁用。
Switch(config)#interface GigabitEthernet 1/0/9
Switch(config-if)#ip device tracking maximum 10
Switch(config-if)#
*Mar 27 09:58:49.470: sw_host_track-interface:Feature 00000008 enabled on port Gi1/0/9, mask now 0000004C, 65 ports enabled
*Mar 27 09:58:49.471: sw_host_track-interface:Gi1/0/9[L2 DOWN, IPHOST DIS]IP host tracking max set to 10
Switch(config-if)#
输出显示您已启用功00000008掩码,新功能掩码为0000004C。
现在,删除您刚才添加的配置:
Switch(config-if)#no ip device tracking maximum 10
Switch(config-if)#
*Mar 27 10:02:31.154: sw_host_track-interface:Feature 00000008 disabled on port
Gi1/0/9, mask now 00000044, 65 ports enabled
*Mar 27 10:02:31.154: sw_host_track-interface:Gi1/0/9[L2 DOWN, IPHOST DIS]IP
host tracking max cleared
*Mar 27 10:02:31.154: sw_host_track-interface:Max limit has been removed from
the interface GigabitEthernet1/0/9.
Switch(config-if)#
删除特征掩00000008后,您会看到00000044始掩码,该掩码必须是原始默认掩码。由于AIM为00000044x00000004,而SM为0x00000040,因此预期值为1000,两者相加结果为0x00000044。
接口下可以运行多个IPDT服务:
| IPT服务 |
接口 |
| HOST_TRACK_CLIENT_IP_ADMISSIONS |
= 0x00000001 |
| HOST_TRACK_CLIENT_DOT1X |
= 0x00000002 |
| HOST_TRACK_CLIENT_ATTACHMENT |
= 0x00000004 |
| HOST_TRACK_CLIENT_TRACK_HOST_UPTO_MAX |
= 0x00000008 |
| HOST_TRACK_CLIENT_RSVP |
= 0x00000010 |
| HOST_TRACK_CLIENT_CTS |
= 0x00000020 |
| HOST_TRACK_CLIENT_SM |
= 0x00000040 |
| HOST_TRACK_CLIENT_WIRELESS |
= 0x00000080 |
在本例中,HOST_TRACK_CLIENT_SM(SESSION-MANAGER)和HOST_TRACK_CLIENT_ATTACHMENT(也称为AIM/NMSP),为IPDT配置模块。要关闭此接口上的IPDT,必须同时禁用这两个接口,因为只有在同时禁用所有使用该接口的功能时,才会禁用IPDT。
禁用这些功能后,您会看到如下所示的输出:
Switch(config-if)#do show ip device tracking interface GigabitEthernet 1/0/9
--------------------------------------------
Interface GigabitEthernet1/0/9 is: STAND ALONE
IP Device Tracking = Disabled ß IPDT is disabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 180000
IP Device Tracking Enabled Features:
ß No active features
--------------------------------------------
通过这种方式,IPDT会以更精细的方式被禁用。
以下是用于禁用前面讨论的一些功能的命令示例:
运行以下命令以验证设备上的IPDT状态:
| 版本 | 发布日期 | 备注 |
|---|---|---|
5.0 |
07-Jul-2026
|
更新的拼写、语法、间距和CCW警报。 |
4.0 |
04-Dec-2025
|
更新了机器翻译和SEO。 |
3.0 |
19-Dec-2024
|
更新的格式。 |
2.0 |
21-Aug-2023
|
更新了SEO、样式要求和格式。 |
1.0 |
25-Nov-2014
|
初始版本 |