-
NSX-V Load Balancing 구성 방식의 이해VMware/NSX 2019. 3. 22. 23:15
### 모든 포스팅은 개인적인 의견입니다. VMware의 공식적인 의견이 절대 아닌 점 양해 부탁 드립니다 ###테스트 목적
NSX-V 환경에서 LB를 구성 할 수 있는 Proxy, Transparent 방식에 따른 차이점을 확인한다.
테스트 환경
1) Proxy ( One-arm )
<< LB-Proxy >>
일반적으로 Backend Server와 동일한 대역에 배포한다.
Transparent 방식과 다르게 Client에서 트래픽 수신 시 SNAT과 DNAT을 동시에 진행한다.
SNAT : Client IP -> VIP
DNAT : VIP -> Backend IP
위 같은 이유로 Backend Server는 Client IP를 탐지 할 수 없으나 탐지가 요구된다면
'x-forward-for' 기능을 통해 http 헤더에 Client IP 정보를 삽입 할 수 있다.
장점 : LB 트래픽과 일반 트래픽을 분리 할 수 있어 유연함.
단점 : 구성의 복잡함
2) Transparent ( Inline )
<< LB-Transparent >>
일반적으로 Backend Server의 GW로 사용되며 동시에 LB 서비스를 제공한다.
Proxy 방식과 다르게 Client에서 트래픽 수신 시 DNAT만 진행한다.
DNAT : VIP -> Backend IP
'transparent' 기능 사용 시 Bakend Server에서 Client IP 탐지가 가능하다.
장점 : 구성의 단순함, Client IP 탐지 가능
단점 : 모든 트래픽이 LB를 경유하기 때문에 Proxy 방식보다 유연성이 떨어지며 부하가 높다.
테스트 결과
1) Proxy
Proxy 방식으로 LB 구성 후 Client에서 Wireshar를 통해 패킷을 확인해본다.
<< Wireshark-Backend >>
앞서 설명한 것처럼 Backend에서 SNAT으로 인해 Client IP를 확인 할 수 없다.
Proxy 방식에서 만약 'transparent' 기능을 enable 했을 시 어떤 상황이 발생하는지 확인해본다.
<< 'transparent' enable >>
Client에서 패킷 확인
<< Wireshark-Client >>
'transparent' enable 시 Client에서 rst 플래그를 통해 통신을 끊어 버린다.
아래 diagram을 통해 확인해보자.
<< LB-proxy-enable-transparent >>
위와 같이 Backend Server에서 Client IP가 탐지되므로 패킷 응답 시 direct로 회신하게 된다.
패킷 캡처를 확인해보면 Client에서는 LB VIP로 패킷을 발신 했지만 갑자기 전혀 다른 Backend에서 회신이 오기 때문에 rst 플래그를 통해 끊어 버리는 것이다.
만약 위 구성을 가능하게 하려면 DSR 방식을 지원해야 하지만 NSX의 LB는 지원하지 않는다.
자 그럼 Client IP 탐지를 위해 'x-forward-for' 기능을 enable 한다. http 헤더에 추가되는 기능이기 때문에 L4 가속 방식에서는 지원하지 않는다.
<< 'x-forward-for' enable >>
Client에서 패킷 확인
<< Wireshark-enable-xfor >>
위와 같이 http 헤더에 별도로 Client IP 정보가 삽입된다.
2) Transparent
이번에는 Transparent 방식에서 Client 패킷을 확인해본다.
<< Wireshark-disable-'transparent' >>
Transparent 방식의 구성이지만 'transparent'를 enable하지 않으면 위와 같이 Client IP를 탐지 할 수 없기 때문에 'transparent'를 enable 후 확인해본다.
<< Wireshark-enable-'transparent' >>
enable 시 Client IP가 탐지된다. 사실 enable disable과 상관 없이 모든 패킷은 LB를 통과하기 때문에 정상적으로 LB 서비스는 동작한다.
'VMware > NSX' 카테고리의 다른 글
NSX-V ECMP 설정에 대한 이해 (0) 2019.03.28 NSX-V Virtual Server 엔진 방식에 따른 이해 (0) 2019.03.23 NSX-V LB https Guide (0) 2019.02.26 댓글