工具/软件:Linux
大家好、
我们公司为重要客户设计了定制板、其主要特性是将时间分配给通过两个网络接口连接到系统的其他系统。
该板配备了 TI AM3352微处理器、并在网络部分安装了两个 Microchip KSZ9031组件。
下面的两个图显示了微处理器以太网系统及其与 CPU 的硬件连接的摘要。
图1-概述 Sezione Microprocessore e 以太网
图2–设计硬件 segnali verso i fissici KSZ9031
对于软件部分、已重新编译基于 Debian 的 Linux 发行版并将其安装在 CPU 上(版本为3.14.26-g9b32ca2-脏)、用于处理这两种物理现象的驱动程序是1.0版中的 CPSW。
除了操作系统之外、还在内部开发了一个嵌入式软件应用程序。 它在启动时自动运行并实施所有以太网管理。
这两个网络信道的管理方式使其在客户请求时独立(既在同一子网中,也不在同一子网中),因此数据流量在接口级别绑定。 具体而言、eth0仅用于分发时间数据、而 eth1专用于服务消息。 在嵌入式软件中、端口绑定 为强制通过 eth0传输时间数据包 、并将服务消息传输到 eth1 (所有以太网端口工作正常)。
当主板在对以太网端口 eth0和 eth1的 ARP 请求消息上应答时以及主板用作 NTP 服务器时(因此当内核服务管理以太网端口时)、会检测到偶尔出现但分布较高的异常。 此外,仅当两个网络接口配置在同一子网下时,才会出现此问题。 相比之下、当端口配置在不同子网中时、不会发生异常。
从下图中可以看出、外部系统向特定网络地址发送 ARP 请求后会出现两个响应、一个端口分配了广播包中指定的 IP 地址、另一个端口分配了以太网接口上的 IP 地址。 这两个 IP 地址是不同的。
这种行为反映在向电路板发送 UDP 命令的系统上、尤其是外部系统的 ARP 表会将相同的 MAC 地址报告给先前查询的两个 IP 地址。 下图显示了上述内容。
这种错误的 ARP 响应管理的影响导致发送到 eth1地址的 UDP 消息报告 UDP 数据包 Eth0 MAC 地址和分配给 eht1的 IP 地址。 因此、嵌入式应用软件会过滤并丢弃这些消息。
此致、
Domenico



