はじめに
CentOS7.3にて2つのネットワークインタフェースでbondingを組んでみました。
bondingを組む迄の手順をアウトプットしていきたいと思います。
そもそもbondingとは?
複数のネットワークインタフェースを束ねて冗長化したり、処理能力向上を図ること。
※teaming
とも呼ばれる。
環境
項目 | 説明 |
---|---|
Hypervisor | ESXi6.7 |
OS | CentOS7.3 |
NIC | 2枚 |
- OS
[root@tspweb01 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@tspweb01 ~]#
- NIC
ざっくりとした構成
備考
-
Slave
Bondingに参加する物理インタフェース -
Master
Bondingを司る論理インタフェース
今回構成するActive-backup構成
構築手順
事前確認
①ネットワーク確認
- ネットワークインタフェース
ens192
とens224
がDownしていることを確認。
[root@tspweb01 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:ee:2e:ba brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:ee:2e:c4 brd ff:ff:ff:ff:ff:ff
- NetworkManagerの状態
サービスが立ち上がっていることを確認
※今回は、サービスを立ち上げたまま設定を進めます。
[root@tspweb01 network-scripts]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since 火 2020-06-16 20:11:06 JST; 17min ago
Docs: man:NetworkManager(8)
Main PID: 782 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
mq782 /usr/sbin/NetworkManager --no-daemon
6月 16 20:26:28 tspweb01 NetworkManager[782]: <info> [1592306788.2383] ma...L
6月 16 20:26:28 tspweb01 NetworkManager[782]: <info> [1592306788.2384] po...S
6月 16 20:26:28 tspweb01 NetworkManager[782]: <info> [1592306788.2386] po...S
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2854] de...]
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2855] ma...L
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2885] au..."
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2890] de...]
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2900] ma...L
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2901] po...S
6月 16 20:26:33 tspweb01 NetworkManager[782]: <info> [1592306793.2902] po...S
Hint: Some lines were ellipsized, use -l to show in full.
[root@tspweb01 network-scripts]#
②ネットワーク設定ファイルバックアップ
-
ifcfg-*
のバックアップ
mkdir -p /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`
cp -p /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`/.
ls -la /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`
実行例
[root@tspweb01 network-scripts]# mkdir -p /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`
[root@tspweb01 network-scripts]# cp -pi /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`/.
[root@tspweb01 network-scripts]#
[root@tspweb01 network-scripts]# ls -la /etc/sysconfig/network-scripts/backup_`date +'%Y%m%d'`
合計 20
drwxr-xr-x. 2 root root 82 6月 16 21:00 .
drwxr-xr-x. 3 root root 4096 6月 16 20:59 ..
-rw-r--r--. 1 root root 153 6月 16 20:25 ifcfg-ens192
-rw-r--r--. 1 root root 153 6月 12 07:54 ifcfg-ens224
-rw-r--r--. 1 root root 254 9月 12 2016 ifcfg-lo
[root@tspweb01 network-scripts]#
③bonding.confバックアップ
-
bonding.conf
の有無確認
bonding.conf
が存在しないことを確認。
[root@tspweb01 network-scripts]# ls -l /etc/modprobe.d/bonding.conf;date
ls: /etc/modprobe.d/bonding.conf にアクセスできません: そのようなファイルやディ レクトリはありません
2020年 6月 16日 火曜日 20:30:30 JST
[root@tspweb01 network-scripts]#
※存在する場合はファイルバックアップ実施
cp -p /etc/modprobe.d/bonding.conf /etc/modprobe.d/bonding.conf_`date +'%Y%m%d'`
ls -la /etc/modprobe.d/bonding.conf_`date +'%Y%m%d'`
設定手順
①bonding.conf作成・確認
-
bonding.conf
作成
vi /etc/modprobe.d/bonding.conf
設定内容
alias bond0 bonding
設定後、wq!
にて保存。
-
bonding.conf
内容確認
設定した内容になっていること。
[root@tspweb01 modprobe.d]# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
[root@tspweb01 modprobe.d]#
②NIC設定
- ens192
vi /etc/sysconfig/network-scripts/ifcfg-ens192
内容
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME=ens192
HWADDR=00:0c:29:ee:2e:ba
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes
- ens224
vi /etc/sysconfig/network-scripts/ifcfg-ens224
内容
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME=ens224
HWADDR=00:0c:29:ee:2e:c4
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes
【設定内容説明】
項目 | 説明 |
---|---|
TYPE | 種類 |
BOOTPROTO | DHCPを使用する場合は"dhcp"、静的に設定する場合は"static"もしくは"none" |
IPV6INIT | IPv6設定実施の有無 |
NAME | NICの名前 |
HWADDR | NICのMACアドレス |
DEVICE | NICのデバイス名 |
ONBOOT | OS起動時にNICを起動させるか |
MASTER | 設定する論理インタフェース名(今回はbond0 ) |
SLAVE | SLAVEとしての使用有無 |
③NIC設定確認
- ifcfg-ens192
[root@tspweb01 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME=ens192
HWADDR=00:0c:29:ee:2e:ba
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@tspweb01 network-scripts]#
- ifcfg-ens224
[root@tspweb01 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME=ens224
HWADDR=00:0c:29:ee:2e:c4
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@tspweb01 network-scripts]#
④bonding設定
vi /etc/sysconfig/network-scripts/ifcfg-bond0
内容
BOOTPROTO=none
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
IPADDR=192.168.0.41
PREFIX=24
GATEWAY=192.168.0.1
BONDING_OPTS="mode=1 miimon=100 primary=ens192 primary_reselect=1"
【BONDING_OPTS説明】
BONDING_OPTS="mode=1 miimon=100"
項目 | 設定値 | 説明 |
---|---|---|
mode | 1 | Active-backupモード |
miimon | 100 | 0.1秒間隔でBondingの状態を確認 (1000msec = 1秒) |
⑤bonding設定確認
[root@tspweb01 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
BOOTPROTO=none
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
IPADDR=192.168.0.41
PREFIX=24
GATEWAY=192.168.0.1
BONDING_OPTS="mode=1 miimon=100 primary=ens192 primary_reselect=1"
[root@tspweb01 network-scripts]#
⑥networkサービス再起動
systemctl restart network
設定後確認
①IP情報を確認
bond0
が存在することを確認。
[root@tspweb01 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:0c:29:ee:2e:ba brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:0c:29:ee:2e:ba brd ff:ff:ff:ff:ff:ff
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:ee:2e:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.0.45/24 brd 192.168.0.255 scope global ens256
valid_lft forever preferred_lft forever
inet6 2404:7a80:91a1:4d00:20c:29ff:feee:2ece/64 scope global tentative mngtmpaddr dynamic
valid_lft 2592000sec preferred_lft 604800sec
inet6 fe80::20c:29ff:feee:2ece/64 scope link tentative
valid_lft forever preferred_lft forever
7: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ee:2e:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.0.41/24 brd 192.168.0.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 2404:7a80:91a1:4d00:20c:29ff:feee:2eba/64 scope global tentative mngtmpaddr dynamic
valid_lft 2592000sec preferred_lft 604800sec
inet6 fe80::20c:29ff:feee:2eba/64 scope link
valid_lft forever preferred_lft forever
[root@tspweb01 network-scripts]#
②bonding状態確認
ens192
とens224
でbondingが組まれていること。
[root@tspweb01 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens192 (primary_reselect better)
Currently Active Slave: ens192
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ee:2e:ba
Slave queue ID: 0
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ee:2e:c4
Slave queue ID: 0
[root@tspweb01 network-scripts]#
③TeraTermにてSSH確認
sshできること。
ens192(active)
を落としてみる
構成図
手順
①ens192
を落とす
[root@tspweb01 ~]# ifdown ens192
デバイス 'ens192' が正常に切断されました。
[root@tspweb01 ~]#
③ens224
に切り替わっていることを確認
[root@tspweb01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
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
Permanent HW addr: 00:0c:29:ee:2e:c4
Slave queue ID: 0
[root@tspweb01 ~]#
参考
ボンディングとは
ボンディングとは - IT用語辞典 e-Words
Linux(CentOS8/RHEL8)のBondingのmodeと設定確認方法,スイッチのLink Aggregation設定との組合せ
CentOS 7でBondingを行う