Load Balancer TCP 재설정 및 유휴 시간 제한

표준 Load Balancer를 지정된 규칙에 대해 TCP Reset on Idle을 사용하도록 설정하여 시나리오용으로 예측 가능성이 더 높은 애플리케이션 동작을 만들 수 있습니다. Load Balancer의 기본 동작은 흐름의 유휴 시간이 초과되면 흐름을 자동으로 끊는 것입니다. TCP 재설정을 사용하도록 설정하면 Load Balancer가 유휴 시간 제한에 양방향 TCP 재설정(TCP RST 패킷)을 보내 애플리케이션 엔드포인트에 연결 시간이 초과되어 더 이상 사용할 수 없음을 알릴 수 있습니다. 엔드포인트는 필요한 경우 새 연결을 즉시 설정할 수 있습니다.

Diagram shows default TCP reset behavior of network nodes.

TCP 재설정

이 기본 동작을 변경하고 인바운드 NAT 규칙, 부하 분산 규칙 및 아웃바운드 규칙에서 유휴 시간 초과 시 TCP 재설정 보내기를 사용하도록 설정합니다. 규칙에서 사용하도록 설정하면 Load Balancer는 모든 일치 흐름의 유휴 시간 초과 시 클라이언트 및 서버 엔드포인트 둘 다에 양방향 TCP 재설정(TCP RST 패킷)을 보냅니다.

TCP RST 패킷을 수신하는 엔드포인트는 즉시 해당 소켓을 닫습니다. 이렇게 하면 엔드포인트의 연결 릴리스에 대한 즉각적인 알림이 제공되고 동일한 TCP 연결에 대한 향후 통신이 실패합니다. 애플리케이션은 소켓이 닫히면 연결을 제거할 수 있으며 필요에 따라 TCP 연결 시간이 초과될 때까지 기다리지 않고 연결을 다시 설정할 수 있습니다.

TCP 재설정을 사용하면 많은 시나리오에서 흐름의 유휴 시간 초과를 새로 고치기 위해 TCP(또는 애플리케이션 계층) 연결 유지를 보내는 것을 줄일 수 있습니다.

TCP 재설정을 사용하도록 설정하면 유휴 기간이 구성 제한을 초과하거나 애플리케이션이 원치 않는 동작을 보여 주는 경우 계속 TCP 연결 유지 또는 애플리케이션 계층 연결 유지를 사용하여 TCP 연결의 활동성을 모니터링해야 할 수도 있습니다. 또한 연결이 경로의 특정 위치, 특히 애플리케이션 계층 연결 유지에 프록시 설정된 경우에도 연결 유지가 유용할 수 있습니다.

전체 엔드투엔드 시나리오를 신중하게 검토하여 TCP 재설정을 사용하도록 설정하고 유휴 시간 제한을 조정할 경우의 이점을 확인할 수 있습니다. 그런 다음, 원하는 애플리케이션 동작을 보장하기 위해 더 많은 단계가 필요할 수 있는지 결정합니다.

구성 가능한 TCP 유휴 시간 제한

Azure Load Balancer에서 Load Balancer 규칙, 아웃바운드 규칙 및 인바운드 NAT 규칙의 시간 제한 범위는 4분에서 100분입니다. 기본값은 4분입니다. 비활성 기간이 시간 제한 값보다 긴 경우 클라이언트와 클라우드 서비스 간의 TCP 또는 HTTP 세션이 유지되지 않을 수 있습니다.

연결이 닫히면 클라이언트 애플리케이션에 "기본 연결이 닫혔습니다. 활성 상태로 유지될 것으로 예상된 연결이 서버에서 닫혔습니다."와 같은 오류 메시지가 표시될 수 있습니다.

일반적인 방법은 TCP 연결 유지를 사용하는 것입니다. 이 방법은 더 오랜 기간 동안 연결을 활성 상태로 유지합니다. 자세한 내용은 이러한 .NET 예제를 참조하세요. 연결 유지를 사용하면 연결 비활성화 기간 동안 패킷이 전송됩니다. 연결 유지 패킷은 유휴 시간 제한 값에 도달하지 않고 연결이 장기간 유지되도록 합니다.

이 설정은 인바운드 연결에서만 작동합니다. 연결 끊김을 방지하려면 유휴 시간 제한 설정보다 낮은 간격으로 TCP 연결 유지를 구성하거나 유휴 시간 제한 값을 늘립니다. 이러한 시나리오를 지원하기 위해 구성 가능한 유휴 시간 제한에 대한 지원을 받을 수 있습니다.

TCP 연결 유지는 배터리 수명이 제한되지 않는 시나리오에서 작동합니다. 모바일 애플리케이션에는 권장되지 않습니다. 모바일 애플리케이션에서 TCP 연결 유지를 사용하면 디바이스 배터리가 더 빨리 방전될 수 있습니다.

우선 순위

다른 IP에 대해 설정된 유휴 시간 제한 값이 잠재적으로 상호 작용할 수 있는 방법을 고려해야 합니다.

인바운드

  • 유휴 시간 제한 값이 참조하는 프런트 엔드 IP의 유휴 시간 제한과 다르게 설정된 (인바운드) 부하 분산 장치 규칙이 있는 경우 부하 분산 장치 프런트 엔드 IP 유휴 시간 제한이 우선합니다.
  • 유휴 시간 제한 값이 참조하는 프런트 엔드 IP의 유휴 시간 제한과 다르게 설정된 (인바운드) NAT 규칙이 있는 경우 부하 분산 장치 프런트 엔드 IP 유휴 시간 제한이 우선합니다.

아웃바운드

  • 유휴 시간 제한 값이 4분(공용 IP 아웃바운드 유휴 시간 제한이 잠겨 있음)과 다른 아웃바운드 규칙이 있는 경우 아웃바운드 규칙 유휴 시간 제한이 우선합니다.
  • NAT 게이트웨이는 항상 부하 분산 장치 아웃바운드 규칙(및 VM에 직접 할당된 공용 IP 주소)보다 우선하기 때문에 NAT 게이트웨이에 할당된 유휴 시간 제한 값이 사용됩니다. (동일한 줄을 따라 NAT GW에 할당된 IP 중 4분의 잠긴 공용 IP 아웃바운드 유휴 시간 제한은 고려되지 않습니다.)

제한 사항

  • TCP 재설정은 ESTABLISHED 상태에서 TCP 연결 중에만 전송됩니다.
  • TCP 유휴 시간 제한은 UDP 프로토콜의 부하 분산 규칙에 영향을 주지 않습니다.
  • 네트워크 가상 어플라이언스가 경로에 있는 경우, ILB HA 포트에 대해 TCP 재설정이 지원되지 않습니다. NVA에서 TCP 재설정을 통해 아웃바운드 규칙을 사용하는 것이 해결 방법일 수 있습니다.

다음 단계