의식여행

[System Network] L4 Mode비교(Inline vs DSR) 및 설정하기 본문

IT(리눅스&보안&개발)/시스템 네트워크

[System Network] L4 Mode비교(Inline vs DSR) 및 설정하기

의식여행중 2018. 8. 17. 14:07

Overview

서비스(웹서버) Load Balancing을 위한 매커니즘으로 구성환경에 따라 L4Inline Mode 또는 DSR Mode를 사용합니다.

Inline vs DSR 구성
보통 서비스에서는 Inbound Traffic 대비 Outbound Traffic이 월등히 높은데
SLB에서 모두 수용하게 될 경우 리소스 소모가 커질 수 밖에 없습니다.

이러한 문제점을 극복하고자 사용하는 구성이 DSR(Direct Server Return) 구성입니다.

1. Inline(Proxy) Mode

■ 개념 : Server에서 Client로 응답시 L4를 경유하여 응답하는 구조

■ 동작구조 : Client → L4 → Server → L4 → Client
※ L4에서 Server로 패킷 전달 시, Client IP가 L4 장비의 IP로 변경되어짐 ※

■ 장점 : 1) 같은 서브넷이 아닌 다른 IP대역의 L4 수용이 가능
2) 하나의 포토에 여러가지 리얼 포트로 전달해 줄 수 있는 멀티 포트 지원 가능

■ 단점 : 1) 모든 트래픽이 L4를 경유하기 때문에 인터페이스 병목현상 및 장비에 부하를 준다
2) Client IP를 전달하기 위해서는 L4에서 HTTP 헤더 값을 추가하고 관련 가이드를 따라야 한다.(HTTPS 프로토콜만 지원)


2. DSR 구성

■ 개념 : Server에서 Client로 응답시, L4를 경유하지 않고 Direct로 응답하는 구조

■ 동작구조 : Client → L4 → Server → Client
※ Client IP가 그대로 Server로 전달 ※

■ 장점 : L4를 경유하지 않고 Client로 바로 응답하여 L4 장비 부하를 줄임 (응답속도 ↑)
2) Client IP를 그대로 전달하여 서버에 로그를 남기거나 ACL Control이 가능(보안성 ↑)

■ 단점 : 1) 같은 서브넷 안에 있는 서버(IP) 대역이 아닐 경우 L4 수용이 어려움
2) 하나의 포트에서 여러가지의 리얼 포트로 전달해줄 수 있는 멀티포트 기능지원이 어려움


3. CentOS L4 Mode 변경(Inline → DSR)

# vi /etc/sysconfig/network-scripts/ifcfg-lo:0

-DEVICE=lo:0
-IPADDR=X.X.X.X (L4 VIP)
-NETMASK=255.255.255.255 (BroadCast 방지)
-ifup /etc/sysconfig/network-scripts/ifcfg-lo:0


DSR 구성의 부하 분산 방식

1) Round Robin
-모든 서버에 균일한 횟수록 접속
-서버의 부하 상태 등에 대한 고려 없이 일률적으로 부하를 분산함으로써 효과적인 부하 분산을 기대하기 어려움

2) Least Connection
-서버들 중 세션수가 가장 적은 서버로 접속을 유도하는 방식
※ 서버 1대를 추가로 투입할 경우 현재 세션수가 0인 신규 투입서버로 Request가 몰리는 단점도 있음※


L4 HealthCheck

1. L2 : ARP 응답 확인
2. L3 : ICMP(Ping) 응답 확인
3. L4 : 서버에 TCP/UDP 서비스 포트 활성화 여부
4. L7 : 어플리케이션 올바르게 동작하는지 여부

[L4]
TCP 서비스의 경우 LB 장비에서는 바인딩된 서버의 포트로 TCP "SYN"을 전송하여 "SYN+ACK" 응답이 오는지를 확인하여
응답이 없으면 서비스 상태에 문제가 있다고 판한한다.
(Socket 낭비를 막기 위해 이후, 바로 "RST"를 통해 세션을 끊음)

[L7]
L4는 Socket의 낭비를 막는다는 이점은 있지만, 실제 Application 단은 체크할 수 없다는 문제점이 있음
L7은 기본적으로 서버와 TCP 세션을 맺고 Request를 통해 응답 코드를 확인하는 방식입니다.
이는 어플리케이션 상태까지 확실한 Health Check가 가능합니다.


감사합니다.

Comments