在 Rocky Linux 8|AlmaLinux 8 | 上配置网络网卡分组在 Rocky Linux 8|AlmaLinux 8 | 上配置网络网卡分组在 Rocky Linux 8|AlmaLinux 8 | 上配置网络网卡分组在 Rocky Linux 8|AlmaLinux 8 | 上配置网络网卡分组
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Rocky Linux 8|AlmaLinux 8 | 上配置网络网卡分组

发表 admin at 2025年2月28日
类别
  • 未分类
标签

网络NIC组合可以描述为将多个网络链路聚合成单个逻辑链路。这样做主要是为了提高冗余和带宽。当一个物理链路断开时,创建的团队界面会提供备用链路,从而提供与服务器的不间断连接。

在我们继续之前,您可能需要了解几个概念:

  • teamd – 使用 libteam 库与团队通信的 nic 分组守护进程通过 Linux 内核的设备。
  • teamdctl – 一种允许控制 teamd 实例的实用程序。使用它,您可以检查和更改端口状态,以及在备份和活动状态之间切换。
  • 运行程序 – 以 JSON 格式编写的单元,用于实现各种 NIC 分组概念。有多种跑步者(团队跑步模式),包括:

    • 广播 – 此处,数据在所有接口上传输。
    • round-robin – 数据依次通过所有端口传输
    • 主动备份 – 一次使用一个端口或链路,而其他端口或链路保留作为备份
    • lacp – 该协议实现802.3ad链路聚合控制协议
    • 负载平衡 – 具有主动 Tx 负载平衡和基于 BPF 的 Tx 端口选择器。流量通过所有 NIC 传输。

本指南详细说明了如何在 Rocky Linux 8 上配置网络 NIC 分组 |阿尔玛Linux 8。

设置 先决条件

对于本指南,您需要以下内容:

  • 具有 sudo 访问权限的用户。
  • 连接到您的系统的两个/多个接口适配器。

第 1 步 – 在 Rocky Linux 8 上安装 Teaming Daemon阿尔玛 Linux 8

分组守护进程在默认的 Rocky Linux 8 中可用| Alma Linux 8 存储库可以按如下方式安装。

sudo dnf -y install teamd

安装后,检查安装的版本。

$ rpm -qi teamd
Name        : teamd
Version     : 1.31
Release     : 2.el8
Architecture: x86_64
Install Date: Wed 29 Sep 2021 04:01:14 AM EDT
Group       : System Environment/Daemons
Size        : 282950
License     : LGPLv2+
Signature   : RSA/SHA256, Sun 11 Apr 2021 11:14:13 PM EDT, Key ID 15af5dac6d745a60
Source RPM  : libteam-1.31-2.el8.src.rpm
Build Date  : Sun 14 Mar 2021 06:12:27 PM EDT
Build Host  : ord1-prod-x86build003.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email 
Vendor      : Rocky
URL         : http://www.libteam.org
Summary     : Team network device control daemon
Description :
The teamd package contains team network device control daemon.

步骤 2 – 在 Rocky Linux 8 上配置 NIC 分组 |阿尔玛 Linux 8

在本指南中,我们将介绍两种在 Rocky Linux 8 上配置 NIC 分组的方法 | Alma Linux 8 即:

  • 使用 NMCLI
  • 使用 Ansible 系统角色
  • 使用 nmstatectl

方法 1 – 在 Rocky Linux 8 上配置 NIC 分组|使用 NMCLI 的 Alma Linux 8

可以使用网络管理器的 nmcli 工具来配置绑定。首先,检查系统上的网络接口。

nmcli device status

示例输出:

从上面的输出来看,有两个接口设备 enp1s0 和 enp9s0 连接到我的系统。您还可以使用以下命令收集更多信息。

nmcli connection show

示例输出:

使用 UUID 断开两个设备的连接,如下所示。

sudo nmcli connection delete 93a375cc-3c29-4a52-9fb9-0f6940ea4c2a
sudo nmcli connection delete 6c574fa3-98eb-40f1-a463-6b9271397d55

删除后,应按如下方式断开设备连接。

现在让我们创建一个名为 team1 的团队,其中首选运行者为 active-backup,其中一次使用一个端口或链接,同时其他的则保留作为备份。您还可以使用广播、lacp、循环赛和随机赛跑者中的任何一种。

sudo nmcli connection add type team con-name team1 ifname team1 config '{"runner": {"name": "activebackup"}}'

显示创建的团队。

$ nmcli connection show team1
connection.id:                          team1
connection.uuid:                        dad0b991-fd00-45ca-9e3b-8f7843498f47
connection.stable-id:                   --
connection.type:                        team
connection.interface-name:              team1
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
......

现在为新团队设置 IP 地址、DNS 和自动连接。

sudo nmcli con mod team1 ipv4.addresses 192.168.205.100/24
sudo nmcli con mod team1 ipv4.gateway 192.168.205.1
sudo nmcli con mod team1 ipv4.dns 8.8.8.8
sudo nmcli con mod team1 ipv4.method manual
sudo nmcli con mod team1 connection.autoconnect yes

现在添加从属网络并将它们链接到团队。

sudo nmcli con add type team-slave con-name team1-slave0 ifname enp1s0 master team1
sudo nmcli con add type team-slave con-name team1-slave1 ifname enp9s0 master team1

添加后,检查链接的状态。

$ nmcli connection show
NAME          UUID                                  TYPE      DEVICE  
enp10so       77ae630c-8940-4b6d-9ae2-09f358296b41  ethernet  enp10s0 
team1         dad0b991-fd00-45ca-9e3b-8f7843498f47  team      team1   
virbr0        2219ff25-c5f7-486c-9d2d-7a585be22cfe  bridge    virbr0  
team1-slave0  9cdf0f6f-d6d4-45e5-bb8a-8ff7365fcd7a  ethernet  enp1s0  
team1-slave1  67a57ddf-4595-4be2-b6ae-f5b481083d47  ethernet  enp9s0  

要应用所做的更改,请重新启动团队。

$ sudo nmcli connection down team1 && sudo nmcli connection up team1
Connection 'team1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)

查看团队界面的状态。

ip addr show dev team1

输出 :

您还可以使用teamdctl工具查看更多信息。

sudo teamdctl team1 state

示例输出:

测试团队功能。

使用主动备份运行程序后,我们想看看它是否正常工作。因此,我们将尝试关闭活动端口enp1s0

sudo nmcli device disconnect enp1s0

检查团队的状态。

sudo teamdctl team1 state

示例输出:

从上面的输出中,我们看到活动端口切换到 enp9s0,这证明活动备份运行程序工作正常。

使用 nmcli 删除团队

如果您在某个时候想要删除团队,请不用担心。这非常简单,可以使用 nmcli 实用程序通过以下步骤来完成:

显示连接详细信息。

$ nmcli connection show 
NAME          UUID                                  TYPE      DEVICE  
enp10so       77ae630c-8940-4b6d-9ae2-09f358296b41  ethernet  enp10s0 
team1         dad0b991-fd00-45ca-9e3b-8f7843498f47  team      team1   
virbr0        2219ff25-c5f7-486c-9d2d-7a585be22cfe  bridge    virbr0  
team1-slave1  67a57ddf-4595-4be2-b6ae-f5b481083d47  ethernet  enp9s0  
team1-slave0  9cdf0f6f-d6d4-45e5-bb8a-8ff7365fcd7a  ethernet  --      

停用您要删除的团队。

sudo nmcli connection down team1

现在删除团队中的奴隶。

$ sudo nmcli connection delete team1-slave0 team1-slave1
Connection 'team1-slave0' (9cdf0f6f-d6d4-45e5-bb8a-8ff7365fcd7a) successfully deleted.
Connection 'team1-slave1' (67a57ddf-4595-4be2-b6ae-f5b481083d47) successfully deleted.

现在删除团队:

$ sudo nmcli connection delete team1
Connection 'team1' (dad0b991-fd00-45ca-9e3b-8f7843498f47) successfully deleted.

验证团队是否已成功删除。

$ nmcli connection show 
NAME     UUID                                  TYPE      DEVICE  
enp10so  77ae630c-8940-4b6d-9ae2-09f358296b41  ethernet  enp10s0 
virbr0   2219ff25-c5f7-486c-9d2d-7a585be22cfe  bridge    virbr0  

方法 2 – 在 Rocky Linux 8 上创建网络团队| Alma Linux 8 使用Ansible系统角色。

这是使用 ansible 创建网络绑定的另一种方法。我假设您的系统上已经安装并配置了 Ansible。

安装 rhel-system-roles 软件包。

sudo yum install rhel-system-roles

在 Inventory 文件中添加要在其上配置团队的主机。

$ sudo vi /etc/ansible/hosts
192.168.205.2

您可能还需要将此托管主机的 SSH 密钥添加到您的控制节点。

现在为网络团队创建 playbook YAML,如下所示。

vi ~/bond-ethernet.yml

在该文件中,添加以下行。

---
- name: Configure a network bond that uses two Ethernet ports
  hosts: 192.168.205.2
  become: true
  tasks:
  - include_role:
      name: rhel-system-roles.network

    vars:
      network_connections:
        # Define the bond profile
        - name: bond0
          type: bond
          interface_name: bond0
          ip:
            address:
              - "192.168.205.100/24"
            gateway4: 192.168.205.1
            dns:
              - 8.8.8.8
            dns_search:
              - example.com
          bond:
            mode: active-backup
          state: up

        # Add an Ethernet profile to the bond
        - name: bond0-port1
          interface_name: enp9s0
          type: ethernet
          controller: bond0
          state: up

        # Add a second Ethernet profile to the bond
        - name: bond0-port2
          interface_name: enp10s0
          type: ethernet
          controller: bond0
          state: up

在这里,我使用两个设备enp9s0和enp10s0配置了一个网络团队,设置了绑定的IP地址作为 192.168.205.100 与网关 192.168.205.1。

现在设置了正确的详细信息,以托管主机的 root 用户身份运行 playbook。

ansible-playbook -u root ~/bond-ethernet.yml

示例输出:

验证债券状态。

sudo cat /proc/net/bonding/bond0

示例输出:

方法 3 – 在 Rocky Linux 8 上创建网络团队| Alma Linux 8 使用 nmstatectl

使用此方法,请确保安装 nmstate 软件包。

sudo yum install nmstate

然后创建一个 YAML 文件,如下所示。

vi ~/create-bond.yml

在该文件中,按如下所示设置团队首选项。

---
interfaces:
- name: bond0
  type: bond
  state: up
  ipv4:
    enabled: true
    address:
    - ip: 192.168.205.100
      prefix-length: 24
    dhcp: false
  link-aggregation:
    mode: active-backup
    port:
    - enp9s0
    - enp10s0
- name: enp9s0
  type: ethernet
  state: up
- name: enp10s0
  type: ethernet
  state: up

routes:
  config:
  - destination: 0.0.0.0/0
    next-hop-address: 192.168.205.1
    next-hop-interface: bond0

dns-resolver:
  config:
    search:
    - example.com
    server:
    - 8.8.8.8

在文件中,替换:

  • ip: 192.168.205.100 具有首选网络绑定
  • 下一跳地址:192.168.205.1 使用 Pv4 默认网关

保存文件并将设置应用到您的系统。

sudo nmstatectl apply ~/create-bond.yml

示例输出:

验证债券是否存在。

$ sudo nmcli device status
DEVICE      TYPE      STATE                   CONNECTION 
enp1s0      ethernet  connected               enp1s0     
bond0       bond      connected               bond0      
virbr0      bridge    connected (externally)  virbr0     
enp10s0     ethernet  connected               enp10s0    
enp9s0      ethernet  connected               enp9s0     
lo          loopback  unmanaged               --         
virbr0-nic  tun       unmanaged               --       

您还可以查看有关债券的详细信息。

sudo nmcli connection show bond0

输出 :

结论

这就对了!

我们已经在 Rocky Linux 8 上成功配置了网络网卡分组|使用NMCLI、ansible系统角色和nmstatectl的Alma Linux 8。我希望这对您来说很重要。

查看更多。

  • 在 Debian 上配置网络 NIC 分组
  • 在 Rocky Linux 8 上安装 Open vSwitch|AlmaLinux 8
  • 在 Ubuntu/Debian 上安装和使用 NetworkManager (NMCLI)
  • 如何在 KVM 虚拟机上使用 Open vSwitch Bridge
©2015-2025 Norria support@alaica.com