使用 DHCP 网关的附加路由

使用 DHCP 网关的附加路由

大家今天好时光!
我有这样的问题:我需要使用 Debian Buster 笔记本电脑上的 NetworkManager 通过 DHCP 配置的非永久网络来配置对子网的访问。所以我可以在连接的 IPv4 设置 -> 路由中添加路由。我不知道网关及其更改的任何连接,因此我无法添加任何现场网关。但是,如果我将网关保留为空,则会创建到设备的连接,没有网关且具有链接范围

хх.хх.0.0/16 dev wwp0s20f0u5u6i3 proto static scope link metric 1

我需要将什么粘贴到网关字段才能获取连接的 DHCP 分配网关的路由?像这样

хх.хх.0.0/16 via yy.yy.yy.yy dev wwp0s20f0u5u6i3

坦克!

答案1

OpenVPN 支持特殊网关,例如 OpenVPN 动态替换的“net_gateway”。

NetworkManager 不支持这一点。这是一个缺失的功能。

如果连接是点对点链接(例如 VPN),那么 0.0.0.0 可能适合您(网关并不重要)。

作为解决方法,您可以将调度程序脚本放置到/etc/NetworkManager/dispatcher.d,请参阅man NetworkManageramd 的“pre-up”事件。该脚本可以通过添加路线ip route add

一般来说,如果你想配置手动路由,你确实知道你所连接的网络的参数。因此,您将在 NetworkManager 中拥有不同的连接配置文件,并根据您所在的位置激活正确的连接配置文件。

答案2

坦克前往塔勒;你让我们发现了 NetworkManager 的宝藏。如果没有你的建议,我可能永远不会花时间阅读这个人和这个解决方法。因此,现在为了避免浪费你的时间在这个人的过时信息上,请注意,在这个人中提出的环境变量 IP4_GATEWAY 永远不会被评估,无论你在/etc/NetworkManager/dispatcher.d/子目录。幸运的是,当这些脚本运行时,例如在 pre-up 模式下,接口已经启动,并且 DHCP 服务器提供的网关也已经在那里。所以具体的解决办法是:

1]把你的额外路线放进去让我们说: /etc/NetworkManager/DHCP_additional_routes 例子:

8.8.4.4 32  enp6s18
8.8.8.8 32  enp6s19  

(目标掩码接口)

2]在脚本中我们说 管理附加路由在下面/etc/NetworkManager/dispatcher.d/pre-up.d/ 您将能够获得 IP4_GATEWAY 的值:

#!/bin/bash 
INTERFACE="$1"
ACTION="$2"
DEFROUTE=`ip route show | grep $INTERFACE | grep default`
IP4_GATEWAY=`echo $DEFROUTE | awk '{print $3}'`
grep "$INTERFACE" /etc/NetworkManager/DHCP_additional_routes| while read LINE0
do
    P1=`echo $LINE0| awk '{print $1}'`
    P2=`echo $LINE0| awk '{print $2}'`
    P3=`echo $LINE0| awk '{print $3}'`
    ip route add $P1/$P2 via $IP4_GATEWAY
done

我需要它来管理从 DHCP 服务器获取地址的 2 个 wan 接口之间的故障转移。使用“canary”方法:您可以在 DHCP_additionnal_route 中描述的目标上测试 ping,该目标可以由上面给出的接口专门路由,因此您可以知道接口是打开还是关闭

相关内容