AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 580160
Accepted
sardean
sardean
Asked: 2014-03-06 17:55:22 +0800 CST2014-03-06 17:55:22 +0800 CST 2014-03-06 17:55:22 +0800 CST

ARP 在同一网络上具有多个接口的 Linux 服务器上以单个 MAC 地址响应

  • 772

Linux 服务器有 2 个活动网络接口:

IF:eth1    IP:192.168.1.1/24    MAC:11:11:11:11:11:11   (1GbE)
IF:eth2    IP:192.168.1.2/24    MAC:22:22:22:22:22:22   (10GbE)

这个想法是 10GbE 接口 (eth2) 是与网络上的主机通信的主要接口。我想保留第二个 1GbE 接口 (eth1) 作为故障保护。如果 10GbE 接口出现故障:我仍然可以轻松进入,可以更新 DNS,以便主机可以连接等。

在观察接口统计信息时,我注意到所有流量都在 eth1 而不是 eth2 上发送/接收,尽管网络上的所有主机都在寻址这个接口。我确认 DNS A 记录指向正确接口的 IP。此外,我确认通过 IP 而不是 FQDN 寻址接口会产生相同的结果。

我清除了机器上的 ARP 缓存,并通过 IP 地址 ping 了 eth1 接口。我检查了我的 ARP 表并找到了 eth1 的 MAC 地址。我再次清除了 ARP 缓存,并通过 IP 地址 ping 了 eth2 接口。再次,我检查了我的 ARP 表并找到了 eth1(不是 eth2)的 MAC 地址。

如果我关闭 eth1、物理断开接口或将其放在不同的逻辑网络上 - 我会得到预期的行为,流量会通过我的 eth2 接口。

我的问题:为什么会发生这种情况?我看到一些证据表明,由于其“弱主机模型”,这是 linux 内核上的预期行为。

我怎样才能在同一个网络上保持两个接口正常运行,并让它们以我期望的方式工作。

linux
  • 2 2 个回答
  • 3243 Views

2 个回答

  • Voted
  1. Best Answer
    David Houde
    2014-03-06T18:17:20+08:002014-03-06T18:17:20+08:00

    Linux 旨在响应任何接口上的 ARP 请求。假设主机拥有 IP 地址而不是特定接口。您所看到的称为 ARP Flux。

    您可以使用 sysctrl 更改此行为

    arp_ignore - 整数

    定义不同的模式来发送回复以响应接收到的解析本地目标 IP 地址的 ARP 请求:

    0 -(默认):回复任何本地目标IP地址,在任何接口上配置

    1 - 仅当目标 IP 地址是传入接口上配置的本地地址时才回复

    2 - 仅当目标 IP 地址是在传入接口上配置的本地地址并且与发送者的 IP 地址都来自该接口上的同一子网时才回复

    3 - 不回复使用范围主机配置的本地地址,仅回复全局和链接地址的解析

    • 3
  2. Tero Kilkanen
    2014-03-07T00:55:21+08:002014-03-07T00:55:21+08:00

    如果您的交换机支持它,我会使用 802.1ad 链路聚合来提供故障转移。

    使用此功能,您可以将两个接口绑定在一起,您可以将一个设置为主动接口,一个设置为被动接口。您的 IP 地址将驻留在绑定接口上,因此如果一个 NIC 发生故障,IP 地址将不会更改。

    • 3

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve