通过以太网调试“无主机路由”

网络工程 以太网 ARP
2022-02-07 16:55:19

尝试通过以太网从 PC 连接到 OpenWRT 设备是“没有到主机的路由”。我正在为新设备开发 OpenWRT 端口,因此可能在该端未正确配置某些内容。我可以采取哪些步骤来调试它?

PC 配置了192.168.1.100用于子网的静态 IP 192.168.1.1/24,它应该与默认的 OpenWRT 设置匹配。当我连接以太网时,我看到设备上的 LED 活动。

从电脑:

$ ifconfig
eth2 Link encap:Ethernet HWaddr ec:a8:6b:35:5f:59
  inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
  inet6 addr: fe80::eea8:6bff:fe35:5f59/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:706 errors:0 dropped:0 overruns:0 frame:0
  TX packets:3094 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:241452 (241.4 KB) TX bytes:214343 (214.3 KB)

$ ip route show
169.254.0.0/16 dev eth2 scope link metric 1000
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.100 metric 100

$ arp -i eth2
Address HWtype HWaddress Flags Mask Iface
192.168.1.96 (incomplete) eth2
192.168.1.1 (incomplete) eth2

这是怎么回事(incomplete) HWaddress——这是否意味着设备的 MAC 地址有问题?

3个回答

您询问

我可以采取哪些步骤来调试它?

您似乎想在不通过其控制台的情况下访问 OpenWRT(因为您写了“应该匹配默认的 OpenWRT 设置”)。

您的问题可能有多种原因。

  • 您的第 1 层可能根本不正常(您说您看到 LED 活动但仍然如此)
  • OpenWRT 可能有一个您不期望的地址,或者可能正在您连接的接口上寻找 DHCP 服务器
  • OpenWRT 可能配置了防火墙
  • 您的设备和 OpenWRT 之间存在错误或不兼容

您有两个主要选择:

  • 从 PC 调试。首先,使用交叉电缆将您的 PC 直接连接到您的 OpenWRT,并确保您的端口已启动(ethtool eth2应该说Link detected: yes)。开始tcpdump -n eth2重启你的 OpenWRT。查看输出,看看它是否向网络发送了任何可以帮助您猜测其地址的信息。如果它发出来自 192.168.1.1 的数据包但没有回复,arping -I eth2 192.168.1.1那么我会说它的以太网驱动程序存在错误。

  • 使用控制台访问从那里登录和调试...

ICMP 消息“no route to host”表示 ARP 无法找到目标主机的第 2 层地址。通常,这意味着具有该 IP 地址的主机未在线或未响应。

相反,如果您收到超时,则意味着您已经拥有主机的第 2 层地址(在 ARP 缓存中),但主机没有响应。它可能不在线,或者它可能有防火墙阻止您使用的任何协议,例如用于 ping 的 ICMP。

无论如何,您似乎遇到了 ARP 问题。您可以尝试使用静态 ARP 缓存条目进行地址解析。

arp (incomplete)意味着主机仍然没有得到对 arp 请求的回复并且无法确定 MAC 地址。