Traceroute가 로드 밸런서를 감지할 수 있나요?

Traceroute가 로드 밸런서를 감지할 수 있나요?

Traceroute는 애플리케이션 서버와 데이터베이스 사이에 있는 로드 밸런서를 감지할 수 있습니까? 애플리케이션 서버에서 데이터베이스로 경로 추적을 실행한 후 홉이 하나만 수신되었습니다. 홉은 대상 데이터베이스였습니다.

답변1

먼저 사소한 경우에서 벗어나겠습니다. 경로를 추적한 IP가 실제로 로드 밸런서에 속하지 않는다고 가정합니다. 가장 전형적인 경우일 것입니다.

이를 그대로 두면 라우팅(전달) 경로에 있는 로드 밸런서를 감지하려고 한다는 의미입니다. 이러한 것을 네트워크 로드 밸런서(NLB)라고 합니다. Traceroute는 패킷의 TTL 필드를 줄이는 특정 종류의 장치만 인식합니다. 일반적인 라우터는 그렇게 하지만 NLB는 그렇지 않은 경우가 많습니다.

결과적으로, Traceroute만 보면 도중에 NLB가 있었는지 확실하게 알 수 없습니다.

답변2

짧은 대답: 아니요.

긴 답변:
traceroute감지하기 위한 것입니다 router. 이는 하나의 IP 서브넷(IP + MASK가 서브넷을 지정함)에서 다른 IP 서브넷으로 트래픽을 전송하는 데 사용됩니다.
로드밸런서는 클라이언트에게 투명하게 작동하도록 되어 있습니다. 이는 트래픽을 가져와 한 목적지 또는 다른 목적지로 전달한다는 것을 의미합니다. 따라서 클라이언트의 경우 매번 동일한 서버에 도달하는 것처럼 보이지만 백그라운드에서는 여러 가지 이유로(로드 밸런싱, 고가용성 등) 요청이 두 개 이상의 서버에 분산됩니다.

특정 집합의 경우 다음과 같습니다.
user-client <-> application server <-> database
사용자 클라이언트가 애플리케이션 서버에서 리소스를 요청하지만 애플리케이션 서버는 사용자 클라이언트 자체가 아닌 데이터베이스에 대한 클라이언트입니다. 따라서 기본적으로 사용자 클라이언트의 관점에서는 애플리케이션 서버 뒤의 데이터베이스를 볼 수 없습니다.
이 별자리를 직접 만들지 않았다면 확신할 수 없습니다.
Wireshark/tcpdump를 사용하고 MAC 주소를 분석하여 트래픽이 어디서 오는지 확인할 수 있습니다.

답변3

그렇다면 로드 밸런서는 데이터베이스 연결을 위한 것인가요? 로드 밸런서 IP를 ping하고 데이터베이스를 직접 ping할 수도 있습니까? DB가 여러 개 있나요?

그리고 LAN 연결에 대해 이야기하고 있습니까? 아니면 최소한 동일한 서브넷 공용 또는 개인용 앱 서버와 DB에 대해 이야기하고 있습니까? DB나 로드 밸런서 이외의 홉을 기대하지 않는지 확인하고 싶을 뿐입니다.

추가 정보 없이 구체적으로 답변하기는 어렵지만 로드 밸런서 IP에 대한 추적 경로를 실행하는 경우 추적 경로가 종료되어야 합니다. 데이터베이스 IP로 직접 경로를 추적하는 경우... 음, 그것이 추적 경로가 가야 할 곳입니다.

나는 대부분의 데이터베이스 로드 밸런서가 실제로 프록시라고 생각합니다. 따라서 "데이터베이스에 대한" 추적 경로가 로드 밸런서에 도달할 수 있습니다... 그것이 사용자가 입력하는 IP라면.

관련 정보