IT/Load Balancing

BIG-IP SNAT

jk.jeong 2017. 7. 12. 08:46

SNAT

- Secure Network Address Translation, 'NAT' / ' NAPT'


1. NAT

- 정적 NAT(1:1 NAT). 서버 측 IP주소와 클라이언트 측 IP주소를 일대일로 연동할 때 사용.

 

2. SNAT

- BIG-IP의 PAT(IP 매스커레이드)

- 복수의 서버를 가지고 인터넷과 통신할 경우 출발지 IP주소를 하나 또는 복수의 IP주소로 변환.

 

 

 

1) SNAT automap
- BIG-IP의 IP주소로 변환하는 SNAT. 이중화 구성의 경우 공유 IP주소(VIP)

- 전달된 패킷의 출발지 IP주소가 'Original Address'와 일치하면 BIG-IP 주소로 변환.

 

2) SNAT IP Address

- 'SNAT IP Address'는 설정한 IP주소로 변환하는 SNAT.

- Virtual Server 의 IP주소를 설정할 수도 있음. Pool Member의 트래픽을 Virtual Server의 IP주소로 인터넷에 공개하고 싶을 때. BIG-IP는 전달된 패킷의 출발지 IP주소가 Original Address와 일치하면 설정한 IP주소로 변환.

 

3) SNAT Pool Member

- 미리 설정해 둔 복수의 IP주소로 변환하는 SNAT.

- SNAT automap과 SNAT IP Address는 설정한 하나의 IP로 변환하기 때문에 편리하긴 하나 대량의 트래픽이 발생하면 변환되는 포트 번호가 고갈될 수도 있음. (TCP-IP주소당 64,511 (well-known 1024개)

- 포트를 모두 사용해 버리면 이후 연결은 TCP RST 패킷을 보낸 후 끊음.

- 변환하는 IP주소를 복수 개로 한 후 SNAT Pool이라는 형태로 설정.

 

 

 

4) SNAT 특수한 사용

- VLAN간 부하 분산에도 사용. 같은 IP 서브넷 내에서의 부하분산.

 

** 왜 같은 IP 서브넷 내의 부하 분산에 SNAT가 필요??

통신

a)  웹 서버가 같은 IP 서브넷에 있는 Virtual Server 와 통신이 되는지 확인

b) BIG-IP는 Pool Member인 AP 서버를 선택 후 전송

c) 전달받은 AP 서버는 출발지 IP주소로 패킷을 돌려 줌.

- 같은 IP 서브넷에 있기 때문에 출발지 IP주소의 ARP Request에 웹 서버가 응답

 

=> 정상적인 통신이 성립하지 않음. BIG-IP는 자신을 경유하는 모든 연결을 연결 테이블로 관리. 오고가는 연결을 별도로 관리하고 연결이 정합성을 잃으면 해당 연결을 파기.

위 경우 가는 연결은 BIG-IP를 경유하지만 돌아오는 연결은 BIG-IP를 거치지 않으므로 연결 정합성이 없어 연결을 파기.