首页 文章

没有来自网关的ARP响应

提问于
浏览
3

我正在开发一个嵌入式系统,必须通过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 < - 目标MAC - 广播(也尝试过0x00)

00 04 A3 7F C1 57 < - source MAC - 我的设备

08 06 < - ARP

00 01 < - 以太网

08 00 < - IP

06 < - 6字节MAC地址

04 < - 4字节IP地址

00 01 < - 请求(2 =回复)

00 04 A3 7F C1 57 < - 发送者MAC - 我的

C0 A8 01 FB < - 发送方IP - 我的= 192.168.1.251

00 00 00 00 00 00 < - 目标MAC - 未知,请求原因

C0 A8 01 01 < - 目标IP - 网关= 192.168.1.1

00 00 00 00 ..... 00 00 00 < - 用于填充的18组00的预告片


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

FF FF FF FF FF FF < - 目标MAC - 广播(也尝试过0x00)

00 04 A3 7F C1 57 < - source MAC - 我的设备

08 06 < - ARP

00 01 < - 以太网

08 00 < - IP

06 < - 6字节MAC地址

04 < - 4字节IP地址

00 01 < - 请求(2 =回复)

00 04 A3 7F C1 57 < - 发送者MAC - 我的

C0 A8 01 FB < - 发送方IP - 我的= 192.168.1.251

00 00 00 00 00 00 < - 目标MAC - 未知,请求原因

C0 A8 01 64 < - 目标IP - 笔记本电脑= 192.168.1.100

00 00 00 00 ..... 00 00 00 < - 用于填充的18组00的预告片


附注可能重要也可能不重要:

  • 我的设备和网关都显示在笔记本电脑的ARP表中 .

  • 我的笔记本电脑正在运行Win7 .

  • 我的网关是Linksys WRT54GL Wireless-G宽带路由器 .

  • 我已通过Wireshark分析数据包以提供上述结果 .

  • 我的DHCP块覆盖了X.100到X.149,所以我的笔记本电脑被路由器分配了X.100

  • 我的设备IP X.251在设备中进行了硬编码 . 我认为没有办法在路由器配置应用程序中设置此IP与我的设备的MAC之间的关系 . 所有其他功能似乎与我的设备作为服务器,所以我认为这不是一个问题 .

  • 我尝试将远程服务器的ARP请求(google = 173.194.43.33)直接发送到服务器's IP and to my gateway'的IP(希望它能够实现它需要成为代理 . )

  • 我试着把头撞在 table 上,遗憾的是,它帮了一下 .

2 回答

  • 0

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

    顺便说一句,您无法获得子网外的任何设备的MAC地址 . 每个包都需要通过目标ip地址发送到网关mac地址 .

  • 0

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

    使用像scapy这样的工具,从您的笔记本电脑发出请求网关MAC的ARP请求,并将其发送到广播MAC . 看看请求是否被回复 .

    然后,使用scapy在笔记本电脑上创建ARP请求,但将源MAC设置为设备的MAC地址,并向网关的MAC发送请求到广播MAC . 这基本上模拟了设备在笔记本电脑上的发送 . 如果您可以暂时将笔记本电脑的Mac更改为设备的MAC,则应获得回复在你的笔记本电脑

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

相关问题