This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5728:在启用 eth1的情况下无法通过 eth0执行 ping 操作

Guru**** 2015290 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/942662/am5728-not-getting-ping-over-eth0-with-eth1-enabled

器件型号:AM5728

您好!

我们将使用定制板、并将使用两个可用的接口。 第一个以太网接口'eth0'基于 RJ45、第二个以太网'eth1'基于光纤。 这两个接口都在出现并正常工作。


我们只能在启用了其中一个接口的情况下 ping google.com、但在两个接口都打开的情况下、我们无法从 eth0 ping 到 google.com、但我们可以通过 eth1 ping google。


当我们禁用这两个接口时、首先启动 eth0、然后等待链路准备好稍后启动 eth1。 我们可以通过 eth0 ping google.com、而不能通过 eth1 ping。
同样、如果我们禁用这两个接口并首先启动 eth1、然后等待链路准备好稍后启动 eth0。 我们可以通过 eth1 ping google.com、而不能通过 eth0 ping。

至此、我们得出结论、首先出现的接口成为主接口、接下来出现的接口成为次接口。 因此、我们可以每次都使用主接口 ping google、而不是通过辅助接口。

我们需要任何配置方面的帮助、以确保我们可以在 两个接口上执行 google 操作。

注:
我们将确保两个接口都具有不同的子网。
软件版本
内核版本 4.19.79
PDK 20.1
谢谢、
Meraj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Meraj、

    您可能需要为非主接口添加第二个网关配置。

    您能否确认您使用"route -n"设置了什么?

    最好的服务

    Dave

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dave、

    每个接口都有自己的默认网关。 但默认情况下、系统上只能有一个默认网关。 所述的情况会导致异步路由,路由器将根据需要拒绝数据包。

    如上图所示,eth0成为主接口,因为其条目在路由表中较高。 使用两个默认网关的唯一方法是添加第二个路由表。 我按照下面链接中给出的步骤操作、

    https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System。

    按照上面给出的步骤、我创建了第二个路由表(名为:RT2)、其中 eth1是此路由表的默认网关、而 eth0是主路由表的默认网关。通过这些更改、我能够从这两个器件 ping 通这两个器件。 路由表如下所示、

    主路由表 eth0作为默认网关

    RT2 (辅助)路由表 eth1作为默认网关

    但是、由于规则定义为仅在发端人/目标是 eth1 IP 地址时引用次要路由表进行路由查找。  

    由于这些规则、我们无法在 eth1上接收多播流、这是我们的要求。 虽然在 eht1上执行 tcpdump 确实显示了多播流看起来像内核由于这些 IP 规则而丢弃它。 由于在主路由表中查找所有其他通信的路由查找,因此我们可以通过 eth0进行多播接收。

    Dave、您能否建议一个更好的替代方案来拥有两个默认网关、以及我如何在两个接口上启用多播接收