在VLAN上定位特定工作站的最佳方法是什么?

如果工作站IP地址显示在ACL上,我有时需要执行此操作Deny


洪流使用
高带宽使用率(热门话题)

发声警报

我现在的操作方式,


登录到同一VLAN中的核心交换机
Ping IP地址,
从ARP表中检索MAC
Mac地址查找以查看从哪个交换机获知了
登录到该交换机后冲洗并重复操作,直到找到工作站为止



有时这可能需要登录约7个交换机,我可以对此网络进行一些特定的挑战此刻什么也不做。在所有思科商店中,每个VLAN上都有数百个用户的巨大VLAN(/ 16),并且使用Cisco交换机的预算最少,必须有一种更有效的方法来跟踪主机? />
编辑:添加更多详细信息

特别是我在寻找用户连接到的交换机端口?还有一些历史记录将是很棒的..因为我的方法仅在用户仍处于连接状态时才有效,而当我在早晨查看日志时没有任何价值,但是设备不再连接。

有没有中央DNS或Active Directory,就像来宾网络一样,其中仅提供Internet访问。我尝试提供一些管理和一点安全性。 MAC,我还没有研究这个问题,但是ARP是准确的,我更关心的是找到违规机器所连接的交换机端口。

这提供了一些澄清信息

评论

关于“ show ip dhcp binding | inc”:前面的多余字符是媒体类型。如果删除前两个字符,则将剩下客户端MAC。表2中的两位数字表示形式:freesoft.org/CIE/RFC/1700/24.htm

@legioxi,这假定设备已使用MAC对其自身进行了标识。如果使用字符串,则可能是服务器显示的内容。

#1 楼

看一下Layer2 traceroute(用于cisco)。.cdp应该正在运行...

Router# traceroute mac 0000.0201.0601 0000.0201.0201
Source 0000.0201.0601 found on con6[WS-C2950G-24-EI] (2.2.6.6)
con6 (2.2.6.6) :Fa0/1 => Fa0/3
con5                 (2.2.5.5        )  :    Fa0/3 => Gi0/1
con1                 (2.2.1.1        )  :    Gi0/1 => Gi0/2
con2                 (2.2.2.2        )  :    Gi0/2 => Fa0/1
Destination 0000.0201.0201 found on con2[WS-C3550-24] (2.2.2.2)
Layer 2 trace completed
Router# 
Router# traceroute mac 0001.0000.0204 0001.0000.0304 detail 
Source 0001.0000.0204 found on VAYU[WS-C6509] (2.1.1.10)
1 VAYU / WS-C6509 / 2.1.1.10 :
                Gi6/1 [full, 1000M] => Po100 [auto, auto]
2 PANI / WS-C6509 / 2.1.1.12 :
                Po100 [auto, auto] => Po110 [auto, auto]
3 BUMI / WS-C6509 / 2.1.1.13 :
                Po110 [auto, auto] => Po120 [auto, auto]
4 AGNI / WS-C6509 / 2.1.1.11 :
                Po120 [auto, auto] => Gi8/12 [full, 1000M] Destination 0001.0000.0304 
found on AGNI[WS-C6509] (2.1.1.11) Layer 2 trace completed.
Router# 


评论


太神奇了,我现在在玩它。正是我想要的

–hyussuf
2013年6月6日22:01

#2 楼

我们使用Cacti上的mactrack插件来执行此类操作。效果很好,历史数据也可用。

只要ARP和MAC地址表可以通过SNMP进行访问,它就可以工作。我们唯一的小问题是站点的第3层实例是ASA。由于mactrack支持,我们只是通过脚本通过提取ARP表并生成arpwatch文件来解决此问题。

设置中的示例屏幕截图: Imgurl链接:http://i.imgur.com/h9JQVkC.png

评论


真好!在imgur之类的东西上放个更大的图片可能会更好。我看不到太多。 :-)

–约翰·詹森(John Jensen)
2013年6月6日21:28

@JohnJensen是的,那只是stackexchange将图片缩小,它以完整尺寸上传。尝试在另一个标签中打开图像,例如“右键单击-在Chrome的新标签中打开图像”。无论如何都会将一个链接添加到答案。

– Stefan Radovanovici
2013年6月7日下午6:01

#3 楼

有两种方法可以廉价地实现此目的(研究和/或实施工作,我将由您自己决定)。


有一个脚本可以每次登录您的边缘设备之一,并从中获取MAC地址表。您可能要为此排除中继接口,但是创建一个哈希(或对您来说是python的字典)是很简单的,其中的键是边缘开关,值是另一个哈希,基本上是“ mac.addr->接口”。这将消除您在边缘交换机上追逐MAC的需要,这似乎是最繁琐的工作。我可以建议使用Perl的Net::Appliance::Session或Python的exscript来做到这一点(假设您可以访问* NIX框)。
使用SNMP查询此数据,这样就无需脚本即可实际登录到切换并运行命令。您可以自行查找MAC地址表的MIB,但这是Google搜索,可以帮助您入门。
如果仅在Windows上,则可以使用SecureCRT或TeraTerm将宏设置为“半自动化”为您服务,但是我对这两种方法的经验都非常有限,因此YMMV。

希望能给您一些想法。

#4 楼

我喜欢有一个脚本,每15分钟抓取一次show arpshow cam dyn输出,我用term exec prompt timestamp为其加时间戳,因此我们在时间上有一个大致的相关性。然后,我将所有开关的输出附加到一个文件中...每天每个开关一个文件。

所有这些日志都保存在同一目录中,以便于grepping。

查找如果您知道拓扑,主机将成为一个相当简单的grep练习...卡在没有grep的Windows中?使用cygwin ...

#5 楼

为什么不简化事情并在IP上进行nslookup,从DNS获取主机名,然后使用该主机名通过资产列表或管理数据库查找计算机?或者,如果您没有反向DNS设置,则可以登录DHCP服务器以获取主机名。

我知道这不是Cisco / CLI方法,但是如果您的用户可以使用被分配给计算机1-1。如果您是一对一的用户,则可以使用Windows / Linux工具找出计算机的当前用户。

评论


我不认为hyussuf试图找到计算机上的用户-因为这是网络工程,并且通过他提供的示例,我假设他正在尝试确定设备连接到哪个物理端口,并且该设备可能并不总是工作站。

–马克
2013年6月5日23:26

的确,不仅如此,而且这是一个来宾网络,我们提供的唯一服务是互联网,BYOD和要求互联网访问以完成其工作的小型公司的混合物。从技术上讲,这是一个位于各种用户的远程位置的ISP。 cisco路由器是我的dhcp服务器,当我查看绑定信息时,MAC是完全错误的,即使有2个额外的字符,MAC也没有考虑。

–hyussuf
2013年6月5日23:28



我的主要目标也是找到有问题的交换机端口并断开连接或“关闭” ...我很抱歉,无法弄清楚如何换新线

–hyussuf
2013年6月5日23:34

您可能希望通过发布到我的答案的两个评论中更详细地更新问题。肯定有一些好的信息可以帮助您解答。

–some_guy_long_gone
2013年6月5日23:43

#6 楼

您的操作方式与我手动执行操作的方式相同。

那里有软件可以为您省去手动操作。 SolarWinds Engineering Toolkit中包含的工具将可以使用,尽管很遗憾,它并不便宜。我敢肯定还有其他选择。

如果您打算使用中间解决方案或一些脚本工作,请查看此答案中发出的SNMP命令,以了解您如何使用它。可以从具有CLI SNMP客户端的系统中编写脚本。

编辑添加:我想您的“漂洗和重复”过程不会重新包括ping和其他操作。一旦确定了mac地址,就应该可以执行sh mac addr |。在####中(whoops尖括号消失)

评论


正确,仅ping一次,“ show mac add | inc ####”,多次与一些show cdp邻居混合

–hyussuf
2013年6月5日23:26

我将透露我可以使用Engineering Toolkit以及用户设备跟踪器(solarwinds.com/user-device-tracker.aspx),并且有99%的时间我最终登录到交换机并只是这样做手动。诚然,我很少需要深7步,但这确实有效。

–马克
2013年6月5日23:30

我的SNMP-fu不强壮,但是该链接非常有趣,并且给了我一些想法。

–hyussuf
2013年6月6日15:05

#7 楼

您要问两件事。
1.在您的网络上找到一个MAC-我建议创建一个脚本(php)并使用SNMP查询所有MAC地址表,以为您的IP地址分配交换机/端口/MAC地址。

2.监控您的使用情况(激增的使用情况,高带宽使用情况(发声最多的人),发声警报)-使用解决方案作为ntop来监视网络上的流量。我很早以前就用过,很棒。

#8 楼

只是一个建议...如果您有某种可以在特定事件上触发的主动syslog检查,则可以编写脚本以SNMP查找每个交换机上的IP,从而知道事件发生时的大致时间。

(对不起,我找不到确切的OID)

编辑:链接“使用SNMP从Catalyst交换机的MAC地址中查找端口号”我忘记了comm @ vlan把戏。 ping有很多表,以查找人类所需的所有信息。 :-(

#9 楼

switchmap是另一个工具,可用于跟踪哪个mac地址位于哪个switchport后面(以及其他)。

#10 楼

我已经用netdisco收集了这些信息。它将允许使用主机名,IP地址,MAC地址等查询数据库,并返回交换器和交换端口。它还会做一些其他有用的事情。

#11 楼

您可能会发现此链接很有用

http://arunrkaushik.blogspot.com/2007/10/traceroute-mac-ip.html

评论


Net Eng SE通常被认为是良好的作风,包括回答的基本细节,并在必要时提供参考材料的链接。 (因为“链接腐烂”最终意味着URL不会进入任何有用的位置。)

–克雷格·康斯坦丁(Craig Constantine)
2013年6月26日23:57