BIG-IP SNAT
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를 거치지 않으므로 연결 정합성이 없어 연결을 파기.