在网络上定位主机

网络工程 思科 转变 VLAN cisco 命令 管理
2021-07-28 17:22:21

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

如果工作站 IP 地址出现在 ACL Deny 中,我有时需要这样做

  1. 洪流使用
  2. 高带宽使用(Top Talkers)
  3. 鼻息警报

    我现在的做法,

    • 登录同一VLAN内的核心交换机
    • Ping IP 地址,
    • 从 ARP 表中检索 MAC
    • Mac地址查找,看看是从哪个交换机学来的
    • 登录到该开关 冲洗并重复,直到我找到工作站

有时这需要登录到大约 7 个交换机,这个网络存在特定的挑战,我目前无能为力。巨大的 VLAN (/16),每个 VLAN 上有几百个用户

在所有 Cisco 商店中,以最少的预算使用 Cisco 交换机,必须有一种更有效的方法来跟踪主机?

编辑:添加更多细节

具体来说,我正在寻找用户连接到的交换机端口?还有一些历史记录会很棒..因为我的方法只在用户仍然连接时有效,当我早上查看日志时没有价值,但设备不再连接。

没有中央 DNS 或 Active Directory,它就像一个访客网络,只提供互联网访问。我尝试提供一些管理和一些安全性。

我试过“show ip dhcp binding | inc”它给了我一个奇怪的 MAC(有 2 个额外的字符),它不是关联的设备 MAC,我还没有研究过这个,但 ARP 是准确的,我更关心找到有问题的机器所连接的交换机端口。

希望这提供了一些澄清

4个回答

看看Layer2 traceroute (for cisco).. Cdp 应该运行 btw ...

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# 

我们使用Cacti 上mactrack插件来做这些事情。效果很好,历史数据也可用。

只要 ARP 和 MAC 地址表可通过 SNMP 获得,它就可以工作。我们遇到的唯一小问题是站点的第 3 层实例是 ASA。我们只是通过脚本提取 ARP 表并生成arpwatch文件来解决这个问题,因为 mactrack 支持它。

我们设置的示例屏幕截图: 在此处输入图片说明

图片链接:http ://i.imgur.com/h9JQVkC.png

有几种方法可以廉价地做到这一点(研究和/或实施的练习我会留给你)。

  1. 有一个脚本可以登录到您的每个边缘设备并从中获取 MAC 地址表。您将希望为此排除中继接口,但是创建一个哈希(或为您的 Python 人使用 dict)将是微不足道的,其中键是边缘交换机,而值是另一个基本上是“mac.addr -> interface”的哈希”。这将消除您在边缘交换机上追踪 MAC 的需要,这似乎是大部分的跑腿工作。我可以推荐使用 PerlNet::Appliance::Session或 Pythonexscript来实现这一点(假设您可以访问 *NIX 框)。

  2. 使用 SNMP 查询此数据,这将无需脚本来实际登录交换机和运行命令。您需要自己查找 MAC 地址表的 MIB,但这里有一个 Google 搜索可以帮助您入门

  3. 如果您仅使用 Windows,则可以使用 SecureCRT 或 TeraTerm 设置宏来为您“半自动化”执行此操作,但我对其中任何一个的经验都非常有限,所以 YMMV。

希望能给你一些想法。

我喜欢有一个每 15 分钟抓取show arpshow cam dyn输出一次的脚本,我给它加上时间戳,term exec prompt timestamp所以我们有一个粗略的时间相关性。然后我将所有开关输出附加到一个文件中……每个开关每天一个文件。

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

如果您知道拓扑结构,查找主机就变成了一个相当简单的 grep 练习……在没有 grep 的情况下被困在 windows 中?使用 cygwin...