AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1816036
Accepted
PatS
PatS
Asked: 2023-11-10 05:41:41 +0800 CST2023-11-10 05:41:41 +0800 CST 2023-11-10 05:41:41 +0800 CST

在 Ubuntu Linux 中,如何确保默认网关的指标低于任何其他网关?

  • 772

我遇到了双网卡虚拟机(例如 eth0 和 eth1)的问题。例如,当路由表如下所示时,一切正常:

$ sudo route -n
default         10.100.0.1        0.0.0.0         UG    20100      0        0 eth0
default         192.168.100.1     0.0.0.0         UG    20101      0        0 eth1

默认 GW10.100.0.1处理所有流量,包括 DNS 查找等。

周末发生了一些事情(我不确定是什么),但是当我周一来时,我看到我想要的默认 GW 现在有一个更高的指标,所以它没有被使用。

$ sudo route -n
default         192.168.100.1     0.0.0.0         UG    20101      0        0 eth1
default         10.100.0.1        0.0.0.0         UG    20102      0        0 eth0  <<< ISSUE 20102

LAN 网段 192.168.100.1 仅与用于测试的主机有连接。当我启用网络段(我在 vSphere 中运行此虚拟机)时,会自动创建默认网关。

结果是我的 DNS 服务器无法访问。 解决方法是重新启动主机,或者删除并重新添加默认网关。

这个问题解释了这个问题:为什么删除网关路由然后重新添加它会使路由突然起作用?

我正在努力寻找解决这个问题的方法。该解决方案应确保所需的默认 GW 始终具有定义的两个网关中的最低度量。

寻找解决方案

我还没有找到适合我遇到的问题的搜索词,所以我一直在阅读有关 Linux 网关如何工作的文章,但这对回答我的问题没有帮助。

  • 谷歌搜索如何为双网卡linux主机正确配置两个网关
  • https://serverfault.com/questions/1117143/how-to-configure-2-x-nic-with-each-having-their-own-gateway
  • https://www.wikihow.com/Add-or-Change-the-Default-Gateway-in-Linux
linux
  • 2 2 个回答
  • 48 Views

2 个回答

  • Voted
  1. Best Answer
    Luke Attard
    2023-11-10T12:17:05+08:002023-11-10T12:17:05+08:00

    首先,我会使用 ip 路由,而不仅仅是路由。iproute2 软件包将很快取代 net-tools。

    虽然我可以建议更好的解决方案,但如果我有有关您的设置的更多详细信息,例如:您是否使用 netplan,或者您是否使用旧的接口配置配置了接口。

    该解决方案应该适用于任何 Ubuntu 版本。

    在 /etc/network/if-up.d/ 中创建一个文件并使其可由 root 执行

    #!/bin/sh
    # filename: eth1.sh
    
    if [ "$IFACE" = eth1 ]; then
      ip route del default dev eth1
    fi
    

    根据额外信息,我建议最好的解决方案是:

    创建文件 /etc/systemd/network/99-eth1.network

    [Match]
    Name=eth1
    
    [Network]
    Address=192.168.100.100/24 *change to be the ip address you need*
    DHCP=no
    DefaultRouteOnDevice=false
    

    这将确保 vSphere 不会通过 dhcp 分配网关。我怀疑您的 vSphere、更新或设置更改中发生了某些更改,导致您的虚拟机通过 dhcp 分配了网关。或者由于某种原因,您的网卡在启动过程中的设置顺序发生了变化。如果首先设置 eth1,则路由度量将增加 eth1 到 eth0 到达网关地址的成本,因此度量更高。

    如果您想 110% 确保首先设置 eth0,并且具有较低的指标,如果 eth0 通过 dhcp 接收其地址,您还可以创建以下文件,如果它是静态分配的,请将 DHCP 更改为 no 下面,并添加地址部分,并输入网关地址

    /etc/systemd/network/80-eth0.network
    
    [Match]
    Name=eth0
        
    [Network]
    DHCP=ipv4
    
    [Route]
    Gateway=_dhcp4
    Metric=5
    
    • 1
  2. PatS
    2023-11-14T05:07:48+08:002023-11-14T05:07:48+08:00

    一位同事提供了另一种解决方案,即使用nmcli命令行界面,该解决方案基于在此处询问 Ubuntu将网络接口指标设置为固定值中的答案

    该解决方案将问题中所需接口eth0 的指标设置为较低值。

    注意:我不确定当eth0接口被弹回时如何/为什么维持较低的指标,但在测试时它确实有效。

    nmcli c eth0
    set ipv4.route-metric 5
    save
    quit
    systemctl restart NetworkManager
    

    这个答案和选定的答案都适用于OP。

    • 0

相关问题

  • 如何让我的 Linux 机器看起来像是在运行 Windows?

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve