一、PPPoE介绍

  • PPP在RFC1661中描述,是针对拨号连接的解决方案
  • PPP是一种分层的协议,物理层用来进行实际的点到点连接。由链路控制层(LCP)发起对链路的建立、配置和测试。 在LCP初始化完成后,通过一种或多种网络控制协议来传送特定协议族的通信
  • PPPoE是指在以太网上进行拨号因特网连接
  • PPPoE是目前使用最为广泛的广域网协议,因为其具有以下几个特征:
    • 能够控制数据链路的创建
    • 能够对 IP 地址进行分配和管理
    • 采用应用最广泛的以太网介质传输
    • 能够配置链路并对链路进行质量测试和错误检查

二、身份验证功能

  • PPPoE也支持身份验证,身份验证选项用于创建链路的发起方输入信息,用于确保发起方发起连接时拥有管理员的许可
  • 可供选择的验证方式有两种:
    • PAP(密码验证协议):以客户端明文方式传递用户名和密码,服务器和本身所存 储的密码进行比较验证。
    • CHAP(握手质询验证协议):服务器向客户端发送挑战消息,客户端使用密码和 挑战消息计算出请求值再次发送给服务器。服务器将请求消息和本地计算出的字符串进行 对比,如果符合则身份验证通过,否则拒绝下一步请求(CHAP 密码不在网络中明文传输,因此保证了密码不被泄漏。另外使用了不可预知的, 可变随机值来防止回放攻击)

CHAP 验证过程

OpenWrt开发:32---软件模块之PPPoE

  • 第一步:首先由客户端发起连接请求
  • 第二步:服务器收到连接请求后向客户端发送一个CHAP质询消息(服务器保存随机数和ID以便后续计算认证)。CHAP 质询消息包含以下内容:
    • 质询分组的类型标识符
    • ID:标识该质询分组的***
    • Random=随机数
    • 质询方的认证名
  • 第三步:客户端收到质询消息,并进行解析。解析完成后将***、随机数和口令连接到 一起并计算 MD5 值,这是一个单向 MD5 哈希值,不能从结果计算出原始值,但可以从 MD5 值来判断原始值是否正确。这个数值放在请求中当作认证信息发送给服务器。报文包含以下4部分内容:
    • 02:CHAP 回应分组类型标识符
    • ID:***,从质询分组中复制而来
    • Hash 字符串,随机值和口令的哈希值
    • 设备认证名称
  • 第四步:服务器收到带有认证的连接请求报文后,从***找出原始的质询随机数,将****、随机数及口令使用 MD5 算法计算哈希值。将自己计算的哈希值和客户端请求的哈 希值进行比较,如果一致则认证通过,否则认证失败
    • 认证成功消息包含以下 3 部分内容:
      • 03:CHAP 认证成功消息类型标识符。
      • ID:***,是会话的标识,直接从认证请求中复制而来
      • “Welcome in”:文本消息,表示认证通过
    • 如果认证失败,则发送认证失败消息,主要包含以下内容:
      • 04:CHAP 认证失败消息类型标识符
      • ID:***,是会话的标识,直接从认证请求中复制而来
      • “Authentication failure”:文本消息,表示认证失败。

三、PPPoE配置

  • 最典型的是用户名和密码,配置文件为/etc/ppp/chap-secrets,由用户名、提供者和密码3部分组成

OpenWrt开发:32---软件模块之PPPoE

  • 配置选项在/etc/ppp/options中

OpenWrt开发:32---软件模块之PPPoE

OpenWrt开发:32---软件模块之PPPoE

相关文章:

  • 2022-12-23
  • 2021-12-27
  • 2021-08-08
  • 2021-10-22
  • 2022-12-23
  • 2021-06-04
  • 2022-12-23
猜你喜欢
  • 2022-01-15
  • 2022-01-18
  • 2021-11-30
  • 2022-12-23
相关资源
相似解决方案