如何强制我的 Ubuntu 服务器使用正确的以太网端口(接口)

如何强制我的 Ubuntu 服务器使用正确的以太网端口(接口)

我有一个运行 Ubuntu 22.04.3 LTS 的 Ubuntu 服务器。

它有两个以太网端口,enp3s0enxf8e43b557271

enxf8e43b557271速度要快得多,所以我想默认使用它,但是,如果它由于某种原因出现故障,我想回退到enp3s0

我理解实现此目的的方法是使用路由度量。

我有一个 netplan 配置文件/etc/netplan/00-installer-config.yaml

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp3s0:
      addresses:
      - 192.168.0.142/24
      nameservers:
        addresses: [1.1.1.1]
      routes:
      - to: default
        via: 192.168.0.1
        metric: 200
    enxf8e43b557271:
      addresses:
      - 192.168.0.4/24
      nameservers:
        addresses: [8.8.8.8]
      routes:
      - to: default
        via: 192.168.0.1
        metric: 0
  version: 2

我已经设置了enp3s0一个更高的指标,所以我希望它具有较低的优先级。

但是,当我运行route -n它时似乎并没有起作用:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 enxf8e43b557271
10.40.27.0      0.0.0.0         255.255.255.0   U     0      0        0 wg0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enp3s0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enxf8e43b557271

并且enp3s0仍然具有度量为 0 的默认路由。

当我下载一个大型测试文件时,我发现它使用较慢的连接(通过我的交换机上的监控):

该图显示下载使用的是 100MBit 连接,而不是千兆连接

如果我物理地拔下enp3s0以太网电缆,它将会回退并使用enxf8e43b557271- 我只是希望回退是相反的!

我尝试将配置分成两部分:

ls -l /etc/netplan/
-rw------- 1 root root 491 Dec 28 14:46 00-installer-config.yaml
-rw------- 1 root root 208 Dec 28 14:47 99-enxf8e43b557271-config.yaml
00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp3s0:
      addresses:
      - 192.168.0.142/24
      nameservers:
        addresses: [1.1.1.1]
      routes:
      - to: default
        via: 192.168.0.1
        metric: 200
  version: 2
99-enxf8e43b557271-config.yaml
network:
  ethernets:
    enxf8e43b557271:
      addresses:
      - 192.168.0.4/24
      nameservers:
        addresses: [8.8.8.8]
      routes:
      - to: default
        via: 192.168.0.1
        metric: 0

答案1

将 NIC 绑定在一起可能是更好的选择,将它们设置为主动备份,这意味着您可以拥有一个主 NIC,如果主 NIC 发生故障,它将自动切换到辅助 NIC。此外,您只需设置 1 个 IP 地址,因为它也会将 IP 故障转移到辅助 NIC,这样您的服务器就不会离线或无法访问。

基于Netplan | 阅读文档您可以执行以下操作(假设您的接口名为eth0eth1):

network:
  renderer: networkd
  ethernets:
    eth0: # fast
      dhcp4: no
    eth1: # slow
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces:
        - eth0
        - eth1
      addresses:
        - 192.168.0.4/24
      routes:
      - to: default
        via: 192.168.0.1
        metric: 0
      nameservers:
        addresses:
          - 1.1.1.1
          - 1.0.0.1
      parameters:
        mode: active-backup
        primary: eth0
        mii-monitor-interval: 1 # milliseconds
  version: 2

您可以根据配置需要更改名称/名称服务器和路由

相关内容