[LINUX] bonding 구성
------------------------------------------------------------------------------------------------------------------------
Study | RHEL7 | LAB | Created : 21 Apr 2016 | Last Modified : 21 Apr 2016
------------------------------------------------------------------------------------------------------------------------
RHEL7 에서도 기존과 같이 본딩 구성이 가능하다.
하지만, Vitrual Network을 설정하여 Bonding을 하는 것보다 ip addr 명령어로 IP만 추가하는 것이 더 간단 할 수도 있다
Bonding
- 여러개의 ethernet카드를 하나로 합쳐서 사용
- Windows의 Teaming 과 동일한 개념
- 기본 round-robbin 방식으로 구성 (A-A, 수신은 두배지만, 나가는 것은 번갈아가며)
- Active Standby 구성 가능
- ifcfg-bond0 에 IP가 들어가 있어야 한다.
- bond0 는 커널의 모듈로 동작을 한다.
. 커널이 인식을 할 수 있도록 설정 해 줘야함
- 반드시 NetworkManager.service 를 stop 후 설정하여야 한다.
구성
1. 2개의 Network 확인
[root@vm14 바탕화면]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
inet 59.29.224.144/24 brd 59.29.224.255 scope global dynamic eth0
valid_lft 777284sec preferred_lft 777284sec
inet6 fe80::5054:ff:fe86:6f25/64 scope link
valid_lft forever preferred_lft forever
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:07:e3:96 brd ff:ff:ff:ff:ff:ff
2. NetworkManager disable
[root@vm14 바탕화면]# systemctl stop NetworkManager.service
[root@vm14 바탕화면]# systemctl disable NetworkManager.service
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
3. 네트워크 파일 수정
[root@vm14 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=dhcp
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
=> mode값 0: round-robbin , 1 : active-backup , default : round-robbin
miimon : active-backup인 환경에서 active 노드의 상태를 체크 하는 인터벌
[root@vm14 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@vm14 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
4. 커널모듈 확인 후 설정
- 커널 모듈의 경로
[root@vm14 3.10.0-229.el7.x86_64]# pwd
/lib/modules/3.10.0-229.el7.x86_64
[root@vm14 3.10.0-229.el7.x86_64]# cat modules.dep | grep bondi
kernel/drivers/net/bonding/bonding.ko:
- 모듈 등록
[root@vm14 network-scripts]# cd /etc/modprobe.d
[root@vm14 modprobe.d]# cat > bond.conf
alias bond0 bonding
[root@vm14 modprobe.d]# cat bond.conf
alias bond0 bonding
5. network 재시작
[root@vm14 modprobe.d]# systemctl stop network
[root@vm14 modprobe.d]# systemctl start network
* NetworkManager.service를 올리면 안된다!!!! 지워버리는게 나음
6. 확인
- bond0에 IP등록, master / slave 내용 확인함
[root@vm14 modprobe.d]# ip a
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
inet 59.29.224.144/24 brd 59.29.224.255 scope global dynamic bond0
valid_lft 777581sec preferred_lft 777581sec
inet6 fe80::5054:ff:fe86:6f25/64 scope link
valid_lft forever preferred_lft forever
- Active 인 것은 어떻게 확인하지?
[root@vm14 modprobe.d]# cd /proc/net
[root@vm14 net]# cd bonding
[root@vm14 bonding]# ls -lrt
합계 0
-r--r--r--. 1 root root 0 4월 21 15:02 bond0
[root@vm14 bonding]# pwd
/proc/net/bonding
[root@vm14 bonding]# cat bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:86:6f:25
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:07:e3:96
Slave queue ID: 0
- 이중화 확인
. default로 롤백은 되지 않음