1. PPP over Ethernet 特征
- 把 PPP 帧封装到以太帧中的链路层协议,实现多层封装协议
- 在 PPPoE 中通过报文中 VER、Type、Code 字段标识该报文为 PPPoE 和报文类型
- 通过在 Ethernet_Type 字段进行标识 PPPoE 阶段
- 0x8863:Discovery 和 Terminate 阶段
- 0x8864:Session 阶段
- 常见的 Ethernet II Type 类型
- VER:表示 PPPoE 的版本号
- Type:表示 PPPoE 的类型
- Code:表示 PPPoE 的报文类型
2)PADO(提供报文)
将Client请求的服务与自身进行比对,如果可以提供则单播回复
3)PADR(请求报文)
Client 会选择最先收到 PADO 的报文进行单播请求
4)PADS(确认报文)
Client 和 Server 构建唯一的会话(由 MAC 确认 Session)
5)PADT(终止报文)
Client主动和Server关闭连接
3. PPPoE Session 建立过程
- PPPoE 建立过程:
- 发现阶段(Discovery):获取对方以太网地址,确定唯一的 PPPoE 会话,并得知对方的 MAC
- Client 广播发送一个 PADI 报文,此报文中包含 Client 想要得到的 Server 类型信息
- Server 收到 PADI 报文后,将其中请求的服务和自己能够提供的服务进行比较。如果可以提供,则单播回复 PADO 报文
- 如果网络中存在多个 Server,Client 会优先选择先收到 PADO 报文的 Server,并单播发送一个 PADR 报文进行请求
- Server 产生一个唯一的 Session ID,标识和这个 Client 建立了会话,并通过单播发送一个 PADS 报文把 Session ID 发送给 Client
- 会话阶段(Session):PPP 协商报文,在会话阶段都是单播发送
- PPPoE Session 协商与 PPP 的协商一致,协商成功后,就可以承载 PPP 数据报文
- 会话终结阶段(Terminate):PADT 数据包可以在会话建立以后的任意时刻单播发送
- Client 和 Server 之间通过 PADT 报文来结束 PPPoE 链接,发送或接收到 PADT 后,就不允许在使用该 Session 的 PPP 流量
- 发现阶段(Discovery):获取对方以太网地址,确定唯一的 PPPoE 会话,并得知对方的 MAC
- PPPoE Session 建立过程:
- MTU/MSS:
- MTU
- 接口上送出的三层转发报文大于 MTU 值且报文被设置为不可分片时,会导致报文无法发送出去,出现用户上网网速慢的情况
- 在以太网和 IP 之间一定会增加 8 字节(6 字节的 PPPoE + 2 字节的PPP),所以实际 MTU 为 1500 - 8 = 1492
- MSS
- 修改 TCP 协商阶段协商的 MSS 大小,使报文长度小于拨号口的 MTU 值,保证报文能被正常处理,解决上网网速慢的问题
- MTU
- DNS:缺省情况下,Client 不会主动请求或被动接收 Server 分配的 DNS Server 地址
- 静态默认路由:因为 dialer 接口是 PPP 点到点接口,可以直接定义到接口