Linux 上的网络路由问题

Linux 上的网络路由问题

我希望有人能看看这个并告诉我我错过了什么。我有 4 台机器,出于某种原因,只有其中 1 台可以通过其私有 IP 地址(在 eth1 上)与其他 3 台机器通信。

这 4 台机器分别是:

    mach01 10.176.193.17
    mach02 10.176.193.92
    mach03 10.176.193.27
    mach04 10.176.195.9

所有机器都是 Debian lenny。从 mach02,我可以 ping 其他 3 台机器,没有问题,从其他机器,我可以 ping mach02。但是,从 mach01、mach03 和 mach04,我只能 ping mach02。

所有机器上“iptables --list”的结果是:

    链输入(策略接受)
    目标 保护 优化 源 目标

    链转发(策略接受)
    目标 保护 优化 源 目标

    链输出(策略接受)
    目标 保护 优化 源 目标

所以我不认为存在防火墙问题。所有机器上 eth1 的路由表如下:

    10.176.192.0 * 255.255.224.0 U 0 0 0 eth1
    10.191.192.0 10.176.192.1 255.255.192.0 UG 0 0 0 eth1
    10.176.0.0 10.176.192.1 255.248.0.0 UG 0 0 0 eth1

所以看起来也没什么问题。出于某种原因,从 mach03 到 mach02 以外的任何地方的 ARP 请求都失败了,其他机器也是如此。

    mach03$ arping -c 1 -I eth1 10.176.193.17
    阿平 10.176.193.17

    --- 10.176.193.17 统计数据 ---
    已发送 1 个数据包,已接收 0 个数据包,100% 未答复

我看不出 ARP 会这样失败的任何原因,而且我已经没有办法了,也没有地方可以查找。有其他在排除网络故障方面更有经验的人有什么想法吗?

谢谢

编辑

尝试从 mach03 ping mach01 后,ARP 缓存中存在以下内容:

    $ arp -a
    ? (10.176.193.17) 位于 eth1 上的 <incomplete>
    (67.23.45.1)位于 eth0 上的 00:00:0C:07:AC:01 [ether]

反之亦然(从 mach03 到 mach01):

    ? (10.176.193.92) 位于 eth1 上的 40:40:FA:77:D7:94 [ether]
    ? (10.176.193.27) 位于 eth1 上的 <incomplete>
    (67.23.45.1)位于 eth0 上的 00:00:0C:07:AC:01 [ether]

有关 eth1 的更多详细信息:

    $ ip addr 显示设备 eth1
    3:eth1:mtu 1500 qdisc pfifo_fast 状态未知 qlen 1000
        链路/以太 40:40:16:e0:f3:dd brd ff:ff:ff:ff:ff:ff
        inet 10.176.193.17/19 brd 10.176.223.255 范围全局 eth1
        inet6 fe80::4240:16ff:fee0:f3dd/64 范围链接
           valid_lft 永远 preferred_lft 永远

答案1

嗯,你已经忽略了防火墙,所以……

以我极其有限的网络知识,我能想到的唯一的事情是:

  1. mach01/03/04 上的广播地址错误。
  2. 路由顺序混乱 - 在上例中,第 3 个条目与第 1 个条目的范围重叠。所有机器上的路由条目顺序是否相同?也许有些机器在错误的网络上执行了 arp。

“arping” 从 01/03/04 到 02 是否有效,或者他们是否通过来自 02 的传入广播数据包更新其 arp 缓存?

答案2

这有点奇怪,首先我会尝试在 mach01、mach02 和 mach03 上运行 tcpdump,看看当您尝试 ping mach01 时,mach01 和 mach02 是否从 mach03 获得 ARP 请求,它是否正在回复(对于 mach03)等等。
您知道主机之间是否可以有透明防火墙吗?这可以解释您所看到的情况。
网络拓扑是什么?主机之间有许多交换机还是只有一个?什么样的交换机?

答案3

您复制/粘贴了此信息,还是尝试输入了?您的网络中有“193”,但有一台机器显示 195。然后您在路由表中显示 192。

答案4

您能否从其中一个主机粘贴完整的主机路由表?另一个接口可能有更具体的路由。

另外,您能否在一次失败的“arping”尝试后立即发布“arp -a”的输出?这应该会显示您在 [eth1] 上尝试 arping 的 IP 地址的不完整条目,并将确认您的主机路由配置正确。

相关内容