IT/Linux

[Network] bonding 설정

착한아줌마 2017. 7. 27. 16:46
반응형


** bonding: 
네트워크 인터페이스를 묶어 하나의 channel로 사용하는 것

-> 대역폭을 늘려 사용 할 수도 있고, 인터페이스 이중화로 안정성을 높일 수도 있다




Linux에서는 bonding이라고 하고, Windows에서는 teaming이라고 하는 것 같다





- bonding 설정 하는 법

-> eth2, eth3을 bond0로 묶어서 설정할 것이다


1. bonding 묶을 인터페이스들 설정

우선/etc/sysconfig/network-scripts 경로에 있는 인터페이스 파일내용을 수정해야한다


아래 명령어로 인터페이스 파일들이 있는 디렉토리로 이동

# cd /etc/sysconfig/network-scripts/


bonding 설정을 원하는 인터페이스 파일에 아래의 그림처럼 bonding 설정 내용을 추가한다.

(## bonding conf ##는 주석이므로 굳이 따라쓰지 않아도 됨 그 아래 두줄이 중요)

# vi ifcfg-eth2

# vi ifcfg-eth3




이 후 새로 생성할 bonding 인터페이스 파일을 만들어 준다

# vi ifcfg-bond0



bonding 모듈을 올리면서 넣을 설정을 해주어야한다

아래 그림과 같이 파일을 생성한다

# vi /etc/modprobe.d/bonding.conf



파일 내용중 primary=eth2는 bonding mode를 active-backup(1)으로 했을시

우선적으로 active되는 인터페이스를 정하는 옵션이다



** Bonding Mode

  0(Round Robin):

   bonding 인터페이스에 묶인 포트(SLAVE)에 순차적으로 한번씩 사용하여 데이터 전송

  1(Active-Backup):

   bonding 인터페이스에 묶인 포트(SLAVE) 중 한 포트씩 우선 사용하는데 장애가 발생하면 다른 포트 사용

  2(Balance-XOR): 

   XOR연산하여 MAC기반으로 포트를 정해서 데이터 전송

  3(Broadcast): 

   bonding 인터페이스에 묶인 포트(SLAVE)에 모두 데이터 전송

  4(802.3ad(LACP)): 

   IEEE 802.3ad 프로토콜에 따라 포트를 선정하여 데이터 전송

  5(Balance-TLB): 

   송신패킷 로드밸런싱, 송신시 부하가 낮은 포트(SLAVE)를 이용하여 데이터 전송

  6(Balance-ALB): 

   송수신패킷 로드밸런싱, 송수신시 부하가 낮은 포트(SLAVE)를 이용하여 데이터 전송







설정을 다했으니 bonding 구성한 인터페이스를 활성화 해본다

bonding 모듈을 kernel에 올려주어야한다

아래 명령어를 사용하여 모듈 장착! 하고 확인까지 해본다

# modprobe bonding

# lsmod | grep bonding




마지막으로 network설정을 다시 적용시켜 준다

# service network restart

# ifconfig



캡처를 보면 새로 만든 인터페이스인 bond0에

아까전 만들어놓은 설정(ip)가 잘 들어가 있음을 확인할 수 있다

eth2와 eth3는 SLAVE 상태인 것도 확인한다


실제 bonding 구성된 자세한 상태 확인은 아래 명령어로 가능하다

# cat /proc/net/bonding/bond0


(제일 마지막 bond0에는 실제로 만들었던 bonding 인터페이스 이름을 넣으면 된다)


bonding 모듈 버전

bonding mode

active slave

primary 표시

모든 slave 상태

등이 나온다