是否可以擷取路由器的數據包?
我面臨一個問題,即一些從內部網路發送到 Internet 的封包遺失。我們使用的模式是這樣的:
Client A ←→ Switch A ← Router A:NAT ← .. Network .. → Router B:NAT → Switch B ←→ Server B
我想執行以下兩個步驟來跟踪問題:
- 在路由器 B 上擷取來自客戶端 A 的數據包。
- 查看Router B的轉換錶。
兩個動作都可以嗎?
更多資訊:
- 客戶端 A 在 Windows XP 上執行
- 伺服器 B 在 Linux 上執行(確切地說是 Fedora)。
- 路由器 B 使用靜態埠和地址轉換錶,這意味著傳入
特定埠的數據包將被轉發到伺服器 B。 4. RouterA和RouterB都是TPLink WR340+產品。 5. Router A 和Router B 都有Full-cone NAT。 6. 開關 A 是 DLink DES-1024R,開關 B 是 DLink DES-1016D。
我之所以要執行這兩個操作是因為我們發現數據包是從 ClientA 的網路介面發出的,但是由於未知原因,ClientA 機器的 TCP 核心從未收到來自其他端點的任何 ACK 數據包,因此它進入了數據傳輸直到超時。而在伺服器端,同樣使用WireShark工具,我們發現伺服器B機器的網路介面從來沒有收到客戶端A發送的數據包。我猜是路由器B丟棄了數據包,所以我想知道是否可以在路由器擷取數據包B.
實際上,這個問題只發生在我們有兩個客戶端時,比如說它們是客戶端 A 和客戶端 C。客戶端 A 和客戶端 C 不直接相互通信,而是與伺服器 B 通信。
當我們拔掉Client A機器的網線,在另一台機器上登錄Client A大約30秒後出現問題,新機器上的Client A會開始與伺服器B進行TCP通信,前許多命令是OK的,但是在那個伺服器之後無法再接收來自客戶端 A 的任何命令。
伺服器 B 從未收到數據包
如果你從伺服器 B 執行 Wireshark 就可以了;如果不是,請考慮您需要一個託管交換機來配置一個“鏡像/跨度/監視器”埠,您可以在該埠連接到 Wireshark 的 PC。
我會堅持使用 Wireshark 移動它以查看路由器 B 和交換機 B 之間的數據包(你可以在兩者之間添加一個集線器來插入 Wireshark 的 PC 嗎?)
如果數據包沒有到達RouterB-SwitchB段,那麼您在Router B的埠轉發(為了繞過其NAT服務)可能無法正常工作,或者路由器只是沒有路由您的流量。