2
2

More than 3 years have passed since last update.

【CentOS7.3】2つのネットワークインタフェースでbonding(active-backup)をやってみた。

Last updated at Posted at 2020-06-16

はじめに

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

nic.JPG

ざっくりとした構成

bonding.JPG

備考

  • Slave
    Bondingに参加する物理インタフェース

  • Master
    Bondingを司る論理インタフェース

今回構成するActive-backup構成

active.JPG

構築手順

事前確認

①ネットワーク確認

  • ネットワークインタフェース

ens192ens224が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状態確認

ens192ens224で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できること。

ssh.JPG

ens192(active)を落としてみる

構成図

standby.JPG

手順

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を行う

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2