본문 바로가기

VMware Cloud Foundation/NSX-T

NSX-T에 통합된 NSX-ALB, 그리고 SSL Offload

NSX Advanced LB는 NSX-T와 통합된 LB 서비스를 제공할 수 있습니다.

NSX-T의 Tenant 형태의 Tier-1 Router 그리고, Logical Segement 완벽한 테넌트 기반의  분리된 LB 서비스를 구축될 수 있도록 제공이 되며, NSX ALB는 vCenter 뿐 아니라, NSX-T로부터 network logical segment 정보를 받아옴으로서 network profile로서 선택할 수 있습니다.

 

단, NSX-T에 통합된 NSX ALB를 배포할 경우에는 One-arm mode로만 동작을 하기 때문에 In-line mode가 필요할 경우에는 NSX-T와 통합 없이 vCenter 연동만을 통해서 구축 및 In-line 모드에 대한 구성을 별도로 진행할 수 있습니다.

 

NSX ALB는 NSX-T와 연동 시, 아래와 같은 2가지 구성 형태를 사용할 수 있습니다.

 

그림-1. SE on Dedicated Segment

 

첫째, 그림-1과 같이 NSX ALB의 Data plane을 담당하는 Service Engine(이하 SE) VM은 Backend 서버와 다른 위치의 segment에 위치하는 경우입니다.

 

 

 

그림-2. SE on Shared Segment

 

둘째, 그림-2와 같이 NSX ALB의 Data plane을 담당하는 Service Engine(이하 SE) VM은 Backend 서버와 동일 위치의 segment에 위치하는 경우입니다.

 

이렇게 NSX-T를 이용중인 고객이라면, NSX ALB를 통합하여 One-arm mode LB로서 클라우드향 LB를 사용할 수 있으며, NSX-T를 통한 VIP 광고를 통해서 자동화된 애플리케이션 및 네트워킹 배포하는데 활용할 수 있습니다.

 

그림-3. NSX ALB SE의 vNIC 배치

 

NSX-T를 통한 NSX ALB를 사용할 경우, 각 Tier-1 Router를 기준으로 ALB는 VRF를 생성하여 각 Tier-1 Router에 대해서 격리 및 구분을 하는 용도로 사용을 하게 됩니다.

 

NSX ALB SE Group을 구성하고, Virtual Service를 생성할 경우 원하는 서비스 배치를 위한 Tier-1 라우터를 기준으로 하는 테넌트를 통해서 서비스가 제공되며, ALB SE 서비스를 제공하는 VM에는 Management vNIC과 VIP가 위치하는 vNIC이 제공됩니다.

 

VIP로 트래픽 접근을 위해 NSX ALB controller는 Tier-1 Router에 static route 경로를 자동으로 추가하게 됩니다.

(예: SE engine node에 interface에는 vNIC을 위한 SE engine을 위한 IP 대역과 VIP 할당을 위한 IP 대역을 다른 IP subnet을 기준으로 할당)

이러한 Tier-1에 할당된 static route는 NSX-T의 Tier-0에 구성된 route distribute 정책에 따라서(eBGP routing 광고) Tier-0 Router와 연결된 업링크를 통해서 외부 네트워크로 전달됩니다.

 

그림-4. NSX ALB를 위한 Security 정책

 

NSX-T와 통합된 NSX ALB는 그림-4와 같은 보안 정책을 NSX-T에 삽입을 필요로 합니다.

서버 풀을 구성 시, NSGroup을 NSX-T UI에서 사전 정의를 한 후, 사용할 수 있으며 혹은 IP 주소를 기반으로 등록할 수 있습니다.

NSX-T에 구성된 NSGroup 정보는 매 5분 마다 NSX-T로부터 갱신된 정보를 가져오게 됩니다.


NSX ALB에 SSL offload를 통한 L7 서비스 예제

NSX ALB에서 NSX 연결 구성 시, NSX-Cloud가 생성됩니다. 신규 Virtual Service 생성 시 아래와 같이 cloud를 선택

 

여러 Tier-1 라우터가 설정되어 있다면, 아래와 같이 각 Tier-1 라우터 정보를 확인할 수 있으며, Virtual Service를 생성하기 위한 Tier-1 라우터를 선택합니다.

 

몇 가지 설정이 필요한 주요 항목에 대한 정보

Name: Virtual service name
VS VIP: VIP 주소 및 Tier-1 router 선택
Application Profile: 요구 사항에 맞는 SSL profile 생성, 기타 요구 기능에 따른 profile 조정
Service Port: 서비스 포트 지정(: SSL 443)
Pool: Backend Server pool 선택
SSL Profile: 요구되는 정책으로 선택
SSL Certificate: Template > Security > SSL/TLS Certificates에 공인 인증서 import된 항목 선택

 

 Virtual Service를 위한 VIP를 구성합니다.

Name: VS VIP name
Tier1 Logical Router: VRF에 해당하는 Tier1 router 선택
VIPs: 소비하기 위한 VIP 주소 입력
 

Virtual Service - L7 SSL Offload Balancing 구성

Name: Application profile name
Type: 요구 사항에 맞는 type 선택(: HTTP)
X-Forwarded-For: Client IP 전달을 위한 XFF 선택(APP에서 수집을 위한 header 값에 맞게 변경, 기본값: X-Forwarded-For)
WebSockets Proxy: 서비스의 HTTP Upgrade 필요 시 위한 선택
기타 요구 사항에 따른 조정
Connection Multiplex: 다수의 BackendClient 워크로드를 밸런싱하며, 서버 측 세션 재사용(Preserver Client IP address와 동시 채택 불가능)
Preserve Client IP Address: Inline 구성 시, BackedClient IP가 보존되도록 유지 할 경우 선택(Multiplex와 상반된 기능으로 동시 채택되지 않음)
Detect NTLM App: windows NT LAN Manager 인증을 위한 서버 세션 유지
Reset connection on HTTP request for SSL port: SSL porthttp 접근 요청 시 차단
HTTP to HTTPs Redirect: HTTP 요청 시, HTTPs리다이렉션
Secure Cookies: AVISSL offload, 서버 측 cookie에 대한 secure mark 특성 부여
X-Forwarded-Proto: AVISSL offload, 서버 측에 HTTPs 프로토콜임을 전달하는 header
Rewrite Server Redirects to HTTPs: AVISSL offload 시 발생하는 http 전환을 https로 조정
기타 요구 사항에 맞는 옵션 조정
HTTP-only Cookies: Javascriptthird party에서 cookie 획득 제한

 

HTTP Limit Settings
HTTP Timeout Settings: 서버 측 서비스 요구 사항에 따른 각 항목별 timeout 값 조정
Client Header timeout
Client Body Timeout
HTTP Keep-Alive Timeout
Post Accept Timeout
HTTP Size Settings: 요구 사항에 맞게 조정
Client Max Body Size: 기본 값: 0, 무제한
Client Max Header Field Size
Client Max Complete Header Size
Send Keep-Alive header: clientkeep-alive header 전송
Use App Keep-Alive Timeout: HTTP Keep-alive Timeout 대신 app에서 전송 한 keep-alive timeout header 전달

 

URL content switching을 통한 특정 URL 패턴에 대한 다른 서버 풀로 워크로드 전달
Rule Name: 정책 이름 입력
Match: 패턴 기준 항목 선택
- HTTP header, Method, version, path 등 요구 사항에 맞는 항목 선택
Path: URI 경로에 대한 패턴 확인
https://host domain/{uri}
Action: 정책에 따른 수행 항목 선택
- Redirection, header 수정, Rewrite URL, Content switch
Content switch: Backend 경로를 다른 server pool로 변경
) /synchrony에 대해서 8091 포트의 server pool로 지정
 
Auto Gateway: VIP 인입 패킷의 이전 홉 단계의 Source MAC Address로 패킷 회신
Use VIP as SNAT: SE(Service Engine)Interface 대신 VIP SNAT 주소로 지정
Service Engine Group: SE 배포를 위한 해당 TenantVRFSE Group 지정
SNAT IP Address: SNAT IP 수동 지정(route 경로 확인)

Pool 생성

Name: Pool name
Default Server Port: Backend server port
Graceful Disable Timeout: 응답 없음에 대한 종료 대기 시간(기본 값:1)
Load Balance: 인입 트래픽에 대한 분배 조정(요구 사항에 따른 조정): least connection
Tier-1 Logical Router: Virtual Service기 위치한 Tier-1 Router와 동일한 Tier 선택
Persistence: 동일 사용자 세션에 대한 동일 서버로 배정을 위한 방식 선택
Health Monitors: Active Monitor 추가
기타 Profile: 상황에 따른 조정
 
Select Servers: IP 주소, IP Group, Security Groups(NSX-T에서 생성된 network group)에서 Backend 장치 선택 추가
Server Disable Type: Graceful downtime에 따른 종료 후 action
 
Request Queuing: 요청 queue length 조정(기본 값: Disabled)
Fail Action: Pool 실패 시 action
Connection Idle Timeout: 세션 연결 유휴 대기 시간(기본 값: 60)
Connection Life Timeout: 세션 연결 종료 시간(기본 값: 600)
Connection Max Used Times:  세션 재 사용 되어지는 횟수(기본 값: 0 - unlimited)
Max Cache Connections Per Server: 서버당 cache 되어지는 연결 세션 수(기본 값: 0 - unlimited)
Max Connections per Server: 서버당 연결 세션 최대 수

 

Prefix: Backend 장치의 목적지 대역 설정
Next Hop: SE에 할당된 Interfacegateway 주소 설정