HAproxy 단일 암 로드 밸런싱

HAproxy 단일 암 로드 밸런싱

단일 암 모드(실제 프런트엔드 IP 및 백엔드 서버가 동일한 서브넷에 있고 실제 클라이언트는 항상 원격인 경우)에서 HAproxy에 대한 로드 밸런싱 랩을 설정하려고 합니다. 또 다른 요청은 클라이언트 소스 IP를 백엔드 노드에 표시하는 것입니다. 맞춤형 TCP 기반 앱의 로드 밸런싱을 수행할 때 여기서는 'source 0.0.0.0 usersrc clientip' 옵션이 올바른 선택인 것 같습니다. 또한 HAproxy의 IP 주소를 가리키는 기본 게이트웨이를 갖도록 백엔드를 구성했습니다.

이 백엔드 옵션을 활성화하면 이상한 일이 발생하지만 프런트엔드 VIP에 대한 연결이 제대로 이루어졌고 3방향 핸드셰이크가 형성된 것을 볼 수 있습니다. 그러나 HAproxy 서버가 클라이언트의 스푸핑된 IP로 백엔드 서버에 연결하기 위해 두 번째 세션을 구축하려고 할 때 정확히 다음과 같은 일이 발생하는 것을 볼 수 있습니다.

  1. 프록시가 스푸핑된 클라이언트의 IP 주소와 함께 SYN을 백엔드 중 하나로 보내고 있습니다.
  2. 백엔드는 일반적으로 SYN-ACK 패킷으로 응답합니다.
  3. 프록시는 마지막 ACK를 보내지 않고 시간 초과 후 동일한 결과로 맹목적으로 SYN 패킷을 보냅니다.
  4. 프록시에서는 이 연결이 netstat 출력에 SYN_SENT로 표시되어 있으므로 프록시 서버가 어떤 이유로 실제로 SYN-ACK 패킷을 허용하지 않는 것 같습니다.

어떤 칭찬이라도 주시면 감사하겠습니다.

관련 정보