将以太网数据包发送到具有特定 mac 地址的设备

将以太网数据包发送到具有特定 mac 地址的设备

是否可以发送针对具有特定 MAC 地址的 PC 的以太网数据包?

我处于以下情况,一开始我有两个位于同一子网中的设备通过交换机连接。Dev1 - 192.168.0.1并且Dev2 - 192.168.0.100。不断地向其中Dev2发送数据。192.168.0.1Dev1

现在,如果其他人使用与 相同的 IP 加入网络Dev1,那么Dev3 - 192.168.0.1发送的数据Dev2可以由Dev1或接收Dev3

有没有办法确保数据只发送到Dev1? 是否可以在交换机中添加路由?

答案1

你混淆了两个不同的问题:

  1. ARP 协议详细信息。

您的系统使用地址解析协议知道具有已知 IP 地址的目标系统的远程 MAC 地址。它实际上是网络中广播的数据包:“嘿,谁是 192.168.5.34,告诉我你的 MAC 地址!”,并且该系统回复:“我是 192.168.5.34,我的 MAC 地址是 XX:XX:XX:XX:XX:XX”。然后,所有看到此回复的系统都会在其动态 ARP 表中记录 192.168.5.34 是...,并且在一段时间内它们不会查询,而是向该 MAC 地址发送该 IP 的数据包。一段时间后,表中的记录将过期,解析过程将重复。通常这是 300 秒。

当然,如果流氓系统的响应速度比正版系统快,你就会有麻烦了。这叫做 ARP 欺骗。

您可以将静态条目放入每台计算机的 ARP(MAC 到 IP)表中。如果某个 IP 地址有静态条目,则其条目永不过期,该系统将永远不会发送该 IP 的 ARP 解析请求,并且始终使用静态条目中的 MAC 地址。在 Linux 中,这样做如下:

ip neighbour add 192.168.5.34 lladdr XX:XX:XX:XX:XX:XX dev eth1

或者,如果已经有一个动态条目,则将“add”替换为“change”。您可以使用“ip neigh show”查看表格(所有静态和动态条目以及到期状态)。

要在重启期间保留此状态,请使用 /etc/ethers 文件,即将重要系统的 MAC 地址放入该文件中以防止欺骗。

此外,一些交换机可以实现额外的安全性。我手头有一台 D-Link DGS-1210-52,它有这样的功能,称为“安全 -> ARP 欺骗预防”,您可以在交换机级别添加“静态 arp”条目。这个特定的交换机可以存储 64 个这样的条目。此外,它可以将每个条目绑定到某些交换机端口。我没有尝试过这个。

  1. 切换工作内部

MAC 地址并不是永远绑定到网卡的东西。它只是默认设置,任何人都可以更改。例如,在 Linux 中,我可以运行“ip link set dev eth1 address YY:YY:YY:YY:YY:YY”,这将更改网卡的 MAC 地址(直到重新启动)。因此,我可以将 MAC 地址设置为我想要劫持其数据包的系统的 MAC 地址,然后交换机再次开始工作。

交换机会维护一个表,其中记录了它在哪个端口上看到的 MAC 地址。这称为 MAC 地址学习。如果另一个端口上出现相同的 MAC 地址怎么办?它会认为我刚刚将系统重新连接到另一个端口并更新该表。该表中的条目也会在一段时间后过期,但这与这个问题无关。

如果某个 MAC 从一个端口跳转到另一个端口并跳转回来,某些交换机会提醒您,有些则不会。例如,DGS-1210-52 就不会。

但是,您可以在此转发表中添加静态条目,这样,所讨论的 MAC 所在的端口将不会通过学习来确定,而是您将其配置到交换机中。

还有一些其他与安全相关的功能。一些交换机可以自动绑定它们在端口上看到的前几个 MAC 地址,如果有更多 MAC 地址,则会关闭端口。也就是说,如果您没有将 MAC 配置到交换机中,它将在第一次系统连接时自动配置,然后要将另一台计算机连接到同一端口,您需要重置交换机上的端口安全性。(我在 Cisco SF300 交换机上使用了此功能。)等等。

因此,请阅读您的交换机手册。

相关内容