CentOS 기준으로 작성하였습니다.
네트워크인터페이스카드(NIC)를 이중화 함으로써 장애를 예방할 수 있습니다.
Bonding mode (본딩모드)
bonding 의 6가지 모드
mode | 명칭 | 설명 |
---|---|---|
0 | balance-rr | ・ load balancing (round-robin) ・모든 슬레이브 장치(NIC)를 차례(라운드로빈)로 사용 패킷을 보냅니다. ・ 전송만 부하분산 (로드밸런싱) ・ 디폴트값입니다. |
1 | active-backup | ・ fault-tolerance (active-backup) ・ 하나의 NIC만 활성화 인터페이스로 보냅니다. ・ 송수신 둘다 부하 분산이 없습니다. ・ 평상시에는 하나의 NIC으로만 통신하여 통신장애가 발생하면 전환모드입니다. |
2 | balance-xor | ・ load balancing (xor) ・ 송신원/대상의 MAC어드레스를 바탕으로 전송 슬레이브 디바이스를 결정해 패킷을 보냅니다. ・ 송신패킷만 부하분산(로드밸런싱) |
3 | broadcast | ・ fault-tolerance (broadcast) ・ 모든 슬레이브에 동일한 패킷을 보냅니다. ・ 일반 용도로는 사용하지 않음. |
4 | 802.3ad | ・ IEEE 802.3ad Dynamic link aggregation ・ IEEE 802.3ad(LACP)을 기준한 링크 어그리게이션(Link aggregation:여러개의 물리적인 회선을 가상적으로 묶어 마치 하나의 회선인것처럼 처리하는 기술로 예를 들어 1Gbps회선 5개를 가상으로 묶어 5Gbps의 가상 통신대역을 사용할수 있습니다.) ・연결하는 스위치가 IEEE 802.3ad에 대응할 필요가 있습니다. |
5 | balance-tlb | ・ transmit load balancing ・ 각 슬레이브의 부하에 따라 전송 슬레이브를 분산합니다. 수신은 현재 슬레이브에 의해 행해집니다. ・ 송신패킷만 부하분산(로드밸런싱) |
6 | balance-alb | ・ adaptive load balancing ・ balance-tlb의 기능뿐만 아니라 송수신도 부하분산 (로드밸런싱) |
1. LAN card 추가
bonding 구성하기 위해서는 최소 2개의 네트워크 인터페이스 카드(NIC)가 필요합니다.
실적용이 아닌 Test 목적의 실습으로 하시려면 vmware와 같은 가상머신을 활용하시면 됩니다.
2. /etc/sysconfig/network 내용추가
/etc/sysconfig/network
에gatewaydev
를 추가합니다.
$ vi /etc/sysconfig/network
1
2
3
NETWORKING=yes
HOSTNAME=myserver
GATEWAYDEV=bond0
3. bond 파일 생성
bond 파일을 만들어 줍니다.
ip 는 현재 네트워크구성에 맞게 설정해 주어야 합니다.
$ vi /etc/sysconfig/network-scripts/ifcfg-bond0
1
2
3
4
5
6
7
8
9
10
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
TYPE=Ethernet
BONDING_OPTS="mode=1 miimon=100 use_carrier=0 primary=eth1"
4. eth1, eth2 설정 파일 생성
$ vi /etc/sysconfig/network-scripts/ifcfg-eth1
1
2
3
4
5
6
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
$ vi /etc/sysconfig/network-scripts/ifcfg-eth2
1
2
3
4
5
6
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
5. modprobe.conf 파일 생성 후 적용
mode=1 (active-backup)으로 구성을 해보겠습니다.
miimon 옵션은 링크 감시 설정모드로 ms 단위를 사용하며 디폴트 값이 0(사용안함)입니다.
즉, 0으로 설정하면 failover가 비활성화되는 부분으로 사용하며,
기본적으로 리눅스에서는 100ms 로 사용합니다.
$ vi /etc/modprobe.d/bonding.conf
1
2
alias bond0 bonding
options bond0 miimon=100 mode=1
적용 및 확인
$ modprobe bonding
$ lsmod | grep bonding
6. 네트워크 재시작
$ service network restart
7. 동작 확인
$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 6
Permanent HW addr: 30:67:6c:f0:16:53
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 4
Permanent HW addr: 86:f2:c3:0b:e5:a7
Slave queue ID: 0
PREVIOUSIPTABLES 옵션 정리