linux – 同一子网上具有IP的多个物理接口

linux – 同一子网上具有IP的多个物理接口,第1张

概述我有一个带有9个网卡的 linux机箱,我希望其中有8个网卡在同一个子网上有唯一的地址,例如: ifconfig eth1 192.168.123.1 netmask 255.255.0.0ifconfig eth2 192.168.123.2 netmask 255.255.0.0ifconfig eth3 192.168.123.3 netmask 255.255.0.0...ifco 我有一个带有9个网卡的 linux机箱,我希望其中有8个网卡在同一个子网上有唯一的地址,例如:
ifconfig eth1 192.168.123.1 netmask 255.255.0.0ifconfig eth2 192.168.123.2 netmask 255.255.0.0ifconfig eth3 192.168.123.3 netmask 255.255.0.0...ifconfig eth8 192.168.123.8 netmask 255.255.0.0

在这种情况下,默认ARP行为极其适得其反,因为它会导致所有IP的所有流量完全通过eth1传递,这几乎与我想要的完全相反.

所以我四处翻找并最终对sysctl进行了一些更改,例如:

net.ipv4.conf.all.arp_filter=1net.ipv4.conf.all.arp_ignore=1net.ipv4.conf.all.arp_announce=2

这确实阻止了eth1冒充所有其他人,但我仍然无法成功Ping除eth1的地址以外的任何内容. (例如,来自同一交换机上的第二台计算机,只有192.168.123.1响应Ping)

我猜我需要用arptables或iproute或SOMETHING做点什么,但我在这个领域迷失了.

奖励要点:解决方案必须与linux 2.6.27.27兼容. (更具体地说,Slax 6.1.2)

解决方法 你需要一个 strong end system model. linux基本上是围绕一个弱的发送系统模型构建的,所以它对于这个应用程序来说真的不是一个好的 *** 作系统选择.

您将不得不伪造所需的所有行为,从ARP到策略路由到源地址选择.您还需要过滤器以防止数据包到达错误的接口时被接受.

绝对必要的步骤是:

>在所有接口上配置arp_filter = 1和arp_ignore = 2.
>为传出流量添加每个接口,基于源的路由. (必须根据源地址选择目标接口.)
>添加每个接口的入口过滤以静默丢弃在错误接口上接收的数据包. (将目标地址分配给另一个接口的数据包.)

不幸的是,对于这三个步骤是否都是必需的,尚未达成共识.弱端系统模型内置于整个linux TCP / IP堆栈中,并不清楚组播等细微问题可能出现的问题.

例如,目前尚不清楚如何为广播选择输出接口.它应该全部消失吗?也许.如果堆栈获得一个源地址未分配给其中一个接口的出站广播,那么正确的行为是什么?

同样,你选择了错误的工具.

总结

以上是内存溢出为你收集整理的linux – 同一子网上具有IP的多个物理接口全部内容,希望文章能够帮你解决linux – 同一子网上具有IP的多个物理接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1044289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存