【问题标题】:No ARP response from gateway网关没有 ARP 响应
【发布时间】:2012-09-08 00:46:30
【问题描述】:

我正在开发一个必须通过 10Base-T 以太网与外界通信的嵌入式系统。我已经构建了服务网页所需的所有功能,包括 ARP、IP、TCP、ICMP (ping)、HTTP 和部分 FTP。现在,我需要构建其余代码,这将允许我充当客户端。从服务器的角度来看,上述所有协议已经运行了几个月。

现在,我需要构建这些协议的客户端部分,以从其他服务器请求数据。第 1 步是对远程服务器的硬件地址进行 ARP。据我了解,由于服务器位于另一个网络上,因此我的网关应使用其 MAC 地址进行响应,以便我知道将所有发往该 IP 的数据包传递给我的网关。问题来了:

我的设备(192.168.1.251,子网掩码 255.255.255.0)没有从我的网关(192.168.1.1)或网络外的任何机器获得 ARP 响应。但是,我的设备 (X.251) 确实收到了来自同一路由器下的笔记本电脑 (192.168.1.100) 的 ARP 响应。

我确定我的基本 ARP 以太网帧结构是正确的,因为我每次都正确回复 ARP 请求。不同之处在于 OPERATION 字段,取决于 REQUEST 或 REPLY,它是 1 或 2。


这是我的设备 (192.168.1.251) 对网关 (192.168.1.1) 的请求,但没有得到响应:

FF FF FF FF FF FF

00 04 A3 7F C1 57

08 06

00 01

08 00

06

04

00 01

00 04 A3 7F C1 57

C0 A8 01 FB

00 00 00 00 00 00

C0 A8 01 01

00 00 00 00 ..... 00 00 00


现在,我的设备 (192.168.1.251) 对我的笔记本电脑 (192.168.1.100) 的请求几乎相同,得到了有效响应:

FF FF FF FF FF FF

00 04 A3 7F C1 57

08 06

00 01

08 00

06

04

00 01

00 04 A3 7F C1 57

C0 A8 01 FB

00 00 00 00 00 00

C0 A8 01 64

00 00 00 00 ..... 00 00 00


可能重要也可能不重要的旁注:

  • 我的设备和网关都显示在笔记本电脑的 ARP 表中。
  • 我的笔记本电脑运行的是 Win7。
  • 我的网关是 Linksys WRT54GL Wireless-G 宽带路由器。
  • 我已通过 Wireshark 分析数据包以提供上述结果。
  • 我的 DHCP 块涵盖 X.100 到 X.149,因此路由器为我的笔记本电脑分配了 X.100
  • 我的 X.251 设备 IP 已硬编码在设备中。我看不到在路由器配置应用程序中设置此 IP 和我设备的 MAC 之间的关系的方法。所有其他功能似乎都可以将我的设备用作服务器,所以我认为这不是问题。
  • 我尝试将远程服务器 (google = 173.194.43.33) 的 ARP 请求直接发送到服务器的 IP 和我的网关的 IP(希望它会意识到它需要成为代理。)
  • 我曾尝试用头撞桌子,但遗憾的是,这有点帮助。

【问题讨论】:

  • 您确定您的网络掩码吗? 192.168.0.0/16 是一个专用网络(参见 RFC 1918)。但该 ip 块的其余部分是公共 ip 范围。
  • 您的笔记本电脑肯定正在向网关发送 ARP 请求并获得响应;你能捕捉这些帧并将它们与你的设备发送的帧进行比较吗?
  • @rekire:我不是 */16 - 我是 */8。即 192.168.1.1 - 192.168.1.255,网络掩码为 255.255.255.0
  • 那是错误的,你计算的是那些而不是零,所以你使用子网 192.168.1.0/24。
  • @ Joseph:奇怪的是,当我的笔记本电脑将这些请求发送到网关时,它们已经填充了网关的 MAC(不是广播)。我尝试从我的设备发送并预先填充了网关的 MAC(有点失败目的)但那些也被拒绝了。我没有尝试在欺骗笔记本电脑的 IP 和 MAC 时发送它,但我不确定这是否能告诉我什么。

标签: router gateway arp reply


【解决方案1】:

如果我猜对了,您将您的 ARP 请求发布到您的笔记本上,这不允许回答该 ARP 请求。通常每个设备都只为自己回答。尝试为您的路由器输入目标 ip 192.168.1.1。应该可以的。

顺便说一句,您无法获取子网之外的任何设备的 MAC 地址。每个包都需要发送到带有目标ip地址的网关mac地址。

【讨论】:

  • 在上面的示例 1 中,我确实在 192.168.1.1 向我的路由器发送了一个 ARP,但我没有得到任何响应。在示例 2 中,我将它发送到位于 192.168.1.100 的笔记本电脑,它会给出有效响应。两台设备都在同一个网络上,数据包在其他方面是相同的。
【解决方案2】:

我会尝试通过以下方式解决此问题:

使用 scapy 之类的工具,从您的笔记本电脑制作一个请求网关 MAC 的 ARP 请求,并将其发送到广播 MAC。查看请求是否得到回复。

然后,使用 scapy 在您的笔记本电脑上创建一个 ARP 请求,但将源 MAC 设置为您设备的 MAC 地址,并向广播 MAC 发送网关 MAC 请求。这实质上是在模拟您的设备在笔记本电脑上的发送。如果您可以将笔记本电脑的 mac 临时更改为设备的 MAC,您应该会在笔记本电脑上收到回复。

如果上述步骤正常工作,那么您将在笔记本电脑上模拟设备的确切行为,并且实际设备也将正常工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2023-03-08
  • 2014-07-21
相关资源
最近更新 更多