首页 文章

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

提问于
浏览
0

我的Linux(Debian)服务器有eth0和eth1,两者都在同一个子网上 . 它从两个接口接收数据包,但它只回复eth0 . 发送到eth1的数据包将从eth0回复,并且回复具有eth0的src mac和eth1的src IP . 我通过在Linux服务器上运行tcpdump时向eth1发送ping来验证这一点 .

这是一个问题,因为:由于没有使用eth1的源mac发送数据包(初始arp除外),交换机会忘记eth1 mac . 然后,交换机接收的目标mac为eth1的每个数据包都是broadcasted across the network, flooding it,这让我们感到难过 .

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

更多细节:我的Linux服务器是一个ISCSI目标,与作为ISCSI发起者的ESX通信 - 虽然是Cisco交换机 . 交换机在5分钟后忘记MAC,并且ESX可能会记住它们20分钟(如herehere所述) . 因此,当ESX记住Linux的mac时,ESX会不断发送充斥网络的ISCSI请求,而我的服务器只通过其中一个接口发送ISCSI回复 .

1 回答

  • 0

    这不是你要求的,但如果你只是在盒子上设置了一个cron作业

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

    每分钟,你每分钟至少有一个数据包,将eth1与eth1的MAC地址放在一起 . -I 告诉ping绑定到特定接口,因此它赢得了't use eth0 even if that' s首选路由 .

相关问题