CentOS Stream 9
Sponsored Link

ネットワーク ボンディングの設定2022/06/29

 
サーバーコンピューターに複数のネットワークインターフェースが搭載されている場合、ネットワーク ボンディングの設定を適用することにより、複数のネットワークインターフェースを使用して、ネットワークの冗長化や負荷分散をすることができます。
同様の機能として、ネットワーク チーミング も提供されています。
ボンディングとチーミングの機能比較表は下記サイトを参照ください。
⇒ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-comparison_of_network_teaming_to_bonding
ボンディングの設定の際に指定する動作モードの概要は以下の通りです。
モード番号 モード名称 概要
0 balance-rr 全てのメンバーデバイス (NIC) を使用して、順番 (ラウンドロビン) にデータを送受信する。
負荷分散と冗長化に対応する。
trunk に対応したスイッチが必要となる。
ボンディングの設定時に Mode を指定しない場合は、当モードがデフォルトモードとして適用される。
1 active-backup メンバーデバイスのうちの 1つの NIC のみをアクティブインターフェイスとしてデータを送受信する。
冗長化に対応する。
2 balance-xor 送信元/先の MAC アドレスを元に、メンバーデバイスから送信デバイスを決定してデータを送受信する。
負荷分散と冗長化に対応する。
trunk に対応したスイッチが必要となる。
3 broadcast 全メンバーデバイスに同一パケットを送信する。
冗長化に対応する。
通常用途では使用しない。
4 802.3ad IEEE 802.3ad (LACP) に準拠したリンクアグリゲーション。
IEEE 802.3ad に対応したスイッチが必要となる。
5 balance-tlb 送信時のみ NIC の速度、及び負荷に応じて負荷分散を行い、受信時は冗長化する。
負荷分散と冗長化に対応する。
6 balance-alb balance-tlb の機能に加え、受信も負荷分散する。
負荷分散と冗長化に対応する。

[1] ボンディングの設定です。
# ネットワークデバイス確認

[root@dlp ~]#
nmcli device

DEVICE  TYPE      STATE         CONNECTION
enp1s0  ethernet  connected     enp1s0
enp7s0  ethernet  disconnected  --
lo      loopback  unmanaged     --

# 既存のネットワーク接続は一旦削除

[root@dlp ~]#
nmcli connection delete enp1s0

Connection 'enp1s0' (0c5a95c5-1c2a-351d-add2-7fee398c96ab) successfully deleted.

[root@dlp ~]#
nmcli device

DEVICE  TYPE      STATE         CONNECTION
enp1s0  ethernet  disconnected  --
enp7s0  ethernet  disconnected  --
lo      loopback  unmanaged     --

# ボンディングデバイス [bond0] を新規追加 (名称は任意)
# 各モードの概要は上表を参照 (モードの指定は番号でも OK)

[root@dlp ~]#
nmcli connection add type bond ifname bond0 con-name bond0 bond.options "mode=balance-rr"

Connection 'bond0' (c0c1097e-476e-4c5c-ac5a-3284fb053ce8) successfully added.

# 追加したボンディングデバイスのメンバーに物理ネットワークデバイスを追加

[root@dlp ~]#
nmcli connection add type ethernet ifname enp1s0 master bond0

Connection 'bond-slave-enp1s0' (0e799b5a-cc8d-4062-bf0d-927c080863ff) successfully added.
[root@dlp ~]#
nmcli connection add type ethernet ifname enp7s0 master bond0

Connection 'bond-slave-enp7s0' (d4a65fb1-9a77-40bd-b8be-aa88ce64cc5f) successfully added.

[root@dlp ~]#
nmcli device

DEVICE  TYPE      STATE      CONNECTION
bond0   bond      connected  bond0
enp1s0  ethernet  connected  bond-slave-enp1s0
enp7s0  ethernet  connected  bond-slave-enp7s0
lo      loopback  unmanaged  --

[root@dlp ~]#
nmcli connection

NAME               UUID                                  TYPE      DEVICE
bond0              c0c1097e-476e-4c5c-ac5a-3284fb053ce8  bond      bond0
bond-slave-enp1s0  0e799b5a-cc8d-4062-bf0d-927c080863ff  ethernet  enp1s0
bond-slave-enp7s0  d4a65fb1-9a77-40bd-b8be-aa88ce64cc5f  ethernet  enp7s0

# ボンディングデバイスに IP アドレス等々を設定してデバイス再起動
# IP アドレス

[root@dlp ~]#
nmcli connection modify bond0 ipv4.addresses 10.0.0.30/24
# ゲートウェイ

[root@dlp ~]#
nmcli connection modify bond0 ipv4.gateway 10.0.0.1
# DNS - 複数ある場合はスペース区切り

[root@dlp ~]#
nmcli connection modify bond0 ipv4.dns "10.0.0.10 10.0.0.11"
# DNS サーチベース - 複数ある場合はスペース区切り

[root@dlp ~]#
nmcli connection modify bond0 ipv4.dns-search "srv.world"
[root@dlp ~]#
nmcli connection modify bond0 ipv4.method manual

[root@dlp ~]#
nmcli connection down bond0 && nmcli connection up bond0

Connection 'bond0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
# ボンディング ステータス確認

[root@dlp ~]#
cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v5.14.0-115.el9.x86_64

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: enp1s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:6e:a3:17
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:fe:cd:82
Slave queue ID: 0

[root@dlp ~]#
ip address

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 52:54:00:6e:a3:17 brd ff:ff:ff:ff:ff:ff
3: enp7s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 52:54:00:6e:a3:17 brd ff:ff:ff:ff:ff:ff permaddr 52:54:00:fe:cd:82
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:6e:a3:17 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::34ce:9e06:c339:558a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

# 設定内容は以下に保存されている

[root@dlp ~]#
ll /etc/NetworkManager/system-connections

total 12
-rw-------. 1 root root 288 Jun 29 14:27 bond0.nmconnection
-rw-------. 1 root root 153 Jun 29 14:25 bond-slave-enp1s0.nmconnection
-rw-------. 1 root root 153 Jun 29 14:25 bond-slave-enp7s0.nmconnection
関連コンテンツ