RHEL 7 で起動時に NIC チームを起動する方法

RHEL 7 で起動時に NIC チームを起動する方法

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 回だけ実行され、再起動後もこの設定が維持されるようにしたいです。

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

提案された修正を適用しようとしましたが、次の質問が表示されました:

  1. ifcfg-team0ファイルを作成しました。内容は次のとおりです:

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

「デバイス」セクションを削除して、TEAMCONFIG='{"runner": { "name": "lacp"...すでに があるために変更する必要がありますかDEVICE=team0? または、 を 2 回言及しても大丈夫ですか?

  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-eno1ifcfg-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 チームの一部としてマークされているため、起動時にそれを保証するために特別な操作を行う必要はありません。OS のブート構成では、これらの 4 つのインターフェイスを個別に起動するのではなく、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 から Ethernet への自動移行を解決します。サーバーは通常、静的なネットワーク構成を持っているため、NetworkManager は邪魔になるだけです。

それでも、Red Hatのデフォルトを使い続けたい場合、代替案はカバーされています。マニュアルの前のいくつかのセクション

関連情報