Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.10. コマンドラインを使用したネットワークチームの設定

8.10.1. nmcli を使用したネットワークチーミングの設定

システムで利用可能な接続を表示するには、以下のコマンドを実行します。
~]$ nmcli connection show
NAME  UUID                                  TYPE            DEVICE
enp2s0  0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --
enp1s0  dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
システムで利用可能なデバイスを表示するには、以下のコマンドを実行します。
~]$ nmcli device status
DEVICE      TYPE      STATE                                  CONNECTION
virbr0      bridge    connected                              virbr0
ens3        ethernet  connected                              ens3
新しいチームインターフェースを、ServerA という名前で作成するには、以下のコマンドを実行します。
~]$ nmcli connection add type team ifname ServerA
Connection 'team-ServerA' (b954c62f-5fdd-4339-97b0-40efac734c50) successfully added.
NetworkManager は、内部のパラメーター connection.autoconnectyes に設定します。IP アドレスが指定されていなかったため、ipv4.methodauto に設定されます。また NetworkManager/etc/sysconfig/network-scripts/ifcfg-team-ServerA に設定ファイルを書き込みます。ここでは、対応する ONBOOT が yes に、BOOTPROTO が dhcp に設定されます。
ifcfg ファイルへの手動の変更は、そのインターフェースが次に起動するまで、NetworkManager により認識されません。設定ファイルの使用方法については、「sysconfig ファイルによる NetworkManager の使用」を参照してください。
割り当てた別の値を表示するには、以下のコマンドを実行します。
~]$ nmcli con show team-ServerA
connection.id:                          team-ServerA
connection.uuid:                        b954c62f-5fdd-4339-97b0-40efac734c50
connection.interface-name:              ServerA
connection.type:                        team
connection.autoconnect:                 yes

ipv4.method:                            auto
[output truncated]
JSON 設定ファイルが指定されていないので、デフォルト値が適用されます。チーム JSON パラメーターとそれらのデフォルト値についての詳細情報は、teamd.conf(5) man ページを参照してください。名前は、インターフェース名の前に種類を追加したものになっていることに留意してください。別の方法では、以下のように con-name オプションで名前を指定します。
~]$ nmcli connection add type team con-name Team0 ifname ServerB
Connection 'Team0' (5f7160a1-09f6-4204-8ff0-6d96a91218a7) successfully added.
設定したチームインターフェースを表示するには、以下のコマンドを実行します。
~]$ nmcli con show
NAME                UUID                                  TYPE            DEVICE
team-ServerA        b954c62f-5fdd-4339-97b0-40efac734c50  team            ServerA
enp2s0                0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --
enp1s0                dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
Team0               5f7160a1-09f6-4204-8ff0-6d96a91218a7  team            ServerB
チームに割り当てられた名前を変更するには、以下の形式でコマンドを入力します。
nmcli con mod old-team-name connection.id new-team-name
すでに存在するチームのチーム設定ファイルを読み込むには、
nmcli connection modify team-name team.config JSON-config
で、JSON 文字列としてチーム設定を指定するか、設定が含まれるファイルを提供することもできます。ファイル名には、パスを含めることができます。いずれの場合も、team.config プロパティーに保存される内容は JSON 文字列です。JSON 文字列の場合は、文字列を単一引用符で囲み、文字列全体をコマンドラインにペーストします。
team.config プロパティーを確認するには、次のコマンドを実行します。
nmcli con show team-name | grep team.config
team.config プロパティーを設定すると、それに合わせて、その他のチームプロパティーがすべて更新されます。
対応する JSON 文字列を直接変更せずに、特定のチームオプションを公開して設定するより柔軟な方法も可能になります。これは、利用可能なその他のチームプロパティーを使用して、必要な値に 1 つずつ関連するチームオプションを設定できます。その結果、新しい値に一致するように team.config プロパティーが更新されます。
たとえば、1 つまたは複数の link-watchers を指定できる team.link-watchers プロパティーを設定するには、以下の形式でコマンドを実行します。
nmcli connection modify team-name team.link-watchers "name=ethtool delay-up=5, name=nsna_ping target-host=target.host"
必要な link-watchers はコンマで区切り、同じlink-watcher に所属する属性はスペースで区切ります。
team.runner および team. link-watchers プロパティーを設定するには、以下の形式でコマンドを入力します。
nmcli connection modify team-name team.runner activebackup team.link-watchers "name=ethtool delay-up=5, name=nsna_ping target-host=target.host"
これは、team.config プロパティーを対応する JSON 文字列に設定するのと同じです。
nmcli connection modify team-name team.config '{"runner": {"name": "activebackup"}, "link_watch": [{"name": "ethtool", "delay_up": 5},{"name": "nsna_ping", "target_host ": "target.host"}]'
Team0Team0-port1 の名前でインターフェース enp1s0 を追加するには、以下のコマンドを実行します。
~]$ nmcli con add type ethernet con-name Team0-port1 ifname enp1s0 master Team0
Connection 'Team0-port1' (ccd87704-c866-459e-8fe7-01b06cf1cffc) successfully added.
同様に Team0-port2 の名前で別のインターフェース enp2s0 を追加するには、以下のコマンドを実行します。
~]$ nmcli con add type team-slave con-name Team0-port2 ifname enp2s0 master Team0
Connection 'Team0-port2' (a89ccff8-8202-411e-8ca6-2953b7db52dd) successfully added.
nmcli は、イーサネットポートだけをサポートします。
チームを有効にするには、以下のように最初にポートをアップにする必要があります。
~]$ nmcli connection up Team0-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
~]$ nmcli connection up Team0-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
以下のようにポートをアクティブ化することで、チームインターフェースがアップになっていることを確認できます。
~]$ ip link
3:  Team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:76:6f:f0 brd ff:ff:ff:ff:ff:f
あるいは、以下のようにチームを有効にするコマンドを実行します。
~]$ nmcli connection up Team0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
nmcli の概要は、「nmcli を使用する IP ネットワークの設定」を参照してください。