$ ip -4 neigh show dev eno1
209.132.181.16 FAILED
152.19.134.142 FAILED
85.236.55.6 FAILED
152.19.134.198 FAILED
8.43.85.67 FAILED
140.211.169.206 FAILED
这些奇怪的 IP 邻居(ARP)条目怎么会出现在我的以太网接口上?
eno1
是一个以太网接口。目前尚未连接。根据journalctl -b | grep eno1
,我认为我在这次启动过程中根本没有连接它!我不使用静态IP。在此启动过程中我没有手动更改 IP 设置。网络设置全部由 NetworkManager 管理。我仅连接到我的家庭网络,该网络仅使用专用范围 172.16.0.0 - 172.31.255.255 中的地址。
例如,在我当前的无线连接上,我看到我的地址是 172.16.8.139/24。这表示网络前缀为 24 位,因此 ARP 分辨率应限制在 172.16.8.0 - 172.16.8.255 范围内。
$ ip -4 addr show dev wlp2s0
4: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 172.16.8.139/24 brd 172.16.8.255 scope global dynamic noprefixroute wlp2s0
valid_lft 39441sec preferred_lft 39441sec
$ ip -4 neigh show dev wlp2s0
172.16.8.1 lladdr 74:44:01:86:42:d6 REACHABLE
$ lsb_release -d
Description: Fedora release 29 (Twenty Nine)
$ rpm -q NetworkManager dhcp-client
NetworkManager-1.12.6-5.fc29.x86_64
dhcp-client-4.3.6-28.fc29.x86_64
我的路由器是OpenWRT 18.06.1,所以DHCP服务器是dnsmasq
。
答案1
“邻居”怎么称呼? - 我的第一个想法。
$ ip -r -4 neigh show dev eno1
proxy01.fedoraproject.org FAILED
vm3.fedora.ibiblio.org FAILED
6-55-236-85.rev.customer-net.de FAILED
vm18.fedora.ibiblio.org FAILED
proxy13-rdu02.fedoraproject.org FAILED
proxy14.fedoraproject.org FAILED
proxy09.fedoraproject.org FAILED
它正在尝试连接到特定于 Fedora 的服务。即系统使用一些网络服务。 Fedora 正在提供它。 (和/或 ibiblio.org 正在向 Fedora 捐赠服务,使用特定的主机名等)这些主机很可能主要提供一些 Web 服务(HTTP / HTTPS)。主机名中的“代理”往往表示某种形式的 Web 代理,并且出于各种原因(例如缓存或负载平衡),这些代理可以用作前端。
为什么我会看到此类超出范围的 ARP 条目? - 最大的问题。
我在StackOverflow上找到了答案:为什么 ARP 请求非本地地址?
当一个接口根本没有地址/路由,但你明确告诉 Linux 使用它进行传输时,Linux 会假设你的目标地址是在线的。[*] 在内核源代码。这是一个明显的例子:
$ sudo traceroute --udp -i eno1 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
^C
$ ip neigh show dev eno1 | grep 8.8.8.8
8.8.8.8 INCOMPLETE
我希望我看到这些由于 NetworkManager 而尝试的连接。我没有任何其他可能尝试使用特定接口联系 Web 服务的软件。 (请注意,此操作需要特权。在上面的示例中,我必须使用sudo
通过特定接口来运行traceroute)。
NetworkManager 使用 Web 服务来检查互联网连接并检测强制门户。这在连接部分提到man NetworkManager.conf
。
看起来 NetworkManager 一直在检查这个接口,尽管知道它没有连接:-)。
[*] 这意味着发件人 IP 地址ARP数据包,取自不同的界面:-)。或者,如果我关闭其他接口(WiFi 和virbr0
),则 ARP 请求将使用 0.0.0.0 作为源地址:-)。我使用tcpdump
和第二台计算机直接通过以太网电缆连接进行了测试。