Networking

檢查 tcpdump 級別以下的 tcp 數據包接收

  • April 28, 2015

我的智能手機設備和數據包監控出現問題:我試圖找出無法通過 PPTP 協議建立 VPN 連接的原因。

我有以下成功的場景:

  • 使用 IPv4 設置的設備
  • 連接到 VPN 正常

現在是一個失敗的場景:

  • 使用 IPv6 設置的設備
  • 連接到 VPN 失敗(超時 30 秒後)

我檢查了tcpdump結果並發現以下內容:在建立連接的交換期間,IPv6 和 IPv4 方案都是相同的,直到我的設備向伺服器發送“PPP LCP 配置請求”。

然後,對於 IPv4 場景,伺服器會返回一個 Ack,而對於 IPv6 場景,什麼也不會返回。在伺服器端,他們確認在這兩種情況下都會發回 Ack。

問題

  • 如果tcpdump沒有顯示這個數據包,是否意味著它沒有被接收到?
  • 如果此數據包已收到但“丟棄”,我如何找出(工具、方法)?

我不是 Linux 也不是網路專家,所以我可能會錯過一些瑣碎的提示。

謝謝,


Linux 版本 3.10.40

如果tcpdump沒有顯示這個數據包,是否意味著它沒有被接收到?

是的,就是這個意思。數據包擷取直接看到線上上接收到的內容。如果有防火牆/過濾器規則丟棄數據包,它仍會出現在數據包擷取中,然後會在稍後被丟棄。

很可能網路路徑上的其他地方正在過濾 ConfAck。您可以詢問 IPv6 情況下的 ConfAck 是否比 IPv4 情況下的 ConfAck 大得多。我不明白為什麼會這樣,但如果它更大,由於 MTU 問題,足以在途中需要碎片化,我想這可能會導致問題?

引用自:https://unix.stackexchange.com/questions/199146