如何使 NIC 组在 RHEL 7 中启动

如何使 NIC 组在 RHEL 7 中启动

为了在 RHEL 7 上配置网络,我创建了一个用于分组的 JSON 文件,然后运行以下命令:

ip link set down eno1
ip link set down eno2
ip link set down eno3
ip link set down eno4
teamd -g -f lacp.conf -d

我还为 VLAN 创建了 ifcfg 文件并运行了以下命令:

systemctl restart network

之后,一切都或多或少按预期进行,但问题是这在重新启动之间不会持续存在,所以我每次启动后都必须执行此操作。

我该如何解决这个问题?我希望此命令仅执行一次,然后我希望此设置在重新启动之间保留。

=================================================== ========

我尝试应用建议的修复,但出现了以下问题:

  1. 我已经创建了ifcfg-team0文件,内容是:

    DEVICE=team0
    DEVICETYPE=Team
    ONBOOT=yes
    BOOTPROTO=none
    TEAM_CONFIG='{"device":"team0", "runner": { "name": "lacp"...
    

我应该删除“设备”部分,然后更改为TEAMCONFIG='{"runner": { "name": "lacp"...因为我已经有了DEVICE=team0?还是提两次就可以了?

  1. 我的ifcfg-eno1文件包含:

    HWADDR=...
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    IPV4_FAILURE_FATAL=no
    IPV6_INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eno1
    UUID=e656...
    ONBOOT=no
    

我真的应该删除其中的几乎所有内容吗?特别是我真的应该删除UUID,NAME部分并将此文件替换为文档建议的内容吗? :

    DEVICE=eth1
    HWADDR=D4:85:64:01:46:9E
    DEVICETYPE=TeamPort
    ONBOOT=yes
    TEAM_MASTER=team0
    TEAM_PORT_CONFIG='{"prio": 100}'

或者我应该保留这两个文件?只需举个例子ifcfg-eno1,然后ifcfg-eno1Team

  1. 执行此操作时:systemctl start network.service我收到这样的错误:

    Failed to start LSB: Bring up/down networking.  Unit network.service entered failed state.
    

答案1

/etc/sysconfig/network-scripts首先,在名为的目录中创建一个新文件ifcfg-team0,如下所示:

DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=1.2.3.4
NETMASK=255.255.255.0
TEAM_CONFIG='{"runner": {"name": "lacp"}, "link_watch": {"name": "ethtool"}}'

显然,您需要适当更改 IP 地址和网络掩码。

然后在同一目录中,将所有ifcfg-eno[1-4]文件更改为如下所示:

DEVICE=eno1
HWADDR=00:11:22:33:44:55
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'

如上所述,您的本地文件会略有不同,因为您需要保留现有HWADDR设置。

这是直接从手册中取出

ifcfg-team0文件是指lacp.conf您已经创建的文件。但是,我在手册中没有看到它如何找到该文件。也许teamd您从之前的手动配置中记住了它,或者您可能必须将其放在公共目录中。

无论如何,一旦配置完成,您说ifup team0,组合的 NIC 组将一起启动。各个接口需要在开始时关闭,但您不需要做任何特殊的事情来确保在启动时关闭,因为它们现在被标记为 NIC 组的一部分。操作系统的启动配置将意识到它不应该单独启动这四个接口,而应该只作为 NIC 组的一部分启动。


以上所有内容均假设您已禁用网络管理器回到在 Red Hat 类型的 Linux 上配置网络的好旧方法:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
$ sudo systemctl start network.service
$ sudo systemctl enable network.service

对于服务器来说,这通常是一个好主意,特别是当它们的网络配置开始变得棘手时,例如 LACP。 NetworkManager 解决了很多问题,但它通常以桌面为中心,这对于服务器来说是不合适的。例如,它解决了笔记本电脑常见的自动 WiFi 到以太网转换问题。服务器通常具有静态网络配置,因此 NetworkManager 最终可能会成为障碍。

不过,如果您发现自己想坚持使用红帽的默认设置,他们确实涵盖了这种替代方案手册前面的几个部分

相关内容