首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有相同IP但MAC地址不同的多台主机的网络层通信

具有相同IP但MAC地址不同的多台主机的网络层通信
EN

Server Fault用户
提问于 2021-12-16 20:54:13
回答 3查看 321关注 0票数 0

由于一个不幸的(错误)配置问题,我有大约100个主机,其中IPv6 6/IPv6 4(甚至是IPv6链接本地的)地址都是相同的,目前我无法更改。然而,所有主机都有唯一和已知的MAC地址,并且处于相同的广播域中。通过自己制作相应的以太网帧(使用已知的MAC地址而不是通过ARP/.获得的MAC ),可以在IP级别上单独和同时与主机通信吗?所有(嵌入式)主机都运行Linux网络堆栈。

是否存在curl这样的现有程序的包装器,允许我与每个主机维护一个单独的TCP连接,允许我在上述情况下通过HTTP同时与它们对话?在我看来,从理论上讲,这是可能的。

EN

回答 3

Server Fault用户

发布于 2021-12-16 22:40:38

正如@AlexD所指出的,您必须在本地计算机中手动将通用IP地址a.b.c.d与每个特定远程主机的所需MAC地址xx-xx相关联,以便您能够连接到它。

在Windows中,可以在提升的命令外壳窗口中使用arp命令:

代码语言:javascript
运行
复制
arp -s a.b.c.d xx-xx-xx-xx-xx-xx

在使用arp -d a.b.c.d删除之前,此关联是永久的(如arp -?所示)。

Linux中的命令和选项-s/-d是相同的,它们在具有根权限的shell中执行,或者以sudo作为前缀,但只影响驻留的ARP缓存,因此在重启时会被遗忘(建议使用man arp)。

编辑:正如@MAC 67所述,本地网络中的每个主机只能有一对IP/MAC。这是因为本地流量仅使用给定IP地址的最后已知MAC地址(通过ARP查询或ARP表查找找到)。如果有其他具有相同IP的机器,它们将不会被识别。

只有在下列情况下,这种情况才会改变:

  1. (关联是静态的(由管理员使用arp命令完成)这对配对会被管理员再次更改,如果它不是永久的(那么它会变成动态的),那么在重启这台机器时就会忘记它。或,
  2. 使用ARP协议,搜索是动态的.在一段时间后,结果将被标记为陈旧,下一个连接将在本地网络中引发新的搜索。然后其他一些主机可能会赢得给它的MAC地址的比赛。

手动配对比自动配对具有更高的优先级。

它归结为:我们只能有一对IP/MAC对目的主机进行成功的通信。如果本地网络中有几对,由于配置错误或恶意软件/黑客活动,而我们正在使用ARP自动发现,则会出现间歇性问题或更糟的问题。

当然,具有唯一IP地址的动态方法是首选的;这意味着管理的麻烦较少.;)

票数 1
EN

Server Fault用户

发布于 2021-12-16 21:39:30

您可以使用arptables在管理机器上禁用传入的ARP更新,然后对每个已瘫痪的主机逐一手动使用arp更新ARP表。

票数 0
EN

Server Fault用户

发布于 2021-12-18 09:24:07

如果您构建了自己的IP堆栈,那么您所要求的只是假设性的。

如果使用IP地址,则IP堆栈使用动态或静态ARP来确定每个IP所需的MAC地址。在任何给定的时间都只能有一个映射。应用程序无法为任何套接字连接指定或强制特定的映射。详情见@Fjor的答复。

如果您使用允许每个套接字的IP到MAC映射的API创建自己的IP堆栈,那么您可以按照您的要求进行操作。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1087532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档