【问题标题】:Using Network Manager (nmcli) to configure DHCP, with a fallback static IP address in case DHCP fails [closed]使用网络管理器(nmcli)配置 DHCP,并在 DHCP 失败时使用备用静态 IP 地址 [关闭]
【发布时间】:2020-03-02 02:01:28
【问题描述】:

我正在使用嵌入式 linux 设备,我们通常在开发过程中通过静态 IP 地址连接到该设备。但是,在现场我们需要使用 DHCP 进行连接,因此,我想设置一个主 DHCP 连接,并在不同的网络上使用一个备用静态 IP 地址。这可能吗?

我可以使用 nmcli 配置 DHCP 连接(IPV4.method=manual),并且可以成功添加额外的静态 IP 地址。当 DHCP 服务器存在时,两者都会同时存在,但是当没有 DHCP 服务器时,连接将被禁用,包括静态 IP 地址。

我也尝试设置多个连接,分配给 eth0,即一个静态和一个 DHCP,并且可以使用手动启用它们

nmcli con up ConnectionName

但这不符合要求,因为在另一个失败的情况下需要手动启用它们。当然,我可以运行一个脚本来检查连接状态并在需要时启用另一个,但我认为这是网络管理员的现实期望。

有没有办法告诉网络管理员尝试一个连接,如果失败再尝试另一个?

我使用的是 Ubuntu 18.04。

【问题讨论】:

标签: dhcp static-ip-address networkmanager


【解决方案1】:

您需要设置两个不同的连接,将它们都设置为connection.autoconnect yes,并根据所需的优先级设置connection.autoconnect-priority

【讨论】:

    【解决方案2】:

    我设法使用的解决方案引用自Static IP nmcli

    基本上,您所要做的就是为接口分配一个静态 IP 地址,同时将 ipv4.method 保持为 DHCP 的“自动”。对于像我这样的人来说,是的,很可能有一个物理接口(以太网端口)同时具有多个 IP 地址。要查看通过 NM 设置的当前静态 IPv4 地址和模式,请使用:

    nmcli con show <ConnectionName> | grep "ipv4.addresses"
    nmcli con show <ConnectionName> | grep "ipv4.method"
    

    现在设置 1 个或多个静态 IP 地址:

    sudo nmcli con modify <ConnectionName> ipv4.addresses "10.10.10.10/24,192.168.88.88/24"
    

    为了完整删除通过 NM 设置的静态地址:

    sudo nmcli con modify <ConnectionName> ipv4.addresses ""
    

    现在有点令人困惑的是ifconfig 不会显示多个 IP 地址。但是,检查普通 nmcli 命令的输出,您会看到您的连接有多个 inet4 地址。

    还可以确认您可以检查路由表route -n 的输出,您会看到只有您的静态 IP 只会在本地网络上路由。 DHCP IP 将在外部路由数据包。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-03
      • 2014-02-19
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2011-06-23
      相关资源
      最近更新 更多