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.autoconnect
を yes
に設定します。IP
アドレスが指定されていないため、ipv4.method
は auto
に設定されます。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 つまたは複数のリンク監視を指定できるようにする
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"}]'
Team0-port1 という名前の
Team0
にインターフェイス enp1s0 を追加するには、以下のコマンドを実行します。
~]$ nmcli con add type ethernet con-name Team0-port1 ifname enp1s0 slave-type team master Team0
Connection 'Team0-port1' (ccd87704-c866-459e-8fe7-01b06cf1cffc) successfully added.
同様に Team0-port2 の名前で別のインターフェイス enp2s0 を追加するには、以下のコマンドを実行します。
~]$ nmcli con add type ethernet con-name Team0-port2 ifname enp2s0 slave-type team 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 ネットワークの設定」 を参照してください。
8.10.2. teamd を使用したネットワークチームの作成
注記
teamd を使って作成された設定には永続性がありません。このため、「nmcli を使用したネットワークチーミングの設定」または「ifcfg ファイルを使用したネットワークチームの作成」で定義されているステップを使ってチームを作成する必要がある場合があります。
ネットワークチームを作成するには、ポートまたはリンクのチームに対するインターフェイスとして作動する仮想インターフェイスの設定ファイルが JSON 形式で必要になります。簡単な方法は、サンプル設定ファイルをコピーし、
root
権限でエディターを使用してファイルを編集することです。利用可能な設定例をリスト表示するには、以下のコマンドを実行します。
~]$ ls /usr/share/doc/teamd-*/example_configs/
activebackup_arp_ping_1.conf activebackup_multi_lw_1.conf loadbalance_2.conf
activebackup_arp_ping_2.conf activebackup_nsna_ping_1.conf loadbalance_3.conf
activebackup_ethtool_1.conf broadcast.conf random.conf
activebackup_ethtool_2.conf lacp_1.conf roundrobin_2.conf
activebackup_ethtool_3.conf loadbalance_1.conf roundrobin.conf
activebackup_ethtool_1.conf
など、含まれているファイルのいずれかを表示するには、以下のコマンドを実行します。
~]$ cat /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf
{
"device": "team0",
"runner": {"name": "activebackup"},
"link_watch": {"name": "ethtool"},
"ports": {
"enp1s0": {
"prio": -10,
"sticky": true
},
"enp2s0": {
"prio": 100
}
}
}
teamd
設定ファイルを保存する作業設定ディレクトリーを作成します。たとえば通常ユーザーの場合、以下の形式のコマンドを実行します。
~]$ mkdir ~/teamd_working_configs
選択したファイルを作業ディレクトリーにコピーし、必要に応じて編集します。以下の形式のコマンドを使用できます。
~]$ cp /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf \ ~/teamd_working_configs/activebackup_ethtool_1.conf
ネットワークチームのポートとして使用するインターフェイスを変更する場合など、使用中の環境に適合するようにファイルを編集するには、以下のように編集するファイルを開きます。
~]$ vi ~/teamd_working_configs/activebackup_ethtool_1.conf
必要な変更を加えて、ファイルを保存します。vi (1)
の man ページでは、vi エディターの使用についてのヘルプを参照するか、お好みのエディターを使用してください。
チーム内でポートとして使用するインターフェイスをチームデバイスに追加する際には、それがアクティブになっていない、つまり「down」になっている必要があることに注意してください。インターフェイスのステータスを確認するには、以下のコマンドを実行します。
~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:d5:f7:d4 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:d8:04:70 brd ff:ff:ff:ff:ff:ff
この例では、使用する予定のインターフェイスはどちらも「UP」になっていることが分かります。
インターフェイスを停止するには、
root
で以下の形式のコマンドを実行します。
~]# ip link set down em1
必要に応じて各インターフェイスでこれを繰り返します。
設定ファイルに基づいてチームインターフェイスを作成するには、
root
ユーザーとして作業設定ディレクトリー(この例ではteamd_working_configs )に移動します。
~]# cd /home/userteamd_working_configs
それから、以下の形式のコマンドを実行します。
~]# teamd -g -f activebackup_ethtool_1.conf -d
Using team device "team0".
Using PID file "/var/run/teamd/team0.pid"
Using config file "/home/user/teamd_working_configs/activebackup_ethtool_1.conf"
-g
オプションはデバッグメッセージ用のオプションであり、-f
オプションは、読み込む設定ファイルを指定することです。-d
オプションは、起動後にプロセスがデーモンとして実行されるようにします。その他のオプションについては、teamd (8)
man ページを参照してください。
チームのステータスを確認するには、
root
で以下のコマンドを実行します。
~]# teamdctl team0 state
setup:
runner: activebackup
ports:
em1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
em2
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: em1
アドレスをネットワークチームインターフェイスに適用するには、以下を実行します。team0
root
で以下の形式でコマンドを実行します。
~]# ip addr add 192.168.23.2/24 dev team0
チームインターフェイスの IP アドレスを確認するには、以下のコマンドを実行します。
~]$ ip addr show team0
4: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 16:38:57:60:20:6f brd ff:ff:ff:ff:ff:ff
inet 192.168.23.2/24 scope global team0
valid_lft forever preferred_lft forever
inet6 2620:52:0:221d:1438:57ff:fe60:206f/64 scope global dynamic
valid_lft 2591880sec preferred_lft 604680sec
inet6 fe80::1438:57ff:fe60:206f/64 scope link
valid_lft forever preferred_lft forever
チームインターフェイスをアクティブにするか、を起動するには、
root
で以下の形式のコマンドを実行します。「」
~]# ip link set dev team0 up
チームインターフェイスを一時的に非アクティブ化するか、を 「停止」 するには、
root
で以下の形式のコマンドを実行します。
~]# ip link set dev team0 down
チームデーモンのインスタンスを終了するか、または強制終了するには、
root
ユーザーとして以下の形式のコマンドを実行します。
~]# teamd -t team0 -k
-k
オプションは、デバイスに関連付けられたデーモンのインスタンスを指定することです。 team0 強制終了されます。その他のオプションについては、teamd (8)
man ページを参照してください。
teamd
のコマンドラインオプションのヘルプは、次のコマンドを発行します。
~]$ teamd -h
また、teamd (8)
の man ページを参照してください。
8.10.3. ifcfg ファイルを使用したネットワークチームの作成
ifcfg
ファイルを使用してネットワークチームを作成するには、以下のように /etc/sysconfig/network-scripts/
ディレクトリーにファイルを作成します。
DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=none IPADDR=192.168.11.1 PREFIX=24 TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'これでチームへのインターフェイスが作成されます。つまり、これが
マスター
になります。
メンバーとなるポートを作成するには、以下を実行します。 team0
/etc/sysconfig/network-scripts/
ディレクトリーに以下のように 1 つ以上のファイルを作成します。
DEVICE=enp1s0 HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team0 TEAM_PORT_CONFIG='{"prio": 100}'必要に応じてポートインターフェイスを同様に追加します。追加する各ポート (ネットワークデバイス) に応じて、DEVICE と HWADDR のフィールドを変更します。ポートの優先度が
prio
によって指定されていない場合、デフォルトで 0
になります。-32,767 から +
32,767
までの範囲の負の値および正の値を受け入れます。
HWADDR ディレクティブを使用してハードウェアまたは MAC アドレスを指定すると、デバイスの命名手順に影響します。これについては、11章ネットワークデバイス命名における一貫性で説明します。
ネットワークチームを開くには、
root
で以下のコマンドを実行します。
~]# ifup team0
ネットワークチームを表示するには、以下のコマンドを実行します。
~]$ ip link show
8.10.4. iputils を使用したネットワークチームへのポートの追加
ポートを追加するには、以下を実行します。 em1 ネットワークチームへ team0ip ユーティリティーを使用して、
root
で以下のコマンドを実行します。
~]# ip link set dev em1 down ~]# ip link set dev em1 master team0必要に応じてさらにポートを追加します。チームドライバーが自動的にポートをアップにします。
8.10.5. teamnl を使用したチームのポートのリスト表示
teamnl ユーティリティーを使用して、ネットワークチーム内のポートを表示または一覧表示するには、
root
で以下のコマンドを実行します。
~]# teamnl team0 ports
em2: up 100 fullduplex
em1: up 100 fullduplex
8.10.6. teamnl を使用したチームのオプション設定
teamnl ユーティリティーを使用して、現在利用可能なすべてのオプションを表示または一覧表示するには、
root
で以下のコマンドを実行します。
~]# teamnl team0 options
チームがアクティブなバックアップモードを使用するように設定するには、root
で以下のコマンドを実行します。
~]# teamnl team0 setoption mode activebackup
8.10.7. iputils を使用したネットワークチームへのアドレス追加
チームへのアドレスの追加 team0ip ユーティリティーを使用して、
root
で以下のコマンドを実行します。
~]# ip addr add 192.168.252.2/24 dev team0
8.10.8. iputils を使用したネットワークチームへのインターフェイスの有効化
ネットワークチームへインターフェイスをアクティブまたは 「開く」 には、以下を行います。team0ip ユーティリティーを使用して、
root
で以下のコマンドを実行します。
~]# ip link set team0 up
8.10.9. teamnl を使用したチームのアクティブポートオプション表示
teamnl ユーティリティーを使用して、ネットワークチームで
activeport
オプションを表示または一覧表示するには、root
で以下のコマンドを実行します。
~]# teamnl team0 getoption activeport
0
8.10.10. teamnl を使用したチームのアクティブポートオプション設定
teamnl ユーティリティーを使用して、ネットワークチームで
activeport
オプションを設定するには、root
で以下のコマンドを実行します。
~]# teamnl team0 setoption activeport 5
チームポートオプションの変更を確認するには、root
で以下のコマンドを実行します。
~]# teamnl team0 getoption activeport
5