当我输入ip route show
时:
linkdown
到底是什么意思?有时候我还能看到onlink
。还想知道onlink
是什么意思。
它会影响路由优先级吗?例如,图片中两条默认路由的情况
发布于 2020-04-10 03:44:34
linkdown
是将显示表中的路由并配置为通过处于DOWN
状态的接口的状态的状态。您可以通过运行以下命令来看到这一点:
ip a
寻找接口的状态。在我的笔记本电脑上,我开了wifi,以太网适配器拔掉了插头,它显示:
wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
在我的路由表中,我有许多路径,但是我可以添加一些垃圾路径:
sudo ip route add 192.168.123.0/24 dev enp0s25
sudo ip route add 192.168.124.0/24 dev wlp3s0
然后,我的表将显示以太网路由的linkdown
:
192.168.123.0/24 dev enp0s25 scope link linkdown
192.168.124.0/24 dev wlp3s0 scope link
onlink
意味着路由应该“假装nexthop直接连接到这个链接,即使它不匹配任何接口前缀”。所以我们也可以在桌子上做一个假的:
sudo ip route add 192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink
它现在将显示在路由表中:
192.168.123.0/24 dev enp0s25 scope link linkdown
192.168.124.0/24 dev wlp3s0 scope link
192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink
如果onlink连接到向下的界面,您甚至可以变得漂亮,并且两者兼得:
192.168.126.0/24 via 192.168.123.111 dev enp0s25 onlink linkdown
发布于 2022-06-21 02:44:59
linkdown
是将显示表中的路由并配置为通过处于DOWN
状态的接口的状态的状态。
我将尝试给出一个示例,看看onlink
选项到底做了什么:
您已经将eth0配置为ip地址/掩码: 192.168.0.1/24
出于某种原因,您希望在eth0的物理局域网上使用具有不一致配置的网关。假设它有一个地址10.0.10.1/24,这与您给出的机器的192.168.0.1/24配置不匹配。
如果你说:
ip route add default dev eth0 via 10.0.10.1
然后,您将得到一个错误响应(网络不可达或什么的)。为什么?因为(严格地说)在eth0局域网上拥有一台10.0.10.1机器是没有意义的,因为您告诉计算机这个局域网的网络地址是192.168.0.0/24。
但是它来了:如果在命令中添加"onlink“,如下所示:
ip route add default dev eth0 via 10.0.10.1 onlink
那么路线就被接受了。
但是现在我们要问另一个问题:如果一个包必须路由到这个"onlink“网关,内核会做什么?我进行了检查(通过实验),结果是:内核在eth0-lan上发送一个arp请求,询问“谁-有10.0.10.1",这是您配置的"onlink”网关。当它收到响应时,他有一个MAC地址,他可以在那里发送数据包并执行路由。
这意味着:当网关的地址与计算机上的lan配置(eth0)不匹配时,可以通过在语句中添加"onlink
“来强制内核使用该网关。
我想,在非常罕见的情况下,您必须使用此功能。在需要onlink选项的情况下,大多数情况下网络设计都很糟糕。我认为一般的隧道设置也不需要"onlink“。
从这里获得的答案
https://unix.stackexchange.com/questions/579087
复制相似问题