CentOS Stream 8
Sponsored Link

ネットワーク ボンディングの設定
2021/12/08
 
サーバーコンピューターに複数のネットワークインターフェースが搭載されている場合、ネットワーク ボンディングの設定を適用することにより、複数のネットワークインターフェースを使用して、ネットワークの冗長化や負荷分散をすることができます。
同様の機能として、ネットワーク チーミング も提供されています。
ボンディングとチーミングの機能比較表は下記サイトを参照ください。
⇒ 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' (c0ab6b8c-0eac-a1b4-1c47-efe4b2d1191f) 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' (065773f8-2d6e-4718-88c3-1c4ef2fab8a5) successfully added.

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

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

Connection 'bond-slave-enp1s0' (f0c5a801-3d3f-431e-a31b-2f296f0ac46f) successfully added.
[root@dlp ~]#
nmcli connection add type ethernet ifname enp7s0 master bond0

Connection 'bond-slave-enp7s0' (6368b4fd-8b05-4d2a-978e-58796cf32e16) 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              065773f8-2d6e-4718-88c3-1c4ef2fab8a5  bond      bond0
bond-slave-enp1s0  f0c5a801-3d3f-431e-a31b-2f296f0ac46f  ethernet  enp1s0
bond-slave-enp7s0  6368b4fd-8b05-4d2a-978e-58796cf32e16  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: v3.7.1 (April 27, 2011)

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:65:52:ca
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:ff:86:42
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:65:52:ca 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:65:52:ca brd ff:ff:ff:ff:ff:ff permaddr 52:54:00:ff:86:42
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:65:52:ca 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::1ca1:2d40:b983:545b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

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

[root@dlp ~]#
ll /etc/sysconfig/network-scripts

total 12
-rw-r--r--. 1 root root 415 Dec  8 14:56 ifcfg-bond0
-rw-r--r--. 1 root root 127 Dec  8 14:48 ifcfg-bond-slave-enp1s0
-rw-r--r--. 1 root root 127 Dec  8 14:48 ifcfg-bond-slave-enp7s0
関連コンテンツ