每个链路 (VPN) systemd 解析的配置,但保持链路不受 systemd-networkd 管理

每个链路 (VPN) systemd 解析的配置,但保持链路不受 systemd-networkd 管理

背景

我通过以下方式管理我的 WLAN 接口systemd-networkd并使用systemd 解析对于整个系统。我有多个由 OpenVPN 或 Openconnect 管理的 VPN 连接。我已将它们正确配置为通过systemd 解析API(例如由 完成/etc/openvpn/update-systemd-resolved)并且它可以工作。

问题

不幸的是,默认情况下,VPN 链接已DNSDefaultRoute=yes报告为resolvectl.这意味着当 VPN 连接中断时,系统上的 DNS 解析有时可能会挂起。

目标

我想设置DNSDefaultRoute=no这些 VPN 接口,但保留它们联合国管理者systemd-networkd,即让VPN工具配置接口。

更一般地说,我的问题是是否可以有一个每个链接systemd 解析配置没有链接由以下人员管理systemd-networkd

到目前为止我尝试过的

我尝试创建一个/etc/systemd/network/30-tun-no-default-route.network包含以下内容的文件

[Match]
Name=tun_*

[Link]
Unmanaged=true

[Network]
DNSDefaultRoute=false

我测试了Unmanaged=false链接是否获得了正确的DNSDefaultRoute=false设置,但当然到那时systemd-networkd断开 VPN 连接。不幸的是,使用Unmanaged=true,resolved 似乎忽略了这个设置。

对我来说这似乎是systemd 解析不解释*.network文件本身。然而,这使得很难为每个链接设置此类与解析相关的设置。也许我应该为此提交一个功能请求?

另一种可能的解决方法是运行 VPN 后脚本resolvectl default-route $IFACE,但对我来说这似乎不系统,并且违背了大多数情况下进行声明式配置的目的。系统东西。

相关内容