프로그래밍공부(Programming Study)/CS-네트워크(Network)

②편. NLB(Network Load Balancer) 완전 정리

Chann._.y 2025. 10. 12.
728x90

들어가며

NLB는 AWS 로드밸런서 중 가장 빠르고 단순하다.
하지만 그 단순함 속에는 커널 레벨의 conntrack, NAT, 세션 복원이 숨어 있다.


NLB 트래픽 전체 흐름

Client
↓ (TCP SYN)
[Internet Gateway]

[NLB]
├─ (L4) Port 기반 Target 선택
├─ (L3) DNAT (NLB IP → Node IP)

[Target Node]
├─ (L3) DNAT (NodePort → Pod IP)
├─ (L4) conntrack 등록

[Pod]

응답 경로: Pod → Node → NLB → Client


conntrack의 역할

conntrack은 커널의 연결 상태 추적 테이블이다.

상태 의미
NEW 새로운 TCP 연결 시도
ESTABLISHED 양방향 통신 중
RELATED 기존 세션 관련 트래픽
TIME_WAIT 종료 대기 상태

이 테이블은 /proc/sys/net/netfilter/nf_conntrack_max 로 제한된다.


NAT 두 번 발생하는 이유

  1. NLB에서 DNAT
    dst: NLB_IP → Target_Node_IP
  2. Node에서 DNAT
    dst: Node_IP:NodePort → Pod_IP:Port

응답 시 SNAT으로 복원되어 정확히 클라이언트로 반환된다.


주의점

  • conntrack limit 도달 시 패킷 드롭 발생
  • conntrack -L 명령으로 세션 수 확인
  • sysctl -w net.netfilter.nf_conntrack_max=... 로 확장 가능

요약

  • NLB는 L4 포트 기반으로 작동한다.
  • 커널 conntrack이 NAT 복원과 세션 유지의 핵심이다.
  • NAT은 최소 2회 발생한다(NLB + Node).

다음 편 예고 — ③편. ALB(Application Load Balancer) 완전 정리

728x90

댓글