콘텐츠로 이동

ECMP 어피니티 및 지속성

Equal-Cost Multi-Path (ECMP) 라우팅은 플로우를 분산시키며 사용자, 쿠키, 로그인 세션 또는 애플리케이션 트랜잭션을 이해하지 못합니다. 안정적인 ECMP 해시를 지속성 기능으로 취급하기보다는 애플리케이션 인식 레이어에서 애플리케이션 지속성을 설계하십시오.

해시는 사용자가 아닌 플로우를 식별합니다

섹션 제목: “해시는 사용자가 아닌 플로우를 식별합니다”

많은 라우터는 Internet Protocol (IP) 및 전송 헤더의 필드에서 이퀄 코스트 경로를 선택합니다. 일반적인 입력은 소스 주소, 대상 주소, 프로토콜, 소스 포트 및 대상 포트의 5개 튜플(five-tuple)입니다. 정확한 필드, 시드 및 동작은 플랫폼에 따라 다릅니다.

선택된 필드가 동일한 패킷은 일반적으로 ECMP 세트가 안정적인 동안 동일한 경로를 따릅니다. 새로운 연결은 다른 소스 포트를 사용할 수 있으므로 다른 CE를 선택할 수 있습니다. HTTP/1.0, HTTP/1.1, HTTP/2, 브라우저 연결 재사용, 프록시 및 Network Address Translation (NAT)은 모두 하나의 겉보기 사용자 세션을 나타내는 전송 연결 수에 영향을 미칩니다.

이러한 동작은 플로우 어피니티일 뿐입니다. 소스 주소 지속성, 쿠키 지속성 또는 세션 상태 복제가 아닙니다.

소스 포트 생략에 따른 트레이드오프 변화

섹션 제목: “소스 포트 생략에 따른 트레이드오프 변화”

일부 라우터는 ECMP 해시에서 소스 포트를 생략할 수 있습니다. 이렇게 하면 동일한 소스 및 대상 주소를 가진 연결을 하나의 경로에 더 자주 유지할 수 있지만, 트래픽을 분산하는 데 사용할 수 있는 값의 범위가 줄어듭니다. 이로 인해 하나의 NAT 주소 뒤에 있는 많은 사용자가 단일 CE에 집중될 수 있습니다.

이 구성 역시 애플리케이션 지속성을 보장하지 않습니다.

  • 경로 세트 변경으로 해시가 다시 매핑될 수 있습니다.
  • CE 장애로 인해 새로운 트래픽이 다른 CE로 이동합니다.
  • 클라이언트 주소가 변경될 수 있습니다.
  • 애플리케이션 상태는 라우터에 의해 CE 간에 복제되지 않습니다.

올바른 레이어에 엄격한 지속성 적용

섹션 제목: “올바른 레이어에 엄격한 지속성 적용”

애플리케이션에서 사용자가 동일한 처리 컨텍스트로 돌아가야 하는 경우 지원되는 애플리케이션 레이어 지속성 메커니즘을 사용하거나 세션 상태를 외부화하십시오. 예를 들면 쿠키 지속성, 애플리케이션 인식 로드 밸런서에 의해 구현되는 소스 주소 지속성, 공유 세션 스토어 등이 있습니다.

요구사항을 명확히 규정하십시오.

요구사항적절한 메커니즘
단일 전송 플로우의 패킷을 단일 경로에 유지ECMP 플로우 해싱
단일 주소의 새로운 연결을 단일 대상으로 유지소스 주소 어피니티 (NAT 집중 고려)
인증된 한 명의 사용자를 단일 애플리케이션 인스턴스에 유지애플리케이션 레이어 지속성
선택된 CE 또는 애플리케이션 인스턴스 손실 시에도 작동 유지복제 또는 외부 세션 상태 및 헬스 인식 페일오버

여러 독립적인 연결을 생성하고 경로당 또는 CE당 카운터를 비교하십시오. NAT 뒤의 클라이언트, 범위 내의 모든 HTTP 버전, 장기 연결 및 경로 세트 변경을 포함하십시오. 요청이 성공했다고 해서 도달 가능성이 증명되는 것은 아니며, 균등한 분산이나 지속성을 의미하지는 않습니다.

경로 세트 변경의 라우팅 측면에 대해서는 라우팅 및 페일오버를 참조하십시오.

RFC 2992는 이퀄 코스트 넥스트 홉 전체에 플로우를 분산하는 모델과 넥스트 홉 세트가 변경될 때 발생하는 중단을 설명합니다.