1. 'per-flow' load balancing warning
- Link Aggregation 사용 시, 하나의 Physical Interface의 Bandwidth가 Full이 되면 나머지 트래픽이 다른 Interface로 Forwarding 되는지, Drop 되는지 Vendor마다 확인이 필요
- Juniper, Nokia, Cisco는 다른 Interface로 Forwarding 되지 않고 Drop
- Huawei는 다른 Interface로 Forwarding
2. How to calculate load balancing algorithms
1) Load Balancing bit Selection Criteria
- 처음 Link Aggregation을 개발할 때 어떠한 결괏값의 마지막 3개의 bit만 고려하여 Load Balancing을 고려
- 3개의 bit만 고려하여 Load Balancing을 결정하기 때문에 Link Aggregation 당 Physical Interface가 2 or 4 or 8개가 할당되어야 확률적으로 비교적 Load Balancing이 고루고루 발생
2) Why use only 3 bits in load balancing
- Bandwidth를 증설시키려는 목적으로 Link Aggregation을 개발
- Link Aggregation을 개발할 때, 위 그림을 예시로 100Mbps 회선을 800Mbps까지만 Bundling 하면 되고 900Mbps 이상은 1Gbps Link를 사용하면 된다고 판단
- 현재 Load Balancing Alrorithm을 계산할 때, 3개 이상의 bit를 고려하는 장비가 많이 존재
3) Why use 'XOR' logic gate in load balancing
- 확률적으로 Load Balancing이 고루고루 일어날 수 있는 Logic Gate는 XOR 및 XNOR이 있지만, XOR을 선택
- 위 그림의 A, B는 'S-MAC & D-MAC' or 'S-IP & D-IP' or 'S-Port & D-Port' 등에 해당
3. Load balancing hash-mode selection criteria
1) Source MAC or Destination MAC load balancing
- 다른 Network Address로 데이터 전송 시, D-MAC은 Default Gateway로 고정되어 D-MAC을 기준으로 Load Balancing이 불가능
- 다른 Network Address로 데이터 전송 시, S-MAC이 다수이므로 S-MAC을 기준으로 Load Balancing이 가능
- 다른 Network Address에서 데이터 전송 시, D-MAC이 다수이므로 D-MAC을 기준으로 Load Balancing이 가능
2) Source MAC XOR Destination MAC load balancing
- 동일 Network Address로 데이터 전송 시, S-MAC와 D-MAC이 다수 존재할 때 N:N이므로 XOR을 사용
3) Why use IP-based load balancing
- 라우터 간에 라우팅이 발생하면 S-MAC과 D-MAC은 라우터 인터페이스의 MAC Address로 고정되므로 MAC Address를 기준으로 Load Balancing이 불가능
- 즉, 라우팅이 되는 구간에서 MAC Address로는 Load Balancing이 불가능하여 IP Address로 Load Balancing을 진행
4) Source IP or Destination IP load balancing
- S-IP가 다수일 때, S-IP를 기준으로 Load Balancing이 가능
- D-IP가 다수일 때, D-IP를 기준으로 Load Balancing이 가능
5) Source IP XOR Destination IP load balancing
- S-IP와 D-IP가 다수일 때, N:N이므로 XOR을 사용
- 서버의 IP를 정확히 모르거나 IP 계획이 변경될 수 있는 상황에서는 N:N으로 고려하여 Load Balancing을 하는 것을 권장
- IP Address만 고려하여 Load Balancing을 하는 네트워크 망의 IP를 설계할 때, Load Balancing이 가능하도록 사용자가 접속하는 서버의 IP를 따로 수립하는 것을 권장
6) Port Load Balancing
- Client와 Server 간 통신 시, S-Port와 D-Port가 다수일 때 N:N이므로 XOR을 사용
- 일반적으로 Port를 기준으로 Load Balancing 할 때, IP Address와 Port를 모두 고려하여 Load Balancing을 진행
7) Why use Port-based load balancing
- SLB(Server Load Balancing)를 구현할 때, 일반적으로 L4에서 Load Balancing을 하기 위해 L4 장비 간에 Server IP인 R-IP가 아닌 V-IP로 통신
- 외부에서 Server IP를 L4 장비의 V-IP로 인식하기 때문에 S-IP와 D-IP를 하나로 판단하여 IP Address를 기준으로 Load Balancing이 불가능하여 Port를 기준으로 Load Balancing을 진행
8) Load Balancing 구성 예시
- 일반적으로 네트워크 장비에서 Load Balancing Hash-Mode를 각 Link Aggregation마다 정의하는 것이 불가능하고 Global Mode에서 정의 가능
- 단일 네트워크 장비에서 여러 Load Balancing Hash-Mode를 선택해야 할 때, 아래 우선순위를 따라 설정할 것을 권장
- S-Port XOR D-Port > S-Port or D-Port > S-IP XOR D-IP > S-IP or D-IP > S-MAC XOR D-MAC > S-MAC or D-MAC
- L2#1 : S-MAC XOR D-MAC 설정을 권정
- L3#1 : S-IP XOR D-IP 설정을 권장
- L3#2 : S-Port XOR D-Port 설정을 권장
4. Juniper load balancing hash algorithm
1) QFX 10008 IPv4 Hashing Field
Field | LAG | ECMP |
Source MAC | X | X |
Destination MAC | X | X |
EtherType | O | O |
VLAN ID | O | O |
Source IP | O (변경 가능) |
O (변경 가능) |
Destination IP | O (변경 가능) |
O (변경 가능) |
Incoming Port | O (변경 가능) |
O (변경 가능) |
Protocol (for IPv4 Packet) | X | X |
Next Header (for IPv6 Packet) | X | X |
Layer 4 Source Port | O (변경 가능) |
O (변경 가능) |
Layer 4 Destination Port | O | O |
IPv6 Flow Label | O | O |
2. QFX 5100 / EX 4300 IPv4 Hashing Field
Field | LAG | ECMP |
Source MAC | X | X |
Destination MAC | X | X |
EtherType | X | X |
VLAN ID | X (변경 가능) | X (변경 가능) |
Source IP or IPv6 | O (변경 가능) | O (변경 가능) |
Destination IP or IPv6 | O (변경 가능) | O (변경 가능) |
Protocol (IPv4 Only) | O (변경 가능) | O (변경 가능) |
Next Header (IPv6 Only) | O (변경 가능) | O (변경 가능) |
Layer 4 Source Port | O (변경 가능) | O (변경 가능) |
Layer 4 Destination Port | O (변경 가능) | O (변경 가능) |
IPv6 Flow Label | X | X |
3) MX Load Balancing hash algorithm 확인 방법(실장비)
더보기
root@MX480> start shell pfe network fpc0
SMPC platform (1750Mhz Intel(R) Atom(TM) CPU processor, 3168MB memory, 8192KB flash)
SMPC0(MX480 vty)# show jnh lb
Unilist Seed Configured 0x91d1c329 System Mac address fc:96:43:d2:58:00
Hash Key Configuration: 0x000180f200e00000
IIF-V4: No
SPORT-V4: Yes
DPORT-V4: Yes
TOS: No
GTP-TEID-V4: No
L2TP-TUNNEL-SESSION-ID: No
GRE-PAYLOAD: Yes
IIF-V6: No
SPORT-V6: Yes
DPORT-V6: Yes
TRAFFIC_CLASS: No
GTP-TEID-V6: No
FLOW-LABEL-V6: Yes
IIF-MPLS: No
MPLS_PAYLOAD: Yes
ETHER_PW: Yes
MPLS_EXP: No
CW_PRESENT: No
IIF-BRIDGED: No
MAC ADDRESSES: Yes
ETHER_PAYLOAD: Yes
802.1P OUTER: No
Services Hash Key Configuration:
SADDR-V4: No
DADDR-V4: No
IIF-V4: No
SADDR-V6: No
DADDR-V6: No
IIF-V6: No
SRC-PREFIX-LEN: 127
4) QFX Load Balancing hash algorithm 확인 방법(실장비)
더보기
root@QFX5120-48T> show forwarding-options enhanced-hash-key
Slot 0
Current RTAG7 Settings
----------------------
Hash-Mode : layer2-payload
inet Hash Settings
--------------------
inet packet fields
Protocol : Yes
Destination L4 Port : Yes
Source L4 Port : Yes
Destination IPv4 Addr : Yes
Source IPv4 Addr : Yes
Vlan id : No
GTP HASHING INFORMATION:
---------------------------
GTP_HDR_OFFSET_VALUE = 50
GTP_HASHING = 0
inet6 Hash Settings
---------------------
inet6 packet fields
Next Hdr : Yes
Destination L4 Port : Yes
Source L4 Port : Yes
Destination IPv6 Addr : Yes
Source IPv6 Addr : Yes
Vlan id : No
ipv6-flow-label : No
MPLS Hash Settings
--------------------
MPLS packet fields
Source Device : Yes
Source Port : Yes
VXLAN Hash Settings
--------------------
no-inner-payload : No
Symmetric-Hashing Settings
--------------------------------------
inet : No
inet6 : No
Hash-Parameter Settings for ECMP
------------------------------------------------------------
Hash Function = CRC32_LO
Hash offset base = 0
Hash offset = 5
Hash preprocess = 0
Hash-Parameter Settings for LAG
------------------------------------------------------------
Hash Function = CRC32_HI
Hash offset base = 16
Hash offset = 10
Hash preprocess = 0
Fabric Load Balancing Options
------------------------------------------------------------
Load Balancing Method : Enhanced Hash
ECMP DLB Load Balancing Options
------------------------------------------------------------
ECMP DLB : disabled
Inactivity Timer : 0
Hash Region Size : 0 (buckets)
LAG DLB INFO
-------------------
ECMP Resilient Hashing : disabled
5) EX Load Balancing hash algorithm 확인 방법(실장비)
더보기
root@EX3400-24T> show forwarding-options enhanced-hash-key
Slot 0
Current RTAG7 Settings
----------------------
Hash-Mode : layer2-payload
inet Hash Settings
--------------------
inet packet fields
Protocol : Yes
Destination L4 Port : Yes
Source L4 Port : Yes
Destination IPv4 Addr : Yes
Source IPv4 Addr : Yes
Vlan id : No
GTP HASHING INFORMATION:
---------------------------
GTP_HDR_OFFSET_VALUE = 50
GTP_HASHING = 0
inet6 Hash Settings
---------------------
inet6 packet fields
Next Hdr : Yes
Destination L4 Port : Yes
Source L4 Port : Yes
Destination IPv6 Addr : Yes
Source IPv6 Addr : Yes
Vlan id : No
ipv6-flow-label : No
MPLS Hash Settings
--------------------
MPLS packet fields
Source Device : Yes
Source Port : Yes
VXLAN Hash Settings
--------------------
no-inner-payload : No
Symmetric-Hashing Settings
--------------------------------------
inet : No
inet6 : No
Hash-Parameter Settings for ECMP
------------------------------------------------------------
Hash Function = CRC32_HI
Hash offset base = 0
Hash offset = 5
Hash preprocess = 1
Hash-Parameter Settings for LAG
------------------------------------------------------------
Hash Function = CRC32_LO
Hash offset base = 16
Hash offset = 5
Hash preprocess = 1
Fabric Load Balancing Options
------------------------------------------------------------
Load Balancing Method : Enhanced Hash
ECMP DLB Load Balancing Options
------------------------------------------------------------
ECMP DLB : disabled
Inactivity Timer : 0
Hash Region Size : 0 (buckets)
LAG DLB INFO
-------------------
ECMP Resilient Hashing : disabled
'Network > Link Aggregation' 카테고리의 다른 글
Link Aggregation Configuration(Juniper vMX) (0) | 2025.04.27 |
---|---|
LACP Configuration 정리(Juniper) (0) | 2025.04.25 |
LACP 동작 과정 (0) | 2025.04.23 |
Introduction to LACP (0) | 2025.04.21 |
LACP Header (0) | 2025.04.19 |
Introduction to PAGP (0) | 2025.04.17 |
PAGP Header (0) | 2025.04.15 |
Introduction to Link Aggregation (0) | 2025.04.11 |