本文最后更新于 2024-08-28,文章内容可能已经过时。

🧑‍💻PPP 协议工作流程

链路层协商

通过 LCP 报文协商链路层相关参数,建立链路层的连接

认证协商(可选)

PAP(密码认证协议):

  • 采用两次握手机制

  • 用户名和密码是以明文的方式进行发送

  • 由客户端主动发起

支持双向验证

CHAP(挑战握手认证)

  • 采用三次握手认证

  • 在网络上只传输用户名,密码是被保护的

  • 由服务端主动发起认证

  • 支持双向验证

网络层协商

通过 NCP 报文协商网络层相关参数,动态协商和分配 IP 地址,会在对端的路由表中插入一条直连路由信息

静态 IP 地址的协商:需要手动在链路两端配置 IP 地址,会进行地址互推,

动态 IP 地址的协商:支持 PPP 链路的一端给对端分配 IP 地址

⚙️PPP 配置

思科:

PAP 认证:

//服务端
R13(config)#USERname r14 password 123
R13(config)#int s1/1
R13(config-if)#ip address 202.101.34.3 255.255.255.0
R13(config-if)#encapsulation ppp
R13(config-if)#ppp authentication pap
R13(config-if)#peer default ip address 202.101.34.4
R13(config-if)#no shutdown 
// 客户端
R14(config)#int s1/0
R14(config-if)#encapsulation ppp
R14(config-if)#ppp pap sent-username r14 password 123
R14(config-if)#ip address negotiated 
R14(config-if)#ppp ipcp route default 
R14(config-if)#no shutdown 

CHAP 认证:

//服务端
R13(config)#username r12 password 123
R13(config)#int s1/0
R13(config-if)#encapsulation ppp
R13(config-if)#ppp authentication chap 
R13(config-if)#ip address 202.101.23.3 255.255.255.0
R13(config-if)#peer default ip address 202.101.23.2              
R13(config-if)#no shutdown 
// 客户端
R12(config)#int s1/0
R12(config-if)#encapsulation ppp
R12(config-if)#ppp chap hostname r12
R12(config-if)#ppp chap password 123
R12(config-if)#ip address negotiated 
R12(config-if)#ppp ipcp route default 
R12(config-if)#no shutdown 

PPPoE 协议

PPPoE(Point-to-Point Protocol over Ethernet)可以称作为以太网上的 PPP 协议,应用在链路层。它通过在以太网上提供点到点的连接,建立 PPP 会话,封装 PPP 报文为 PPPoE 报文。PPPoE 技术可以将用户连接到远程接入设备上,并提供良好访问控制功能,提供了一种经济的用户接入技术。
PPPoE 利用以太网络,提供远程的多个用户主机接入功能,并且能够提供数据传输的出入报文数、字节数以及连接的起始、结束时间等计费数据,解决用户上网收费等实际应用问题,因而被广泛应用于接入运营商网络。

PPPoE 报文

  • 0x09 PADI PPPoE Active Discovery Initiation,PPPoE 激活发现起始报文

  • 0x07 PADO PPPoE Active Discovery Offer,PPPoE 激活发现服务报文

  • 0x19 PADR PPPoE Active Discovery Request,PPPoE 激活发现请求报文

  • 0x65 PADS PPPoE Active Discovery Session-confirmation,PPPoE 激活发现会话确认报文

  • 0xa7 PADT PPPoE Active Discovery Terminate,PPPoE 激活发现终止报文

🗨️PPPoE 会话建立过程

PPPoE 发现阶段

实现用户接入,创建 PPPoE 虚拟链路,确定唯一的 PPPoE 会话(session id)

PPPoE 会话阶段

PPP 协商:

  • LCP 协商

  • 认证协商

  • NCP 协商

PPPoE 终结阶段

PPPoE 断开: 如果客户端或者服务端任意一端想要关闭连接的时候,会向对方发送一个 PADT 报文(session id),用于连接的关闭

🛠️PPPoE 配置

思科:

ISP(config)#username r1 password 123

ISP(config)#interface virtual-template 1
ISP(config-if)#ip address 202.101.12.2 255.255.255.0
ISP(config-if)#encapsulation ppp
ISP(config-if)#ppp authentication pap
ISP(config-if)#peer default ip address pool r1

ISP(config)#bba-group pppoe a
ISP(config-bba-group)#virtual-template 1
ISP(config-bba-group)#exit

ISP(config)#int e0/0
ISP(config-if)#pppoe enable group a
ISP(config-if)#no shu
ISP(config-if)#no shutdown 




R1(config)#interface dialer 1
R1(config-if)#encapsulation ppp
R1(config-if)#ppp pap sent-username r1 password 123
R1(config-if)#ip address negotiated 
R1(config-if)#ppp ipcp route default 
R1(config-if)#dialer pool 1
R1(config-if)#exit

R1(config)#int e0/0
R1(config-if)#pppoe enable 
R1(config-if)#pppoe-client dial-pool-number 1
R1(config-if)#no shutdown 

🧸参考文献

什么是 PPPoE?PPPoE 解决了哪些问题? - 华为 (huawei.com)