Traceroute 可以检测负载均衡器吗?

Traceroute 可以检测负载均衡器吗?

跟踪路由能否检测出位于应用服务器和数据库之间的负载均衡器?在从应用服务器到数据库运行跟踪路由后,我只收到一个跳转。该跳转是目标数据库

答案1

首先让我们先解决一个简单问题:我假设您跟踪路由的 IP 实际上不属于负载均衡器。这是最典型的情况。

忽略这一点,这意味着您尝试检测位于路由(转发)路径上的负载平衡器。这些东西称为网络负载平衡器 (NLB)。traceroute 仅识别特定类型的设备 - 这些设备会减少数据包中的 TTL 字段。典型的路由器会这样做,但 NLB 通常不会。

因此,您无法仅通过查看 traceroute 来可靠地判断途中是否存在 NLB。

答案2

简短回答:不。

长答案:
traceroute是为了检测router。它们用于将流量从一个 IP 子网(IP + MASK 指定子网)传输到另一个。
负载均衡器对客户端来说是透明的。这意味着它们接收流量并将其转发到一个或另一个目的地。因此对于客户端来说,它们似乎每次都访问同一台服务器,但在后台,请求会由于多种原因(负载平衡、高可用性等)分发到两个或更多服务器。

对于您的特定星座,它看起来像这样:
user-client <-> application server <-> database
您的用户客户端从应用程序服务器请求资源,但应用程序服务器是数据库的客户端,而不是用户客户端本身。因此,从用户客户端的角度来看,您基本上看不到应用程序服务器背后的数据库。
如果您没有自己构建这个星座,您就无法确定。
您可以尝试使用 Wireshark/tcpdump 并尝试分析 MAC 地址以查看您的流量来自何处。

答案3

那么负载均衡器是用于数据库连接的吗?您可以 ping 负载均衡器 IP 并直接 ping 数据库吗?有多个数据库吗?

我们谈论的是 LAN 连接还是应用服务器和数据库至少位于同一子网(公共或私有)上?只是想确保您不期望除数据库或负载平衡器之外的跳转。

如果没有更多信息,很难具体回答,但是如果您正在运行到负载平衡器 IP 的跟踪路由,那么它应该终止于此。如果您直接跟踪路由到数据库 IP... 那么跟踪路由应该去往此处。

我相信大多数数据库负载均衡器实际上都是代理,因此您的“到数据库”的跟踪路由可能会击中负载均衡器...如果这是您输入的 IP。

相关内容