Oracle® Solaris 11.2 시스템을 라우터 또는 로드 밸런서로 구성

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

NAT(Network Address Translator) 모드

ILB는 로드 균형 조정 기능에 대해서만 독립형 모드로 NAT를 사용합니다. 이 모드에서 ILB는 헤더 정보를 재작성하고 수신 및 송신 트래픽을 처리합니다. ILB는 Half-NAT 및 Full-NAT 모드 모두로 작동합니다. 그러나 Full-NAT는 소스 IP 주소도 재작성하여 모든 연결이 로드 밸런서에서 시작되는 것으로 서버에 표시되도록 합니다. NAT는 TCP 연결 추적을 제공합니다(Stateful임을 의미함). NAT 모드는 추가 보안을 제공하므로 HTTP(Hypertext Transfer Protocol) 또는 SSL(Secure Sockets Layer) 트래픽에 가장 적합합니다.

    장점:

  • 기본 게이트웨이가 로드 밸런서를 가리키도록 변경하여 모든 백엔드 서버에서 작동합니다

  • 로드 밸런서가 연결 상태를 유지 관리하므로 연결 장애 없이 서버를 추가하거나 제거할 수 있습니다.

    단점:

  • 처리 시 IP 헤더가 조작되고 서버가 로드 밸런서로 응답을 보내므로 DSR에 비해 성능이 떨어집니다

  • 모든 백엔드 서버에서 로드 밸런서를 기본 게이트웨이로 사용해야 합니다

일반적인 NAT 모드 구현은 다음 그림에 나타난 것과 같습니다.

그림 5-2  NAT(Network Address Translation) 토폴로지

image:이 그림은 NAT(Network Address Translation) 토폴로지를 설명합니다.

이 경우 VIP에 대한 모든 요청이 ILB를 경유하여 백엔드 서버로 전달됩니다. NAT의 경우 백엔드 서버의 모든 응답이 ILB를 경유합니다.


Caution

주의  -  ILB에서 구현된 NAT 코드 경로는 Oracle Solaris의 IP 필터 기능에서 구현된 코드 경로와 다릅니다. 이러한 코드 경로를 동시에 사용하지 마십시오.


Half-NAT 로드 균형 조정 모드

Half-NAT 모드의 ILB 작동에서는 ILB가 패킷의 헤더에 대상 IP 주소만 다시 씁니다. Half-NAT 구현을 사용하는 경우 서버가 상주하는 동일한 서브넷에서 서비스의 VIP 주소에 연결할 수 없습니다. 다음 표는 클라이언트와 ILB 사이 그리고 ILB와 백엔드 서버 사이를 이동하는 패킷의 IP 주소를 보여줍니다.

표 5-1  서버 및 클라이언트가 다른 네트워크에 있는 경우 Half-NAT 구현의 요청 플로우와 응답 플로우
요청 플로우
소스 IP 주소
대상 IP 주소
1.
클라이언트 –> ILB
클라이언트
ILB의 VIP
2.
ILB –> 서버
클라이언트
서버
응답 플로우
3.
서버 –> ILB
서버
클라이언트
4.
ILB –> 클라이언트
ILB의 VIP
클라이언트

클라이언트 시스템을 서버와 동일한 네트워크에 연결하면 의도한 서버가 클라이언트에 직접 응답하며, 테이블의 4번째 단계는 발생하지 않습니다. 따라서 클라이언트에 대한 서버 응답의 소스 IP 주소가 잘못되었습니다. 클라이언트가 로드 밸런서로 연결 요청을 전송하면 의도한 서버에서 응답이 발생합니다. 이 시점 이후부터 클라이언트의 IP 스택이 정확하게 모든 응답을 삭제합니다. 이 시나리오의 경우 요청 플로우와 응답 플로우는 다음 표에 나타난 대로 진행됩니다.

표 5-2  서버 및 클라이언트가 동일한 네트워크에 있는 경우 Half-NAT 구현의 요청 플로우와 응답 플로우
요청 플로우
소스 IP 주소
대상 IP 주소
1.
클라이언트 –> ILB
클라이언트
ILB의 VIP
2.
ILB –> 서버
클라이언트
서버
응답 플로우
3.
서버 –> 클라이언트
서버
클라이언트

Full-NAT 로드 균형 조정 모드

Full-NAT 구현의 ILB 작동에서는 트래픽이 로드 밸런서를 양방향으로 통과하도록 소스 및 대상 IP 주소가 재작성됩니다. Full-NAT 모드에서는 서버가 상주하는 서브넷과 동일한 서브넷에서 VIP에 연결할 수 있습니다.

다음 표는 Full-NAT 모드를 사용하여 클라이언트와 ILB 사이 그리고 ILB와 백엔드 서버 사이를 이동하는 패킷의 IP 주소를 보여줍니다. ILB 상자를 사용하는 특별한 기본 경로가 서버에서 필요하지 않습니다. Full-NAT 모드에서는 관리자가 ILB에서 백엔드 서버와 통신하는 데 소스 주소로 사용할 하나의 IP 주소 또는 IP 주소 범위를 마련해 두어야 합니다. 사용되는 주소가 서브넷 C에 속한다고 가정하겠습니다. 이 시나리오에서는 ILB가 프록시로 작동합니다.

표 5-3  Full-NAT 구현의 요청 플로우와 응답 플로우
요청 플로우
소스 IP 주소
대상 IP 주소
1.
클라이언트 –> ILB
클라이언트
ILB의 VIP
2.
ILB –> 서버
로드 밸런서의 인터페이스 주소(서브넷 C)
서버
응답 플로우
3.
서버 –> ILB
서버
ILB의 인터페이스 주소(서브넷 C)
4.
ILB –> 클라이언트
ILB의 VIP
클라이언트