인생사는 이야기

[Linux]리눅스 본딩 설정(Bonding) 본문

IT/Linux

[Linux]리눅스 본딩 설정(Bonding)

채율파파 2014. 12. 22. 15:52
반응형

Linux 본딩 설정하기


본딩이란?한대의 서버에 여러개의 랜카드를 이용하여 대역폭 또는 예비 회선으로 사용할 수 있도록 하는 전송 속도의 분배및 대비책으로 사용하기 위한 기술입니다. 윈도우에서는 티밍(teaming)이라고 불리우기도 하는 기술입니다.




Bonding 종류


  • Mode 0 (balance-rr) balance-round robine ( 2개의 NIC을 순차적으로 분배 + Fault Tolerance) 회선이 2회선일 경우 트래픽을 같이 사용할 수 있어 대역폭을 분산시키는데 효율적입니다. [ A nic -> B nic -> A nic -> B nic 순] 으로 패킷을 분산 시키는 방법입니다. 또한, 장애허용으로 인하여, 한쪽 네트워크에 단절이 오더라도 이를 보안하는 기능이 존재 합니다.
  • Mode 1 (active-backup) 일반 기업들이 많이 쓰고, 흔히들 말하는 네트워크 이중화에 대한 부분으로 사용되어집니다. 실제 사용시에는 2개의 백본에 2개의 NIC에 연결이 되며, 활성화 되어있는 NIC에 문제 발생시 예비 NIC으로 이첩시키는 기능을 합니다. 보통 IDC같은 곳에서는 이중화 보다는 같은 네트워크 스위치에 2회선으로 물려 사용하기도 합니다. 이 모드도 장애허용에 대하여 지원됩니다.
  • Mode 2 (balance-xor) XOR 방식에 따라 패킷을 전송합니다. (Source MAC Address가 Target MAC Address로 비트연산을 하여 ) 모드 0과 비슷하지만 근원지 MAC에서 목적지 MAC으로 비트 연산을 통하여 분배합니다. 보통 방화벽과 비슷한 방식이기는 하나 들어오는 리퀘스트에 MAC을 연결하는 방식입니다.
  • Mode 3 (broadcast) 모든 NIC에 동일한 패킷을 brocast로 발송합니다.
  • Mode 4 (802.3.ad) Dynamic Link Aggregation 정책으로 동작됩니다. speed와 duplex 설정을 공유하는 aggregation groups를 스위칭 장비에서 설정하여야 합니다. 단, 802.3.ad를 지원하는 스위치에서만 사용이 가능하며, 연결대수에 상관없이 그룹화에 따라 회선의 정책이 변경되어 무단절 인터넷 연결을 가능하게 만드는 방식입니다.
  • Mode 5 (balance-tlb) 로드 발랜싱 정책으로 밖으로 내보내지는 트래픽은 분산되어 송출되며, 들어오는 트래픽은 Active되어있는 NIC으로 패킷을 받습니다. 만일 Active 되어있는 NIC의 문제로 패킷을 받지 못하면 또다른 NIC이 실패한 NIC의 MAC Address를 물려받게 됩니다.
  • Mode 6 (balance-alb) 들어오는 트래픽을 분산 처리하여 받습니다. bond에서 트래픽이 많이 존재하지 않는 NIC으로 분산됩니다. 들어오는 로드 발렌싱은 ARP negotiation을 통해서 수행됩니다.




Bonding 하기


# /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

IPADDR=192.168.0.100

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

BONDING_OPTS="mode=1 miimon=100"

ONBOOT=yes                                                                            

BOOTPROTO=none

USERCTL=no

NM_CONTROLLED=no


# /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

MASTER=bond0

SLAVE=yes

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

NM_CONTROLLED=no


# /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

MASTER=bond0

SLAVE=yes

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

NM_CONTROLLED=no


[ 옵션 설명 ]

ONBOOT=yes                                   //  부팅시 자동으로 활성화

BOOTPROTO=none                           //  bootp나 dhcp를 사용하지 않음 (static으로 구성)

USERCTL=no                                    //  일반 유저가 컨트롤 할 수 없음 (root 권한 필요)

NM_CONTROLLED=no                       //  NetworkManager가 컨트롤 할 수 없음

BONDING_OPTS="mode=1 miimon=100"  //  본딩 모드를 Active-Backup으로 설정하고 MII 링크 모니터링 주기를 100ms (0.1초) 로 설정

[ 본딩 설정 확인 명령어 ]
# cat /proc/net/bonding/bond0



RHEL5 버전대에서 발생했던 커널과 NIC 드라이버 관련 버그였는데요,

/etc/modprobe.conf 내용에 options "NIC 드라이버 모듈명" disable_msi=1을 추가하여

MSI, MSI-X 기능을 해제함으로써 해결이 가능합니다.


예) options bnx2 disable_msi=1



반응형
Comments