gpt4 book ai didi

Linux 从一个接口(interface)的源 IP 而从另一个接口(interface)的源 MAC 发送数据包

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:41 25 4
gpt4 key购买 nike

我的 Linux (Debian) 服务器有 eth0 和 eth1,并且两者位于同一子网中。它从两个接口(interface)接收数据包,但仅从 eth0 进行回复。发送到eth1的数据包会从eth0回复,回复中包含eth0的源mac和eth1的源IP。我通过在 Linux 服务器上运行 tcpdump 时向 eth1 发送 ping 来验证这一点。

这是一个问题,因为:由于没有发送源 mac 为 eth1 的数据包(初始 arp 除外),因此交换机会忘记 eth1 mac。那么交换机收到的每个目的mac为eth1的报文都是broadcasted across the network, flooding it这让我们感到悲伤。

我想要:我的 Linux 服务器从 eth0 和 eth1 发送数据包。我认为最好的解决方案是,对于我们收到的每个数据包,我们从同一个接口(interface)进行回复。另一种说法是,我想将每个接口(interface)绑定(bind)到其 IP 和 MAC - 这样它只会从这些地址发送数据包。

更多详情:我的 Linux 服务器是一个 ISCSI 目标,通过 Cisco 交换机与 ESX(ISCSI 启动器)进行通信。交换机会在 5 分钟后忘记 MAC,而 ESX 可能会记住它们 20 分钟(如 herehere 中所述)。因此,虽然 ESX 会记住 Linux 的 MAC,但 ESX 会不断发送淹没网络的 ISCSI 请求,而我的服务器仅通过其中一个接口(interface)发送 ISCSI 回复。

最佳答案

这不是您所要求的,但如果您只是在机器上设置了一个 cron 作业,那么就可以了

ping -c 1 -I eth1 <address of eth1's default gateway>

每分钟,那么每分钟至少有一个数据包离开带有 eth1 MAC 地址的 eth1。 -I 告诉 ping 绑定(bind)到特定接口(interface),因此即使这是首选路由,它也不会使用 eth0。

关于Linux 从一个接口(interface)的源 IP 而从另一个接口(interface)的源 MAC 发送数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com