
Traceroute 可以偵測位於應用程式伺服器和資料庫之間的負載平衡器嗎?運行從應用程式伺服器到資料庫的追蹤路由後,我只收到一跳。該躍點是目標資料庫
答案1
首先讓我們先擺脫這個簡單的情況:我假設您追蹤路由的 IP 實際上並不屬於負載平衡器。這將是最典型的案例。
忽略這一點,這表示您嘗試偵測位於路由(轉送)路徑上的負載平衡器。這些東西稱為網路負載平衡器(NLB)。追蹤路由僅識別特定類型的設備 - 這些設備會減少資料包中的 TTL 欄位。典型的路由器會這樣做,但 NLB 通常不會這樣做。
因此,僅透過追蹤路由無法可靠地判斷途中是否存在 NLB。
答案2
簡短回答:不。
長答案:
traceroute
是為了檢測router
。它們用於將流量從一個 IP 子網路(IP + MASK 指定子網路)傳輸到另一個。
負載平衡器對客戶端來說是透明的。這意味著他們接收流量並將其轉發到一個目的地或另一個目的地。因此,對於客戶端來說,看起來他們每次都會到達同一台伺服器,但在後台,由於多種原因(負載平衡、高可用性等),請求被分發到兩個或更多伺服器。
對於您的特定星座,它看起來像這樣:
user-client <-> application server <-> database
您的用戶用戶端從應用程式伺服器請求資源,但應用程式伺服器是資料庫的客戶端而不是用戶用戶端本身。所以基本上從用戶客戶端的角度看不到應用程式伺服器背後的資料庫。
如果您不是自己建造這個星座,您就無法確定。
您可以嘗試使用 Wireshark/tcpdump 並嘗試分析 MAC 位址以查看流量來自何處。
答案3
那麼負載平衡器是用於資料庫連線的嗎?您可以 ping 負載平衡器 IP 並直接 ping 資料庫嗎?是否有多個資料庫?
我們談論的是 LAN 連接還是應用程式伺服器和資料庫,至少位於同一公共或私有子網路上?只是想確保您不需要資料庫或負載平衡器以外的躍點。
如果沒有更多信息,很難具體回答,但如果您正在運行到負載平衡器 IP 的追蹤路由,那麼它應該在此處終止。如果您直接追蹤路由到資料庫 IP...那麼這就是追蹤路由應該去的地方。
我相信大多數資料庫負載平衡器實際上都是代理,因此您的“到資料庫”的追蹤路由可能會命中負載平衡器...如果這是您輸入的IP。