목차

LACP(802.3ad) 구성시 Hash 정책 고려

Bond (Mode 4 / 802.3ad) 부하분산 해시 정책 (xmit_hash_policy)

리눅스 본딩(Bonding Mode 4)에서 LACP 묶음 채널로 트래픽을 보낼 때 어떤 인터페이스로 패킷을 내보낼지 결정하는 알고리즘입니다.

layer2 (기본값)

기준: 출발지/목적지 MAC 주소

특징: 동일한 라우터(Gateway)를 거쳐 나가는 대외 트래픽은 목적지 MAC이 라우터 MAC으로 동일해지므로 특정 물리 포트 1개로만 트래픽이 몰리는 단점이 있습니다.

layer2+3

기준: 출발지/목적지 MAC 주소 + IP 주소

특징: L3 네트워크(서로 다른 서브넷) 간 통신 시 트래픽 분산 효율이 향상됩니다.

layer3+4

기준: 출발지/목적지 IP 주소 + TCP/UDP 포트 번호

특징: 동일한 두 서버 간 통신이라도 세션(포트)별로 트래픽을 여러 포트에 균등하게 분산할 수 있어 성능상 가장 효율적입니다. (단, 물리 스위치에서도 해당 알고리즘 지원 여부 확인 필요)

결론

당연히 스위치장비에서 지원한다면 layer3+4로 구성하는게 트래픽 분산에 매우 좋다.
layer2layer2+3만 설정 한다면 동일 네트워크 또는 P2P(1:1) 통신에는 전혀 분산이 되지 않으므로 효과가 없다.

설정 확인방법

서버쪽 설정은 리눅스에서 쉽게 확인 가능하다.

root@idpp-pve02:~# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v7.0.14-12-pve

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)                    <<<- 이부분에 해시 정책을 확인한다.
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
...

하지만 이것은 서버쪽 설정이고 스위치에서 지원하는지 여부는 확인이 불가능하다.
실제 대역폭 테스트를 해보면 알 수 있다.
iperf3로 병렬 테스트를 해보면 된다.

받는쪽

$ iperf3 -s

보내는쪽

$ iperf3 -c <받는쪽 서버IP> -P 8

root@idpp-pve02:~# iperf3 -c 192.168.0.33 -P 8
Connecting to host 192.168.0.33, port 5201
[  5] local 192.168.0.52 port 57324 connected to 192.168.0.33 port 5201
[  7] local 192.168.0.52 port 57332 connected to 192.168.0.33 port 5201
[  9] local 192.168.0.52 port 57342 connected to 192.168.0.33 port 5201
[ 11] local 192.168.0.52 port 57344 connected to 192.168.0.33 port 5201
[ 13] local 192.168.0.52 port 57360 connected to 192.168.0.33 port 5201
[ 15] local 192.168.0.52 port 57370 connected to 192.168.0.33 port 5201
[ 17] local 192.168.0.52 port 57378 connected to 192.168.0.33 port 5201
[ 19] local 192.168.0.52 port 57394 connected to 192.168.0.33 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  16.0 MBytes   134 Mbits/sec   45    222 KBytes       
[  7]   0.00-1.00   sec  15.6 MBytes   131 Mbits/sec   46    218 KBytes       
[  9]   0.00-1.00   sec  15.6 MBytes   131 Mbits/sec   46    222 KBytes       
[ 11]   0.00-1.00   sec  15.0 MBytes   126 Mbits/sec   45    197 KBytes       
[ 13]   0.00-1.00   sec  15.4 MBytes   129 Mbits/sec   46    229 KBytes       
[ 15]   0.00-1.00   sec  15.0 MBytes   126 Mbits/sec   45    208 KBytes       
[ 17]   0.00-1.00   sec  14.6 MBytes   123 Mbits/sec   45    175 KBytes       
[ 19]   0.00-1.00   sec  14.8 MBytes   124 Mbits/sec   90    146 KBytes       
[SUM]   0.00-1.00   sec   122 MBytes  1.02 Gbits/sec  408             
- - - - - - - - - - - - - - - - - - - - - - - - -
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   142 MBytes   119 Mbits/sec  315            sender
[  5]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[  7]   0.00-10.00  sec   141 MBytes   118 Mbits/sec  299            sender
[  7]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[  9]   0.00-10.00  sec   141 MBytes   119 Mbits/sec  454            sender
[  9]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[ 11]   0.00-10.00  sec   141 MBytes   119 Mbits/sec  581            sender
[ 11]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[ 13]   0.00-10.00  sec   143 MBytes   120 Mbits/sec  242            sender
[ 13]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[ 15]   0.00-10.00  sec   141 MBytes   118 Mbits/sec  333            sender
[ 15]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[ 17]   0.00-10.00  sec   141 MBytes   118 Mbits/sec  383            sender
[ 17]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[ 19]   0.00-10.00  sec   141 MBytes   118 Mbits/sec  352            sender
[ 19]   0.00-10.04  sec   140 MBytes   117 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  1.11 GBytes   949 Mbits/sec  2959             sender
[SUM]   0.00-10.04  sec  1.09 GBytes   936 Mbits/sec                  receiver

iperf Done.

이렇게 체크했을때 대역폭이 확장되어 나와야 한다.