有什么好方法可以处理一个网络上具有相同 MAC 地址的多个设备?

有什么好方法可以处理一个网络上具有相同 MAC 地址的多个设备?

我使用的设备从生产线上下来时都设置为相同的 MAC 地址。我可以为每个设备设置自己的静态 IP,我想知道是否有办法同时将它们连接到网络,以便向它们传输配置数据(包括新的 MAC 地址)?

我有一台 Cisco SF 200-24“智能交换机”,到目前为止,我已尝试将交换机上的每个端口设置为其自己的 VLAN(模式:访问),并将另一个端口设置为位于所有 VLAN 上,作为到上游服务器的中继线,我希望这些设备与之通信。

目前,我已将每台设备设置为在其端具有静态 IP,但我似乎无法让它们通过中继线与上游计算机通信。我不希望(或希望)设备能够相互通信,只有连接到中继端口的服务器可以通信。

我所做的事情是否可以利用我现有的设备来实现,还是我只能对每个设备分别进行配置?

“你是个白痴,不要将具有相同 MAC 的东西连接到同一个网络”在这里也可能是一个可以接受的答案,但我希望可能会有一个更有趣的答案。

编辑:哈哈,这里的人们对他们的网络硬件充满热情。我想我不应该感到惊讶。我继承了这个可爱的传统设计,我可以忍受它,直到我能给我们的制造商提供新的固件版本。感谢大家的参与。

答案1

大约 6 年前,我必须在我们的一家生产工厂“解决”同样的情况。

我得告诉生产工程师他们是白痴 :-)。
他们为自己辩解:这是有史以来第一个网络产品,研发部门还没有仔细考虑过生产后果。

当时没有办法解决这个问题(现在也没有)。
每台设备都必须单独连接到 PC 才能重新配置 MAC。(后来发现我们无论如何都需要这样做,因为在研发部门修复了一些错误后,每台设备也需要刷新新固件。)

在后续系列中,开发人员让这个过程变得尽可能轻松:标准固件有一个非常基本的最小引导加载程序,它将启动一个具有硬编码固定 IP 地址的 TCP/IP 堆栈。这将启动并尝试从另一个硬编码 IP 地址通过 TFTP 传输完整固件映像。完成后,将从 TFTP 服务器中提取包含唯一 MAC 的第二个文件并将其闪存到设备中。
之后,设备重新启动,出现完整的闪存映像,该映像为其 IP 地址执行 DHCP。获取 dhcp 地址后,它会将一个包含其自身 MAC 地址的小文件上传到 TFTP 服务器,以确认已完成。

控制它的 PC 运行 DHCP 服务器和 TFTP 服务器。还有一个控制应用程序,用于准备带有 mac 地址的文件。
设备成功上传确认文件后,控制应用程序会提示操作员插入下一个设备,并将下一个 mac 地址写入文件。
(应用程序知道下载和刷新通常需要多长时间。如果第一次 TFTP 传输和上传确认文件之间的时间太长,操作员会收到通知,表示设备可能有故障。内置网络堆栈质量测试。)
Flash over LAN 选项也是客户可以用来升级固件的功能。
无论如何都必须实现它,所以我们不妨用它来处理“如何在那里获取初始配置”的问题。

PS. DHCP 服务器提供了一个自定义 DHCP 选项来向设备标识自己。在客户 LAN 中,DHCP 显然不会这样做,因此当我们的设备看到“正常”的 DHCP 服务器时,它们只会继续启动而不会尝试上传确认文件。

答案2

你是个白痴,不要将具有相同 MAC 的东西连接到同一个网络。

;-)

认真地说,MAC 地址对于 IEEE 802.3 网络的工作方式来说绝对是至关重要的。如果以太网电缆的同一物理位上有多个具有相同 MAC 的设备,则当 ARP 数据包飞过时,每个接收器都会响应“那就是我”。

因此,您必须维护单独的物理线路。您提到了 VLAN。它们在第 2 层运行,与以太网 MAC 地址位于同一位置(尽管在逻辑链路控制或 LLC 子层中)。

所以,是的,VLAN 可以解决问题。但是,您确实需要为设备授予唯一的第 3 层 (IP) 地址,这可能是一个挑战,因为您将无法使用 DHCP。

简而言之,回到我的(你的)第一句话。

答案3

“你是个白痴,不要将具有相同 MAC 地址的东西连接到同一个网络”

(你说这样就好了):)

解决您的问题的正确答案是修复制造过程以在设备上分配不同的 MAC 地址,可以按顺序分配,也可以按任何方式分配(制造日期然后是唯一的#,等等)

答案4

我不会告诉你你是个白痴 — — 尽管你说没关系 — — 而是告诉你为什么不应该将具有相同 MAC 的东西放在同一个网络上。

SystemA 想要与 SystemB 通信。SystemA 获取 SystemB 的 IP 地址并尝试确定两者之间的路由。如果 SystemA 和 SystemB 位于同一网络上,则 SystemA 需要 SystemB 的 MAC 地址来向 SystemB 发送数据包。SystemA 使用广播 ARP 消息获取此信息,并将此信息缓存在 ARP 表中。

(如果系统 A 在加利福尼亚,而系统 B 在纽约,它会找到一条将数据包发送到纽约的路由,并且连接到系统 B 的路由器 / 交换机需要知道系统 B 的 MAC 地址,以便可以发送数据包。因此,MAC 地址仍在使用,但系统 A 不需要知道这一点。系统 A 只需要知道其自己的路由器的 MAC 地址。)

因此,基本上:当您将具有相同 MAC 地址的设备放在网络上时,当多个设备说“那就是我!”时,任何试图与这些设备通信的东西都会变得混乱。听起来你正在尝试使用 VLAN 来解决这个问题,但是......

我不建议这么做。我只是说说而已。

相关内容