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 という名前で作成するには、以下のコマンドを実行します。
NetworkManager は内部パラメーター
~]$ nmcli connection add type team ifname ServerA
Connection 'team-ServerA' (b954c62f-5fdd-4339-97b0-40efac734c50) successfully added.
connection.autoconnect を yes に設定します。IP アドレスが指定されていないため、ipv4.method は auto に設定されます。NetworkManager は、設定ファイルを /etc/sysconfig/network-scripts/ifcfg-team-ServerA に書き込みます。ここで、対応する ONBOOT は yes に、BOOTPROTO は dhcp に設定されます。
ifcfg ファイルへの手動の変更は、インターフェイスが次に起動するまで NetworkManager では認識されません。設定ファイルの使用方法については、「sysconfig ファイルによる NetworkManager の使用」を参照してください。
割り当てた別の値を表示するには、以下のコマンドを実行します。
JSON 設定ファイルが指定されていないので、デフォルト値が適用されます。チーム JSON パラメーターとそのデフォルト値の詳細は、
~]$ 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]
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
すでに存在するチームのチーム設定ファイルを読み込むには、
: JSON 文字列としてチーム設定を指定するか、設定を含むファイル名を指定します。ファイル名には、パスを含めることができます。いずれの場合も、
nmcli connection modify team-name team.config JSON-config
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 は、イーサネットポートのみをサポートします。
~]$ 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 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」になっている必要があることに注意してください。インターフェイスのステータスを確認するには、以下のコマンドを実行します。
この例では、使用する予定のインターフェイスはどちらも「UP」になっていることが分かります。
~]$ 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
インターフェイスを停止するには、
必要に応じて各インターフェイスでこれを繰り返します。
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
必要に応じてポートインターフェイスを同様に追加します。追加する各ポート (ネットワークデバイス) に応じて、DEVICE と HWADDR のフィールドを変更します。ポートの優先度が
/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}'
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