Ubuntu 服务器 20.04,带有 netplan 和两个位于同一子网的 1G 端口

Ubuntu 服务器 20.04,带有 netplan 和两个位于同一子网的 1G 端口

4x1G我正在为在同一网卡上具有端口的硬件获取共置服务。两个端口已插入,它们对应于我的操作系统(Ubuntu Server 20.04)上的 eno5 和 eno6 接口。提供商已为我分配了一个/24ipv4 子网,他们说我可以使用其上的两个端口。让我们考虑xx.xx.xx.0/24是我的 IP 范围,xx.xx.xx.1是我的网关。我想要运行的场景是分配xx.xx.xx.2eno5和。我期望的行为是从发出的流量也通过xx.xx.xx.3发出。eno6xx.xx.xx.3eno6eno6

netplan到目前为止,我已经提出了以下配置,可以在两个单独的配置文件中进行调整:

相关的配置eno5/etc/netplan/conf5.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eno5:
      dhcp4: false
      dhcp6: false
      addresses:
      - xx.xx.xx.2/24
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
      routes:
        - to: 0.0.0.0/0
          via: xx.xx.xx.1
          table: 500
          metric: 500
      routing-policy:
        - from: xx.xx.xx.2/24
          table: 500

相关的配置eno6/etc/netplan/conf6.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eno6:
      dhcp4: false
      dhcp6: false
      addresses:
      - xx.xx.xx.3/24
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
      routes:
        - to: 0.0.0.0/0
          via: xx.xx.xx.1
          table: 600
          metric: 600
      routing-policy:
        - from: xx.xx.xx.3/24
          table: 600

现在,我有两个 IP 可用。我的意思是,如果我从远程机器 ping,xx.xx.xx.2 和 xx.xx.xx.3 都会成功响应。我也可以在我的机器内运行成功的 ping:

ping -I eno5 google.com
ping -I eno6 google.com

一切都很好,直到我想xx.xx.xx.3从远程机器 ssh 下载一个大文件。当我在下载完成后尝试这样做时,我没有看到eno6tx 计数移动太多。相反,tx 计数移动eno5很大。我使用以下方法检查计数:

> ip -s link show eno5
link/ether d4:f5:ef:4b:54:6c brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast   
237309112    35714    0       901     0       913     
TX: bytes  packets  errors  dropped carrier collsns 
991989133    54400     0       0       0       0  
> ip -s link show eno6
link/ether d4:f5:ef:4b:54:6d brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast   
153728525    19980    0       933     0       945     
TX: bytes  packets  errors  dropped carrier collsns 
2582       29       0       0       0       0  

xx.xx.xx.3我得出结论,我发送给( )的 ssh 请求eno6是通过 响应的eno5。我是对的吗?

我的策略路由或整个配置的哪一部分是错误的,导致出现这种情况?

请帮忙。

答案1

经过几个晚上的头痛,我发现这种情况不需要任何策略路由。我只需要为每个接口默认路由确定不同的指标。这是最终的工作配置:

相关的配置eno5/etc/netplan/conf5.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eno5:
      dhcp4: false
      dhcp6: false
      addresses:
      - xx.xx.xx.2/24
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
      routes:
        - to: 0.0.0.0/0
          via: xx.xx.xx.1
          metric: 500

相关的配置eno6/etc/netplan/conf6.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eno6:
      dhcp4: false
      dhcp6: false
      addresses:
      - xx.xx.xx.3/24
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
      routes:
        - to: 0.0.0.0/0
          via: xx.xx.xx.1
          metric: 600

相关内容