我的智能手机设备和数据包监控出现问题:我正在尝试查找无法通过 PPTP 协议建立 VPN 连接的原因。
我有以下成功场景:
- 使用 IPv4 设置的设备
- 连接 VPN 正常
现在是一个失败的场景:
- 使用 IPv6 设置的设备
- 连接 VPN 失败(30 秒超时后)
我检查tcpdump
结果并发现以下内容:在建立连接的交换过程中,IPv6 和 IPv4 场景都是相同的,直到我的设备向服务器发送“PPP LCP 配置请求”。
然后,对于 IPv4 场景,服务器会返回 Ack,而对于 IPv6 场景,服务器不会返回任何内容。在服务器端,他们确认在这两种情况下都会发回 Ack。
问题
- 如果
tcpdump
没有显示此数据包,是否表示尚未收到该数据包? - 如果这个数据包已收到但“丢弃”,我怎样才能找到(工具、方法)?
我既不是 Linux 专家,也不是网络专家,所以我可能会错过一些琐碎的提示。
谢谢,
Linux 版本 3.10.40
答案1
如果
tcpdump
没有显示此数据包,是否表示尚未收到该数据包?
是的,就是这个意思。数据包捕获可以直接查看线路上接收到的内容。如果有防火墙/过滤器规则丢弃数据包,它仍会显示在数据包捕获中,然后稍后会被丢弃。
很可能网络路径上的其他地方正在过滤 ConfAck。您可以询问 IPv6 情况下的 ConfAck 是否比 IPv4 情况下的 ConfAck 大得多。我不明白为什么会这样,但如果它更大,足以因 MTU 问题而需要在途中某个地方产生碎片,我想这可能会导致问题?