GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 7 でネットワーク チーミングを構成する方法

ネットワーク サーバーでは、ネットワーク インターフェイスが常に利用可能であることを保証することが重要な要件です。 Red Hat Enterprise Linux 7 では、集約されたネットワーク インターフェイスを作成できます。この目標を達成するには、ネットワーク チーミングまたはネットワーク ボンディングを使用してください。

RHEL の以前のバージョンでは、ネットワーク ボンディングが、集約されたネットワーク インターフェイスを作成するためのデフォルトの方法でした。 RHEL 7 では、ネットワーク チーミングがソリューションとして追加されました。これら 2 つの主な違いは、ネットワーク ボンディングが完全にユーザー空間で行われるのに対し、ネットワーク チーミングでは、teamd デーモンが追加され、ユーザー空間での対話も可能になることです。両方の方法がまだ有効である場合でも、ネットワーク チーミングが推奨される方法です。

以前のバージョンの Red Hat Enterprise Linux では、同じ目的を達成するためにネットワーク ボンディングが使用されていました。ネットワーク チーミングは、Red Hat Enterprise Linux 7 の新機能です。このソリューションは、小さなカーネル ドライバーと、ユーザー空間で利用可能なデーモン teamd で構成されます。

# rpm -qa | grep teamd
teamd-1.27-4.el7.x86_64

カーネルはネットワーク パケットの処理を担当し、teamd ドライバーはロジックとインターフェイスの処理を処理します。これがどのように起こっているかを正確に判断するために、さまざまなランナーが使用されます。チーミングのランナーは、結合モードに相当します。これらは、構成に関与するインターフェース間のトラフィック処理のロジックを定義するために使用されます。以下の表は、利用可能なランナーの概要を示しています。

ランナー 備考
ラウンドロビン これは私たちが使用しているデフォルトです。ラウンド ロビン方式でチーム内のすべてのインターフェイスにパケットを送信するだけです。つまり、一度に 1 つずつ次のインターフェイスに続きます。
ブロードキャスト すべてのトラフィックがすべてのポートを介して送信されます。
アクティブバックアップ 1 つのインターフェースが使用され、もう 1 つのインターフェースはバックアップとして確保されます。リンクは変更を監視され、必要に応じてフェイルオーバー リンクが使用されます。
ロードバランス トラフィックは、Tx トラフィックに基づいてすべてのインターフェイスでバランスが取られます。利用可能なインターフェイスで均等な負荷を共有する必要があります。
ラック 802.3ad LACP プロトコルを実装します。

1. JSON 形式の定義を使用してネットワーク チームを構成する [永続的ではない]

1. チームとそのコンポーネント ポートの JSON 形式の定義ファイルを作成します。この例では、/root/team_config/team0.conf です。 .

# cat /root/team_config/team0.conf
#team0.conf
{
   "device": "team0",
   "runner": {"name": "activebackup"},
   "link_watch": {"name": "ethtool"},
   "ports": {
      "enp0s8": {
         "prio": -10,
         "sticky": true
       },
       "enp0s9": {
         "prio": 100
       }
   }
}

2. ip コマンドを使用して、コンポーネント ポートを停止します。

# ip link set enp0s8 down
# ip link set enp0s9 down
注意 :アクティブなインターフェイスをチームに追加することはできません。

3. teamd デーモンのインスタンスを開始し、構成ファイル (この例では /root/team_config/team0.conf) を読み取ってチーム化されたインターフェースを作成します:

# teamd -g -f /root/team_config/team0.conf -d
Using team device "team0".
Using PID file "/var/run/teamd/team0.pid"
Using config file "/root/team_config/team0.conf"
注意 :-g オプションはデバッグ メッセージを表示し、省略できます。

4. ip コマンドを使用して、チーム化されたインターフェースの IPaddr とネットワーク マスク プレフィックス長を設定します。

# ip addr add 192.168.22.10/24 dev team0

5. 「ip addr」および「teamdctl」コマンドで構成を確認します。

# ip addr
team0:  mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 08:00:27:5a:d8:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.22.10/24 scope global team0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe5a:d850/64 scope link
valid_lft forever preferred_lft forever
# teamdctl team0 state
setup:
runner: activebackup
ports:
enp0s8
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
enp0s9
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: enp0s9

2. ifcfg ファイルを使用してネットワーク チームを構成する [持続的]

1. /etc/sysconfig/network-scripts に移動します ディレクトリに移動し、以下に示すように「ifcfg-team0」ファイルを作成します:

# cat /etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no
#IPADDR=192.168.11.1
PREFIX=24
TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'
注意 :チーミング インターフェイス team0 は、BOOTPROTO=none の静的 IP を持つこともできます

2. それぞれのインターフェースのファイルを編集します (ここでは、2 つのインターフェース enp0s8 と enp0s9 を追加しました):

# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
DEVICE=enp0s8
#HWADDR=D4:85:64:01:46:9E
DEVICETYPE=TeamPort
ONBOOT=yes
NM_CONTROLLED=no
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s9
DEVICE=enp0s9
#HWADDR=D4:85:64:01:46:9E
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
NM_CONTROLLED=no
TEAM_PORT_CONFIG='{"prio": 100}'

3. 両方のインターフェースがダウンしていることを確認します:

# ip link set enp0s8 down
# ip link set enp0s9 down
注意 :アクティブなインターフェイスをチームに追加することはできません。

4. これで、インターフェースを立ち上げることができます

# ifup team0

5. 「ip addr」、「nmcli device status」、および「teamdctl」コマンドを使用してチーミング構成を確認します。

# ip addr
team0:  mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 08:00:27:2e:4c:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.57.101/24 brd 192.168.57.255 scope global dynamic team0
valid_lft 1178sec preferred_lft 1178sec
inet6 fe80::a00:27ff:fe2e:4c65/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
# nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s8 ethernet unmanaged --
enp0s9 ethernet unmanaged --
team0 team unmanaged --
# teamdctl team0 state
setup:
runner: activebackup
ports:
enp0s8
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
enp0s9
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: enp0s8

チームの削除

チーム デーモンのインスタンスを終了または強制終了するには、次のコマンドを使用します:

# teamd -t team0 -k


Cent OS
  1. CentOS8またはRHEL8でネットワークサービスを再起動する方法

  2. CentOS / RHEL 7 で NetworkManager を無効にする方法

  3. CentOS / RHEL 7 :キャッシュのみのネームサーバーを構成する方法

  1. CentOS / RHEL 6,7 :hugepage の設定方法

  2. CentOS / RHEL 7 :ネットワーク ボンディングまたは NIC チーミングを構成する方法

  3. CentOS/RHEL 8 で firewalld ロギングを構成する方法

  1. CentOS / RHEL 5 :インターフェイス ボンディング (NIC チーミング) の構成方法

  2. CentOS / RHEL 4 :インターフェイス ボンディング (NIC チーミング) を構成する方法

  3. CentOS/RHEL/Fedora でプロキシを構成する方法