Linuxでは、複数のNICを束ねて (チーミングして) 冗長化する機能として「Bonding」がある。
BondingはOS標準の機能として利用できるものであり、設定方法は、以前以下にて記事にしている。
上記記事は、RHEL 6やCentOS 6時代のネットワーク設定ファイルを直接編集する方法であり、現在主流となっているRHEL 7 (CentOS 7) 以降のOSでは推奨されない設定方法となっている。
今回は、推奨手順である「NetworkManager」を使ったBondingの設定手順を記載する。
環境
- OS : CentOS 8
- NIC構成
- ens192 : 作業のためにSSH接続するためのNIC
- bond0 : ens224とens256を所属させる
Bonding設定手順
1. 設定前のNICの確認
NICの初期状態は以下の通り。ens224とens256をBondingして冗長化する。
# nmcli d s
DEVICE TYPE STATE CONNECTION
ens192 ethernet 接続済み ens192
ens224 ethernet 接続済み ens224
ens256 ethernet 接続済み ens256
lo loopback 管理無し --
# nmcli c s
NAME UUID TYPE DEVICE
ens192 d218a6ca-5466-43af-a7a1-30a61fd832bb ethernet ens192
ens224 82f2f852-b37d-4cee-a1c5-ea87e2f0977b ethernet ens224
ens256 29593342-dfc3-4eef-8c3d-83937a27dc39 ethernet ens256
2. 自動認識しているNIC設定を削除
自動認識しているens224とens256の2つのNIC設定 (Connection) は不要となるため削除しておく。削除はnmcli c del
コマンドにて行う。
# nmcli c del ens224
接続 'ens224' (2f419b53-b2b3-4901-8845-40f3008783ba) が正常に削除されました。
# nmcli c del ens256
接続 'ens256' (9a9b2f3c-9bb4-4af4-af85-307c79fad4d0) が正常に削除されました。
3. Bondインタフェースを作成
Bondインタフェースを新規作成する。通常、ifname
は物理NICのデバイス名を指定するが、Bondインタフェースは特に実態となる物理NICが存在しないため、インタフェース名 (con-name
) と同様に「bond0」にて作成すればよい。
bond.options
については、以下で設定した。
- downdelay=0 : 監視でNICのリンクダウンを検知した後、ステータスを「down」に変化させるまでの遅延。0で無効に設定
- miimon=100 : 監視感覚を100msecに設定
- mode=activebackup : 冗長化方式をActive-Backupに設定
- primary=ens224 : 優先インタフェースをens224に設定
- updelay=0 : 監視でNICのリンクアップを検知した後、ステータスを「up」に変化させるまでの遅延。0で無効に設定
# nmcli c add type bond con-name bond0 ifname bond0 bond.options "downdelay=0,miimon=100,mode=active-backup,primary=ens224,updelay=0"
接続 'bond0' (aa7cfc85-ad14-4d2b-a3c9-d9154fd80957) が正常に追加されました。
4. BondインタフェースにNICを追加
先ほど作成したBondインタフェースである「bond0」に物理NICを追加する。「bond0」に所属させるため、slave-type bond
とmaster bond0
を設定する。
# nmcli c add type ethernet slave-type bond con-name ens224 ifname ens224 master bond0
接続 'ens224' (ee918a9a-bdbb-489d-9feb-1d6efefe94e4) が正常に追加されました。
# nmcli c add type ethernet slave-type bond con-name ens256 ifname ens256 master bond0
接続 'ens256' (f8ec5b06-d43d-4d7e-a885-ac5120d556f2) が正常に追加されました。
5. BondインタフェースにIPアドレス等を設定
通常のインタフェースの設定と同様に、IPアドレスやデフォルトゲートウェイ、DNSなどの設定を投入する。設定内容は以下の通り。
- IPv4設定を「手動」に : ipv4.method manual
- IPv4アドレス : ipv4.address 192.168.11.192/24
- IPv4のDGW : ipv4.gateway 192.168.11.31
- IPv4のDNS : ipv4.dns 192.168.11.61
- IPv6設定を「無視」 : ipv6.method ignore
- OS起動時に自動接続する : connection.autoconnect yes
# nmcli c mod bond0 ipv4.method manual ipv4.address 192.168.11.192/24 ipv4.gateway 192.168.11.31 ipv4.dns 192.168.11.61 ipv6.method ignore connection.autoconnect yes
設定反映のため、アクティベートを実施する。
# nmcli c up bond0
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/29)
動作確認
Bondingされたインタフェースの状態は「/proc/net/bonding/[Bondインターフェース]」にて確認できる。今回は「/proc/net/bonding/bond0」となる。
Pingを1秒間隔で打ちながら切り替わり動作を確認してみた。まず、正常時の状態を確認する。
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens224 (primary_reselect always)
Currently Active Slave: ens224 ←★ens224がActive
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:31:7a:1b
Slave queue ID: 0
Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:31:7a:25
Slave queue ID: 0
ens224を切断すると、もう一方のNICであるens256に切り替わる。切り替わり時のPing欠けは2回だった。
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens224 (primary_reselect always)
Currently Active Slave: ens256 ←★ens256に切り替わる
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens224
MII Status: down ←★ステータスが「down」になる
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1 ←★Failure Countが+1
Permanent HW addr: 00:0c:29:31:7a:1b
Slave queue ID: 0
Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:31:7a:25
Slave queue ID: 0
ens224を復旧させると、もうens224に切り戻る。切り替わり時のPing欠けは2回だった。
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens224 (primary_reselect always)
Currently Active Slave: ens224 ←★ens224に切り替わる
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens224
MII Status: up ←★ステータスが「up」になる
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1 ←★Failure Countは1のまま
Permanent HW addr: 00:0c:29:31:7a:1b
Slave queue ID: 0
Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:31:7a:25
Slave queue ID: 0
なお、「Link Failure Count」が1のままリセットされないが、リセットしたい場合は、Bondingデバイスを再度アクティベートすればよい。
# nmcli c up bond0
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/35)
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens224 (primary_reselect always)
Currently Active Slave: ens224
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0 ←★Failure Countが0にリセットされる
Permanent HW addr: 00:0c:29:31:7a:1b
Slave queue ID: 0
Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:31:7a:25
Slave queue ID: 0
0 件のコメント:
コメントを投稿