两个网卡在同一个ip段

两个网卡在同一个ip段

解决这个问题的最佳技术方案是什么?

我在一台 Linux 服务器(我们称之为srv)中有一个带有两个 NIC 的 /24 段,该服务器在此段中有两个 IP 地址。

  • NIC1/eth0// 10.10.1.101MAC1
  • NIC2/eth1// 10.10.1.102MAC2

该段10.10.1.0 /24通过一个交换机连接起来,该交换机允许基于 MAC/IP 组合通过它进行访问,IP 由该交换机通过 DHCP 设置(基于单独的 MAC)。

到目前为止,似乎上班 -不知何故。我知道,这种设置从技术上来说不好观察一下每 500 毫秒/var/log/messages预计发生的碰撞(火星源包)eth1

...
srv 内核:[1217.220559] martian 源 10.10.1.254 来自 10.10.1.112,位于 dev eth1 上
srv 内核:[1217.220563] ll 标头:ff:ff:ff:ff:ff:ff:00:1e:68:9d:54:05:08:06
srv 内核:[1218.313186] martian 源 10.10.1.255 来自 10.10.1.59,位于 dev eth1 上
srv 内核:[1218.313190] ll 标头:ff:ff:ff:ff:ff:ff:00:13:d4:b7:6f:e9:08:00
...

每个 NIC 都有其特定的职责(连接到由基于 ip 的 vhosts 设置中的一个 apache2 服务器提供服务的不同网站)。

如何解决这个问题?我知道(而且我确实知道),可以通过通常的调用关闭“火星数据包日志记录” sysctrl -p

net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.eth0.log_martians = 0
net.ipv4.conf.eth1.log_martians = 0
net.ipv4.conf.lo.log_martians = 0

但问题应该可以以一种干净的方式解决?还是不能?

问候与感谢

離子

答案1

你真的需要 2 个网卡吗?

解决此问题的一种方法是向其中一个接口添加别名以分配额外的 IP 地址:

sudo /sbin/ifconfig eth0:1 10.10.1.102/24 启动

相关内容