Profile picture

[Linux] 본딩(bonding) 이해하기

JaehyoJJAng2023년 07월 09일

◾️ Bonding

image
'Bonding'은 송수신 데이터를 처리할 수 있는 능력을 가진 네트워크 장비에서 해당 장비가 가지고 있는 물리적인 NIC(Network Interface Card)를 논리적으로 묶어
대역폭을 늘리거나 가용성을 위해 사용하는 방법이다.

다른 말로는 'Etherchannel' 이라고도 부르는데
표준어로는 'Link Aggregation' 이라고 한다.

또한 몇몇 본딩 모드는 스위치의 Etherchannel 기능이 지원되어야 한다.
(Etherchannel이 off 되어있거나, 지원하지 않는다면 몇몇 모드는 사용이 불가능하거나 기능이 떨어짐)


▪️ Bonding 종류

mode 0 : Round-Robin

  • 첫번째로 가능한 슬레이브부터 마지막 슬레이브까지 순차적으로 전송함. 이 모드는 부하분산과 failover를 제공한다.
  • active-active, 이론상 슬레이브 수 만큼의 배수대로 대역폭 확장이 가능하다. 스위치에서 지원한다면 hashing 없이 로드 밸런싱이 가능
    • 예를 들어, 2개의 NIC가 장착 중이라면 2개의 NIC에 순차적으로 패킷을 분배한다.
    • A nic -> B nic -> A nic -> B nic 순으로 패킷을 분산하고 한쪽 네트워크의 연결이 끊어지더라도 장애 허용으로 인하여 이를 보완하는 기능이 존재한다.

mode 1 : Active-Backup

  • bond에서 하나의 슬레이브만 활성화된다. 다른 슬레이브는 standby 상태로 대기하다 활성화된 슬레이브가 fail이 된 경우 standby 슬레이브가 활성화되며 fail된 슬레이브는 standby로 넘어가게 된다.
  • 대역폭의 경우 활성화된 슬레이브의 대역폭을 갖는다.
    • primary를 설정하지 않으면 failback이 되지 않음.
  • 실제 사용시에는 2개의 스위치나 백본에 2개의 NIC이 연결되며, IDC 같은 곳에서는 하나의 스위치에 2회선을 물려 사용하기도 한다.

mode 2 : balance-xor (load balancing + failover)

  • mode 0과 비슷하지만 xor 연산을 사용하여 목적지 MAC과 근원지 MAC을 이용하여 분배함.
    • (출발지 mac XOR 목적지 mac) modula 슬레이브 개수
    • fault tolerance와 load balancing을 위한 XOR으로 설정

mode 3 : broadcast (failover)

  • 모든 슬레이브 인터페이스로 전송
  • 하나의 슬레이브만큼 대역폭을 갖는다
  • 특별한 경우에서만 사용
    • 랜카드가 절대로 죽어서는 안되고 패킷이 절대로 손실되면 안되는 서버에서 사용함.
    • 스위치에서 Etherchannle이 지원되지 않아도 상관 없음.

mode 4 / LACP : 802.3ad (Link Aggregation)

  • Dynamic Link Aggregation 정책으로 동작됨.
  • 동일한 speed와 duplex 설정을 공유하는 aggregation group을 스위치에서 생성해야 함.
    • 스위치에서 802.3ad를 지원해야 생성이 가능함.
  • 송/수신은 active aggregator 안에서 모든 슬레이브에서 수행됨.
  • 이론상 슬레이브 수 만큼의 배수대로 대역폭 확장 가능
  • 그룹화에 따라 회선 정책이 변경되며 무단절 네트워크 연결을 가능하게 만드는 방식임.

mode 5 : balance-tlb

  • 스위치에서 Etherchannel이 지원되지 않아도 상관 없음.
  • 이 모드는 특별한 지원이 OS 자체적으로 구동 가능한 방법으로 각 링크의 현재 로드에 따라 보내는 데이터가 분산되어 전송됨.
  • 데이터의 수신은 슬레이브쪽으로만 가게되고, 해당 슬레이브가 fail시 다른 슬레이브가 MAC 주소를 넘겨받아 수신함.
  • 데이터를 보낼 때 드라이버가 MAC address를 링크의 것으로 바꿔 보내지만 수신 시에는 그냥 남겨둠.
  • 송신 패킷만 로드밸런싱하며 동일한 스위치에 NIC들이 연결되어 있어야 함.

mode 6 : balance-alb

  • mode 4를 사용하고 싶으나 스위치가 802.3ad를 지원하지 않는 상황이라면 해당 모드(mode 6)를 사용하면 된다.
  • 스위치에서 Etherchannel이 지원되지 않아도 상관 없음.
  • 이 모드는 mode 5와 같이 동작하지만 데이터 수신 시 load-balancing 및 두 개의 링크에서 ARP negotiation을 통하여 동작함.
  • 송수신 패킷을 로드밸런싱하며 동일한 스위치에 NIC들이 연결되어 있어야 함.

Loading script...