我的 Debian 10 工作站有 2 个网络接口。这是我的路由表(简化)
ip route
default via 192.168.2.254 dev enx0050b668976b proto dhcp metric 100
10.0.0.0/8 dev enp6s0 proto kernel scope link src 10.0.0.1
10.0.0.2 dev enx0050b668976b proto static scope link metric 101
192.168.2.0/24 dev enx0050b668976b proto kernel scope link src 192.168.2.10 metric 100
192.168.122.0/24 via 10.0.0.2 dev enx0050b668976b proto static metric 101
从来没有任何意义。具体来说,第 3 行和第 5 行是无意义的。
10.0.0.2 dev enx0050b668976b proto static scope link metric 101
192.168.122.0/24 via 10.0.0.2 dev enx0050b668976b proto static metric 101
该IP地址10.0.0.2
用于enp6s0
没有enx0050b668976b
IP地址的接口192.168.2.10
。
由于它是无意义的,我的网络共享被破坏了。
这在重新启动之间似乎是一致的。
填充路由表的可能方法有哪些?
- 配置文件?
- DHCP 服务器或来自网络上其他系统的信息?
我不知道为什么我的路由表包含这些信息。我的问题分为两部分:
- 重新启动之间路由表是如何填充的? (如何阻止下次启动时出现错误的行?)
- 我如何解决它? (如何为下次启动添加正确的行?)
链接问题 - 这太奇怪了
https://raspberrypi.stackexchange.com/questions/113637/erroneous-entry-in-routing-table
我将问题根源追溯到 Raspberry Pi 上的一个条目,该条目充当我网络上的路由器。我还没有解决这个问题。
这个问题由一些主持人关闭,他评论说需要更多信息,然后立即关闭问题而不等待添加该信息......所以我已将该信息迁移回此处。
Raspberry Pi 方面问题总结:
我的 Raspberry Pi 4 的路由表中有一个错误的条目。该设备充当我的本地网络的路由器。其中一行的 IP 地址与虚拟机相关,该虚拟机在我连接到本地网络的服务器上运行。
我关闭了网络上的所有系统,断开了所有网络电缆,然后重新启动了我的 Raspberry Pi。
然而,重新启动后,错误条目仍然存在。我不知道它是怎么到那里的。它可能是通过网络活动自动获取的,或者我可能通过在错误的终端中输入命令而意外地将其放在那里,从而将其发送到错误的机器。 (我不记得了。)
我假设我的 Pi 上一定有一个配置文件,其中包含该 IP 的条目...该文件可能在哪里?
(见下文,找到了来源)
Pi 运行 dnsmasq 并运行无线 AP。就是这样。
当我ip route
在重新启动后键入时,路由表符合预期。
当我按下工作站上的电源按钮时,在 BIOS 发出蜂鸣声之前,ip route
会显示一个包含新的错误条目的路由表。
如果我随后拔掉工作站的以太网电缆,错误的条目就会消失。重新插上电源,它就回来了。
这是在工作站操作系统启动之前,因此这不可能是我的工作站的配置问题。它一定在 Pi 上的某个地方。
已找到问题根源但尚未解决
我对导致问题的网络地址进行了 grep 搜索。事实证明这是在配置文件中
/lib/dhcpcd/dhcpcd-hooks/40-route
ip route add 192.168.122.0/24 via 192.168.2.12
这对于网络上的大多数设备来说非常有意义。这是到服务器(虚拟机)的静态路由,192.168.122.166/24
它驻留在具有 ip 的服务器(物理机)上192.168.2.12/24
。
问题是我的工作站有到该服务器的直接静态链接。
这是一个网络拓扑图。
workstation <---- direct link ----> server [contains VM]
^ ^
| |
V |
router [r-pi] <------------------+
我的工作站在启动时获取的配置似乎来自此 Raspberry Pi(路由器)。此配置可能对于该网络上的所有其他设备都是正确的,但对于我的工作站来说并不正确,因为它和服务器之间存在静态链接。
关于如何纠正这个问题有什么想法吗?
这是我的 pi 上的路由表:(仅相关行,这些都可以)
192.168.122.0/24 via 192.168.2.12 dev eth0
这是我的工作站上的路由表:(仅相关行)
10.0.0.0/8 dev enp6s0 proto kernel scope link src 10.0.0.1 linkdown [correct, link is down, interface name correct]
10.0.0.2 dev enx0050.... proto static scope link metric 101 [incorect interface name, should be enp6s0]
192.168.2.0/24 dev enx0050.... proto kernel scope link src 192.168.2.100 metric 100 [correct]
192.168.122.0/24 via 10.0.0.2 dev enx0050... proto static metric 101 [incorrect, interface name wrong]