“arp”表中没有与 IP 对应的 MAC:如何排查?

“arp”表中没有与 IP 对应的 MAC:如何排查?

我有一台 Debian 7 Linux 机器和一个通过以太网电缆连接到它的 TP-link MR3020 路由器eth0,在 WISP 模式下工作意味着使其成为客户端而不是接入点:

在此输入图像描述

我还有一个连接到 ISP 的独立路由器,可以很好地提供 wi-fi。我的 Linux 机器缺少内置 Wi-Fi 适配器,我想使用 WISP 模式路由器而不是外部 USB Wi-Fi 适配器,因为它们非常不稳定(尝试了其中 3 个,2 个不起作用,1 个故障)。

我的麻烦是,看起来我的 Linux 机器无法将 WISP 路由器的 IP 地址与其 MAC 地址关联起来:

我曾经使用 eth0 的网络管理器,我的设置是

gateway ip 192.168.1.1
mask /24
static ip 192.168.1.2 (for my Debian machine itself)

但现在我把它们输入了/etc/network/interfaces(见下文)

当我说的时候ping 192.168.1.1,它说From 192.168.1.2 icmp_seq=1 Destination Host Unreachable

我发现arp不知道这个IP的MAC地址:192.168.1.1对应于HWaddress [incomplete].

您对如何解决此问题有什么建议吗?我应该手动将IP分配给MAC吗?


信息更新:

我的/etc/network/interfaces现在包含 eth0 接口作为主要接口:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

ifconfig数据:

$ sudo ifconfig
eth0      Link encap:Ethernet  HWaddr 40:e5:49:32:a2:50
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::52e5:49ff:fe32:a240/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:68643 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53708 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:81335250 (77.5 MiB)  TX bytes:5438226 (5.1 MiB)
          Interrupt:40 Base address:0xe000

route数据:

$ sudo route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

wiresharkon捕获的数据包ping 192.168.1.1仅包含大量 ARP 数据包的垃圾邮件,全部具有相同的结构:

Source Giga-Byt_something
Destination Broadcast
Protocol Arp
Length 42
Info Who has 192.168.1.1 Tell 192.168.1.2

Arp frame details:
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IP (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (1)
Sender MAC address: Giga-Byt_something (40:e5:49:32:a2:50)
Sender IP address: 192.168.1.2
Target MAC address:  00:00:00_00:00:00 (00:00:00:00:00:00)
Targe IP address: 192.168.1.1 (192.168.1.1)

同时路由器的LAN LED 闪烁,表示正在传输数据

路由器快速手册,包含WISP模式图解: http://www.tp-link.com/resources/document/TL-MR3020_V1_QIG_7106503718.pdf

编辑:

通过将网关设置为192.168.0.254解决了arp问题。当前状态是我的 Linux 机器可以看到 WISP tp-link 路由器,但 WISP 路由器在接入点模式下看不到主 d-link 路由器:

在此输入图像描述

我不太确定是否可以在 LAN 中建立 LAN。明天我将尝试将 WISP 模式下的路由器与 Windows 机器关联,并wireshark在 tp-link 和 d-link 路由器之间进行协商,以了解 tp-link WISP 模式路由器如何尝试将自己与 192.168.1.* LAN 关联。

$ sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

答案1

如果 ping 本地路由器不起作用,则确实没有太多可能性:

  1. 您犯了一个配置错误并混淆了它。从该手册中,我非常确定您的目的是(例如)在 WiFi 端拥有 192.168.0.2/24,在以太网端拥有 192.168.1.1/24 — 不同的网络。无线端将配置为路由到 192.168.0.1(您的 Wi-Fi AP)。 [或者,如果您的无线网络使用 DHCP,您只需将其设置为 DHCP 而不是静态。]

  2. 您的计算机上出现配置错误,并且就路由器而言,您在错误的 IP 地址上运行。尝试将您的计算机切换到 DHCP(ifdown eth0; ifconfig eth0 up; dhclient eth0应该足以测试)。

  3. 如果 WiFi 链接不可用,它可能会出现奇怪的行为。确认链接已打开。 (例如,也许它只会在 WiFi 链接建立后才启动以太网。)

  4. 您的以太网电缆有缺陷。尝试不同的(是的,这可能会发生,并且您仍然可以获得链接,甚至单向流量)

  5. 与上述相关,您的以太网电缆未完全固定。如果插脚弯曲就会发生这种情况。轻轻地将插脚向后弯曲,确保其牢固地卡入。

  6. 您的计算机或路由器上的以太网端口(无论是物理端口还是电气端口)均已损坏。使用不同的设备进行测试(例如,计算机到笔记本电脑以及路由器到笔记本电脑)

  7. 您的 NIC 的 Linux 以太网驱动程序不起作用。通过将计算机连接到不同的设备进行测试。

答案2

您需要某种以太网配置,目前您似乎只配置了环回:

auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.8.4

但是,在执行此操作并重新启动之前,请尝试以下操作:

ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up

然后输入:

route add default gw 192.168.1.1

看看现在是否可以 ping 通

相关内容