捕获传出的 pppoe 请求

捕获传出的 pppoe 请求

我的 ISP 提供基于 PPPOE 的拨号器,客户端使用拨号器拨号。经过身份验证 (PAP) 后,计算机连接到互联网。

当我尝试使用过滤器“eth.dst == my_pppoe_access_concentrator_mac_address”在 wireshrk 中查看数据包时,我没有看到任何数据包。

有趣的是,我只看到我的 NIC 发送到访问集中器(服务器)的数据包。为什么?

为什么wireshark无法获取别人发到AC的数据包?

答案1

好的,通常当我尝试捕获 PPP 流量(查看一切是否正常 PADI / PADO / PADR / PADS )时,您会在 wireshark 中使用以下过滤器:

(eth.type == 0x8863 或 eth.type == 0x8864)

在 tcpdump 中它将是:

tcpdump ether[0x0c:2] == 0x8863 或 ether[0x0c:2] == 0x8864

如果 PADO 和 PADS 消息中存在 AC 的 MAC 地址,则将“正常”产生此结果。

如果这不起作用或出现您所说的情况,请回答以下问题:

  • 您的跟踪是在哪里捕获的(Linux 接口/网络中的分接点/...)?

  • 您的最终目标是什么?由于身份验证成功,我没有发现任何问题,那么为什么需要进行故障排除?

  • 您是否看到来自 ISP 的身份验证确认 (pap-code 2)?

  • 是否有理由假设基于 PPPOE 的拨号器具有自定义的 PPPOE 协议实现?

答案2

请看这里对不同操作系统的解释: PPP 捕获设置

我假设你正在使用 Linux,以下是相关部分:

Linux

在 Linux 上,您无法以常规方式(通过 libpcap)捕获 PPP 控制协议流量,因为该流量未提供给网络堆栈。例如,您将能够捕获 IP 流量,但无法看到 PPP 标头,因为 PPP 代码不会将它们提供给网络堆栈。

可以通过配置 ppp 守护进程以将其发送和接收的所有数据“记录”到捕获文件中来捕获 PPP 控制协议流量。然后可以使用 Wireshark 显示创建的捕获文件。

在 Fedora Core 6 上,如果在 /etc/ppp/options 中添加了“record filename-of-your-choice”一行(YMMV:参见“man pppd”),则会创建 pppd 捕获文件。

请注意,PPP 端口上的所有流量都会被捕获到文件中,因此,如果保留此选项,可能会导致生成较大的捕获文件。

相关内容