CentOS Stream 10
Sponsored Link

ネットワーク ボンディングの設定2024/12/20

 

サーバーコンピューターに複数のネットワークインターフェースが搭載されている場合、ネットワーク ボンディングの設定を適用することにより、複数のネットワークインターフェースを使用して、ネットワークの冗長化や負荷分散をすることができます。

同様の機能として、ネットワーク チーミング も提供されています。
ボンディングとチーミングの機能比較表は下記サイトを参照ください。

⇒ 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
lo      loopback  connected (externally)  lo
enp8s0  ethernet  disconnected            --

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

[root@dlp ~]#
nmcli connection delete enp1s0

Connection 'enp1s0' (074161b7-ffe6-3fdd-920c-0bb7e5e7dc58) successfully deleted.

[root@dlp ~]#
nmcli device

DEVICE  TYPE      STATE                   CONNECTION
lo      loopback  connected (externally)  lo
enp1s0  ethernet  disconnected            --
enp8s0  ethernet  disconnected            --

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

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

Connection 'bond0' (fd9210d5-ace8-406e-91fd-d52a09c93bb2) successfully added.

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

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

Connection 'bond-slave-enp1s0' (5d624991-b7d3-4809-a8f0-ff26e10e7298) successfully added.
[root@dlp ~]#
nmcli connection add type ethernet ifname enp8s0 master bond0

Connection 'bond-slave-enp8s0' (d5e907a9-45fd-40bc-b713-e77a1b5156fd) successfully added.

[root@dlp ~]#
nmcli device

DEVICE  TYPE      STATE                   CONNECTION
bond0   bond      connected               bond0
enp1s0  ethernet  connected               bond-slave-enp1s0
enp8s0  ethernet  connected               bond-slave-enp8s0
lo      loopback  connected (externally)  lo

[root@dlp ~]#
nmcli connection

NAME               UUID                                  TYPE      DEVICE
bond0              fd9210d5-ace8-406e-91fd-d52a09c93bb2  bond      bond0
bond-slave-enp1s0  5d624991-b7d3-4809-a8f0-ff26e10e7298  ethernet  enp1s0
bond-slave-enp8s0  d5e907a9-45fd-40bc-b713-e77a1b5156fd  ethernet  enp8s0
lo                 e2af9d71-093e-43c8-905e-9c439697c78a  loopback  lo

# ボンディングデバイスに 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 ~]#
reboot

# ボンディング ステータス確認

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

Ethernet Channel Bonding Driver: v6.12.0-35.el10.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:ec:51:ad
Slave queue ID: 0

Slave Interface: enp8s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:c8:25:47
Slave queue ID: 0

[root@dlp ~]#
ip address show

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 noprefixroute
       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:ec:51:ad brd ff:ff:ff:ff:ff:ff
3: enp8s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 52:54:00:ec:51:ad brd ff:ff:ff:ff:ff:ff permaddr 52:54:00:c8:25:47
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:ec:51:ad 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::44f0:76e5:a7b0:2d92/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

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

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

total 12
-rw-------. 1 root root 281 Dec 20 13:02 bond0.nmconnection
-rw-------. 1 root root 169 Dec 20 13:00 bond-slave-enp1s0.nmconnection
-rw-------. 1 root root 169 Dec 20 13:00 bond-slave-enp8s0.nmconnection
関連コンテンツ