`arp` 命令显示什么?

`arp` 命令显示什么?

我谷歌了一下这一页例如,我知道该arp命令应该显示 Internet 协议 (IP) 地址和媒体访问控制 (MAC) 地址之间的映射。

但是当我在 22.04 ubuntu 系统上查看输出时,它对我来说毫无意义。这里arp给出:

_gateway (192.168.107.172) at 3a:65:d4:6d:20:cf [ether] on wlp0s20f3

这里我假设有一个以太网适配器,其 MAC 地址3a:65:d4:6d:20:cf有 IP 地址192.168.107.172。但是当我查看时,ifconfig我没有看到这个 IP 地址:

enp84s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 7c:57:58:80:1c:61  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0x54000000-540fffff  

enx00e04c680202: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.100  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 00:e0:4c:68:02:02  txqueuelen 1000  (Ethernet)
        RX packets 124  bytes 11140 (11.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 2981 (2.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enxa0cec8c97ebc: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether a0:ce:c8:c9:7e:bc  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 13849  bytes 1664000 (1.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13849  bytes 1664000 (1.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.107.238  netmask 255.255.255.0  broadcast 192.168.107.255
        inet6 fe80::6a85:ef4a:7e3c:be96  prefixlen 64  scopeid 0x20<link>
        inet6 2a01:cb16:2068:7c6c:8e00:94e:c979:548e  prefixlen 64  scopeid 0x0<global>
        inet6 2a01:cb16:2068:7c6c:d2f4:5a68:7bd8:e5d7  prefixlen 64  scopeid 0x0<global>
        ether 3c:e9:f7:a7:1c:0f  txqueuelen 1000  (Ethernet)
        RX packets 209228  bytes 203369040 (203.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 113025  bytes 26069725 (26.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我看到列出的适配器arp(“wlp0s20f3”)的 IP 地址是 192.168.107.238,而不是 192.168.107.172!

我还使用了一个额外的 USB 以太网设备(“enx00e04c680202”),但它没有出现在 arp 列表中。USB 以太网适配器没有 MAC 地址吗?

我检查了各种页面这里这里这里没有答案……

答案1

ARP 协议旨在为您提供目标卡的物理地址,以便您的计算机可以物理连接(不是您的)。

_gateway(192.168.107.172)位于 wlp0s20f3 上的 3a:65:d4:6d:20:cf [ether]

向您提供信息:您的网关(IP 为 192.168.107.172)的 mac 地址为 3a:65:d4:6d:20:cf,因此您的卡可以请求连接或通信。

它的工作原理是:

  • ARP 用于在局域网中将 IP 地址映射到 MAC 地址。当一个设备知道另一个设备的 IP 地址但需要在 MAC 层向其发送帧时,就会使用 ARP。
  • 设备发出一个 ARP 请求数据包,该数据包会广播到 LAN 上的所有设备。此数据包包含需要解析为 MAC 地址的 IP 地址。
  • 具有该 IP 地址的设备会发回包含其 MAC 地址的 ARP 回复。这样,请求设备便可以使用 IP 地址到 MAC 地址的映射来填充其 ARP 缓存。
  • ARP 缓存条目在可配置的超时后过期。将根据需要发送其他 ARP 请求,以保持缓存中的映射为最新。

总而言之,ARP 提供了第 3 层(IP 地址)和第 2 层(MAC 地址)之间的关键链接,以允许设备在本地网段上直接通信。

该命令arp显示您的机器不久前使用过的网络的其他 IP 的远程 mac 地址。

相关内容