반응형
[Linux] centos/rhel 7 bonding 설정
Bonding mode 종류
0 : Round-Robin | 설정되어 있는 인터페이스의 첫번째 슬레이브부터 마지막 슬레이브까지 순차적으로 전송한다. 부하분산 및 failover기능 제공한다. | active-active |
1 : Active-Backup | bond인터페이스 중 하나만 활성화 되고 다른 인터체이스는 standby mode로 동작하고 있다가 active인 인터페이스가 fail이 될 경우 standby 로 동작하는 인터페이스가 active로 활성화 된다 |
* active-standby * 주로 많이 사용 |
2 : Balance-XOR | Mode 0과 비슷하지만 xor연산을 이용한 목적지 Mac과 근원지 Mac을 이용한 분배 [(출발지 MAC 주소와 도착지 MAC 주소의 XOR) modula 슬레이브 1개]에 기초하여 전송합니다. 이것은 도착지 MAC 주소에 대해서 동일한 슬레이브를 선택하게 된다. 이 모드는 부하분산과 장애감지를 제공합니다. |
|
3 : Broadcast | 2개의 NIC에 어떤 규칙 없이 데이터 통신 모든 슬레이브 인터페이스에 모든 것을 전송합니다. |
|
4 : 802.3ad | switch에 aggregation 그룹생성이 필요함. IEEE 802.3ad dynamic link aggregation정책을 설정하며 전송과 받는 것은 active aggregator 안에서 모든 slaves 위에서 됩니다. |
*link aggregation *스위치 설정 필요 * 대역폭을 늘리고자 할 경우 사용 |
먼저 시스템내에 bonding 모듈이 적재되어 있는지 확인한다.
적재되어 있지 않을 경우 moprobe 명령어를 통해 적재한다.
[root@cronus ~]# lsmod | grep "bonding" ### 모듈에 bonding이 로딩되어 있는지 확인한다. [root@cronus ~]# modprobe --first-time bonding ### 로딩이 되어 있지 않는다면 로딩한다. [root@cronus ~]# lsmod | grep "bonding" ### 로딩 여부 확인 bonding 152656 0
Bond interface를 위한 bond config 파일 생성한다. 여기서는 bond1로 생성한다.
[root@cronus network-scripts]# cat << EOF >>/etc/sysconfig/network-scripts/ifcfg-bond1 > DEVICE=bond1 > NAME=bond1 > TYPE=Bond > IPADDR=192.168.200.11 > NETMASK=255.255.255.0 > ONBOOT=yes > BOOTPROTO=none > BONDING_OPTS="mode=1 miimon=100" > EOF [root@cronus network-scripts]# [root@cronus network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-bond1 DEVICE=bond1 NAME=bond1 TYPE=Bond IPADDR=192.168.200.11 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=1 miimon=100"
Bond로 묶을 interface를 slave설정을 한다.
[root@cronus network-scripts]# cat << EOF >> ifcfg-em2 > DEVICE=em2 > NAME=em2 > TYPE=Ethernet > BOOTPROTO=none > ONBOOT=yes > MASTER=bond1 > SLAVE=yes > EOF [root@cronus network-scripts]# cat << EOF >> ifcfg-p5p3 DEVICE=p5p3 NAME=p5p3 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond1 SLAVE=yes EOF
네트워크 매니저가 활성화 되어 있는지 확인하고 활성화 되어 있을 경우 비활성화 한다.
[root@cronus 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 수 2019-06-19 14:10:18 KST; 2h 0min ago Docs: man:NetworkManager(8) Main PID: 9166 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─9166 /usr/sbin/NetworkManager --no-daemon 6월 19 14:31:33 localhost.localdomain NetworkManager[9166]: [1560922293.1952] device (em1): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed') 6월 19 14:31:33 localhost.localdomain NetworkManager[9166]: [1560922293.1967] device (em1): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed') 6월 19 14:31:33 localhost.localdomain NetworkManager[9166]: [1560922293.1969] device (em1): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed') 6월 19 14:31:33 localhost.localdomain NetworkManager[9166]: [1560922293.1990] device (em1): Activation: successful, device activated. 6월 19 14:33:33 localhost.localdomain NetworkManager[9166]: [1560922413.4525] device (em1): state change: activated -> deactivating (reason 'user-requested', sys-iface-state: 'managed') 6월 19 14:33:33 localhost.localdomain NetworkManager[9166]: [1560922413.4541] audit: op="device-disconnect" interface="em1" ifindex=2 pid=12169 uid=0 result="success" 6월 19 14:33:33 localhost.localdomain NetworkManager[9166]: [1560922413.4542] device (em1): state change: deactivating -> disconnected (reason 'user-requested', sys-iface-state: 'managed') 6월 19 15:25:29 cronus NetworkManager[9166]: [1560925529.6879] hostname: hostname changed from "localhost.localdomain" to "cronus" 6월 19 15:25:29 cronus NetworkManager[9166]: [1560925529.6881] policy: set-hostname: set hostname to 'cronus' (from system configuration) 6월 19 15:45:35 cronus NetworkManager[9166]: [1560926735.6070] manager: (bond0): new Bond device (/org/freedesktop/NetworkManager/Devices/10) [root@cronus network-scripts]# systemctl stop NetworkManager [root@cronus network-scripts]# systemctl disable NetworkManager Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service. Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
네트워크를 재시작 한다.
[root@cronus network-scripts]# systemctl restart network
bonding 동작 상태를 확인한다.
[root@cronus ~]# cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: em2 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: em2 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 80:18:44:eb:39:85 Slave queue ID: 0 Slave Interface: p5p3 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0a:f7:cb:ed:8a Slave queue ID: 0
반응형