ネットワーク サーバーでは、ネットワーク インターフェイスが常に利用可能であることを保証することが重要な要件です。 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