NICのTeaming設定(RHEL)

想定構成

以下構成で10GbpsのNICを2本束ねる。

参考URL  nmcli を使用したネットワークチーミングの設定

  1. チーミングインタフェースを作成
  2. 物理IFをチーミングに所属
  3. チーミングIFを有効化

teamingを設定する方法にはいくつかあるが,ここでは公式ドキュメント最初に出てくるnmcliを利用して設定する。なお,teamdは永続性がないためnmcliやifcfgファイルで設定する方がよさそう。

想定する設定は,

  1. interfaceは「enp1s0f0」「enp1s0f1」の2つを利用。
  2. LACP利用
  3. 送信負荷分散のハッシュ値にmac address(scx/dst), ip address(src/dst), tcp port(src/dst) の3つを含める。

Teamingインタフェース作成

nmcliコマンドでTeamingの論理インタフェースを作成する。

# nmcli connection add type team ifname team0 con-name team0 config '{"device": "team0", "runner": {"name": "lacp", "active": true, "fast_rate": true, "tx_hash":  ["eth", "ipv4", "ipv6", "l4"]}, "link_watch": {"name": "ethtool"}}'
接続 'team0' (380df2de-dcef-4436-aded-9c4ab20e13e6) が正常に追加されました。

team0に所属させるインタフェースを設定する。オプションで「con-name」をつけると別名でインタフェースを定義できるが指定しないと「team-slave-enp1s0f0」のようになる。

# nmcli con add type team-slave ifname enp1s0f0 master team0
# nmcli con add type team-slave ifname enp1s0f1 master team0

IFの有効化

物理IF,TeamingIFのどちらを有効にしてもよい。

# nmcli con up team-slave-enp1s0f0
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/22)
# nmcli con up team-slave-enp1s0f1
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/25)

# nmclie con up team0
# ip link
18: team0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:1b:21:6e:82:1d brd ff:ff:ff:ff:ff:ff

IPアドレスが設定されないとUPにならないが,後々内部ブリッジに接続させる予定なので今回はここまで。