PPPoE(Point-to-Point Protocol over Ethernet)的关键点和测试要点
一、关键点
1. 协议结构
发现阶段(Discovery Stage):通过广播交互 `PADI`、`PADO`、`PADR`、`PADS` 报文,建立客户端与服务器的会话标识(Session ID)。
会话阶段(Session Stage):基于 PPP 协议进行数据传输,包括 LCP(链路控制协议)、认证(PAP/CHAP/EAP)、NCP(网络控制协议,如 IPCP 分配 IP 地址)。
2. 认证机制
PAP:明文传输用户名和密码,安全性低。
CHAP:基于挑战-响应机制,安全性高。
EAP:扩展性强,支持多种认证方式(如 EAP-TLS、EAP-SIM)。
3. MTU 限制
PPPoE 头部占用 8 字节,导致有效 MTU 为 `1492`(标准以太网 MTU 为 1500)。
需处理分片问题,避免因 MTU 不匹配导致数据包丢失或性能下降。
4. 多会话管理
同一账号是否允许重复登录(运营商通常禁止)。
客户端并发会话数限制(如单用户多拨)。
5. 网络拓扑适配性
跨 VLAN、中继设备(如交换机/路由器)时的协议透传能力。
二、测试要点
1. 功能测试
发现阶段:
- 验证客户端能否正确发送 `PADI`,服务器能否响应 `PADO`,并最终建立会话(`PADS`)。
- 测试会话超时机制(如未完成认证时会话自动终止)。
会话阶段:
- LCP 协商:验证链路参数(MTU、认证协议)协商是否正常。
认证流程:
- PAP/CHAP/EAP 认证的正确性。
- 错误凭证的拒绝能力(如密码错误、账号不存在)。
NCP 阶段:验证 IP 地址分配(IPCP)、DNS 配置等。
断开连接:测试正常终止(`PADT` 报文)和异常断线(如物理断开)后的资源释放。
2. 性能测试
连接建立时间:从发送 `PADI` 到完成 IP 分配的总耗时(通常需 < 2 秒)。
吞吐量与延迟:
- 测试不同 MTU 下的数据传输效率。
- 验证高负载场景(如视频流、大文件传输)的稳定性。
最大并发会话数:测试服务器支持的并发 PPPoE 会话上限。
长时间稳定性:持续运行 24~72 小时,检测内存泄漏或会话异常。
3. 兼容性测试
设备兼容性:不同厂商的客户端/服务器(如华为/思科/中兴)互通性。
操作系统支持:Windows、Linux、路由器固件(如 OpenWRT)的兼容性。
认证服务器兼容性:与 RADIUS 服务器(如 FreeRADIUS)的集成测试。
4. 安全性测试
抗攻击能力:
- 防御 `PADI` 泛洪攻击(DoS)。
- 检测会话劫持(Session Hijacking)的防护机制。
认证安全性:
- CHAP 是否有效防止重放攻击。
- PAP 场景下是否支持加密隧道(如 PPPoE over VPN)。
5. 可靠性测试
断线重连:网络中断恢复后,客户端自动重连能力。
异常场景:
- 服务器无响应时客户端的超时重试机制。
- 心跳检测(Keepalive)是否有效维持会话。
日志与诊断:验证错误日志记录(如认证失败、会话超时)的准确性。
三、工具推荐
功能测试:Wireshark(抓包分析)、RADIUS 测试工具(如 radtest)。
性能测试:Ixia、Spirent 网络测试仪。
自动化测试:Python + Scapy(模拟 PPPoE 报文)。
四、PPPOE帧结构
PPPoE 头部占用 8 字节,导致有效 MTU 为 `1492`(标准以太网 MTU 为 1500)
4 + 4 + 8 + 16 + 16 + 16 = 64 bit = 8字节


五、报文
1、发现阶段
1.1 PADI


1.2 PADO

1.3 PADR

1.4 PADS

2、会话阶段
2.1 LCP



2.2 认证

2.3 NCP(网络控制协议,如 IPCP 分配 IP 地址)


1820

被折叠的 条评论
为什么被折叠?



