我看到有一个metric
关键词在dhcpcd.conf
(如所解释的,例如https://unix.stackexchange.com/a/413036/47009),它允许我设置给定接口的路由优先级。
不过,我想仅有的设置该接口上的连接的度量link-local
(并对同一接口上的其他连接类型使用不同的度量)。
这可能吗?如果是这样,怎么办?
背景
我正在配置网络(在我的 Raspberry Pi 上,但这不是重点)dhcpcd
。
通过简单的设置(单个连接),这对于我的接口上的连接DHCP
以及我的接口上的连接来说效果很好。link-local
eth0
DHCP
wlan0
不幸的是,我的常规用例涉及双连接设置,用户通过link-local
笔记本电脑和 RPi 之间的连接进行连接(通过 VNC 控制无头设备),然后通过 WiFi 将 RPi 连接到某个网络以进行“互联网访问” “(用户不懂技术,因此他们无法将笔记本电脑设置为充当为连接提供上行链路连接的路由器link-local
)。
现在我面临的问题是如果我有两个都以太网link-local
连接和 WiFiDHCP
连接,那么这两个连接都定义了一条default
路由(这本身不是问题),并且该link-local
连接的优先级高于我的 WiFi 连接。由于link-local
对等方未设置为执行任何路由,这实际上意味着该设备没有在职的 default
路线,因此没有“互联网访问”。
$ ip route show
default dev eth0 scope link src 169.254.204.108 metric 202
default via 192.168.64.1 dev wlan0 proto dhcp metric 303
169.254.0.0/16 dev eth0 scope link src 169.254.204.108 metric 202
192.168.64.0/21 dev wlan0 proto kernel scope link src 192.168.69.188 metric 303
(metric
优选较低的值)
现在,默认值dhcpcd
在许多情况下都有意义,因为通常以太网连接比 WiFi 连接更快、更可靠。
所以我真的很想保持DHCP
以太网连接比任意 WiFi 连接更高的优先级,但link-local
以太网连接具有最低优先级(最高metric
)。
更多信息
所有测试均通过以下方式完成:
$ dhcpcd --version
dhcpcd 8.1.2
Copyright (c) 2006-2019 Roy Marples
Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH
正如在一个评论,链接本地连接根本不应该有路由(这对我来说很好)。
因此,为了进一步调试这个问题,我给出了我的全部内容/etc/dhcpcd.conf
:
hostname
clientid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
option ntp_servers
require dhcp_server_identifier
slaac private
allowinterfaces eth0
正如你所看到的,dhcpcd
仅管理eth0
(我在上面撒了谎,当我说dhcpcd
管理所有网络连接时;实际上,WiFi 连接由 NetworkManger 管理(而unmanaged-devices=interface-name:eth0
NetworkManger 的配置中有一行)。
为了检查NetworkManager是否有问题,我暂时禁用了它,然后重新启动。
插入网线,我在日志中看到以下内容:
Nov 09 17:02:14 mungus dhcpcd[451]: eth0: using IPv4LL address 169.254.204.108
Nov 09 17:02:14 mungus dhcpcd[451]: eth0: adding route to 169.254.0.0/16
Nov 09 17:02:14 mungus dhcpcd[451]: eth0: adding default route
Nov 09 17:02:14 mungus avahi-daemon[532]: Joining mDNS multicast group on interface eth0.IPv4 with address 169.254.204.108.
Nov 09 17:02:14 mungus avahi-daemon[532]: New relevant interface eth0.IPv4 for mDNS.
Nov 09 17:02:14 mungus avahi-daemon[532]: Registering new address record for 169.254.204.108 on eth0.IPv4.