PPPoE,全称 Point-to-Point Protocol over Ethernet,即“以太网上的点对点协议”。它是在以太网基础上,将点对点协议(PPP)封装的一种网络协议,常用于宽带上网,尤其是家庭和小型企业用户通过ADSL或光纤接入互联网的场景。
简单理解:
PPPoE的报文格式就是被封装在以太帧中的PPP报文,报文格式如下:

PPPoE报文字段说明

PPPoE可分为三个阶段,即Discovery(发现)阶段、Session(会话)阶段和Terminate(终止)阶段。其中会话阶段又分为LCP协商、CHAP/PAP认证、NCP协商、客户端上线四个部分。
PPPoE各阶段时序如下图所示:

图3.1

图3.2

说明:
1. 路由器R1是拨号上网的客户端设备,G0/0/0连接运营商设备,通过拨号自动获取IP地址;G0/0/1是内网接口且为内网终端上网的网关。
2. 路由器ISP模拟运营商设备,作为PPPoE的服务端,是路由器R1的默认网关。
3. SW1是傻瓜交换机,无需任何配置。
4. PC1和PC2是内网终端设备。
4.2 实验目标
路由器R1通过PPPoE拨号成功,且PC1和PC2能通过路由访问ISP的IP地址
192.168.1.0/24acl number 2000
rule 5 permit source 192.168.1.0 0.0.0.255
interface Dialer1
link-protocol ppp
ppp chap user user1
ppp chap password cipher pwd@123
#或使用PAP认证,根据对端配置决定
#ppp pap local-user user1 password cipher pwd@123
ppp ipcp dns admit-any # 配置PPPoE Client被动地接收PPPoE Server指定的DNS服务器地址
ppp ipcp dns request # 配置PPPoE Client主动向PPPoE Server请求DNS服务器地址
mtu 1492
tcp adjust-mss 1200 # 配置接口的TCP最大报文段长度
ip address ppp-negotiate
dialer user user1 # 使能共享DCC功能,指定拨号时使用的用户名
dialer bundle 1 # 指定Dialer接口使用的Dialer bundle
dialer-group 1 # 配置接口所属的拨号访问组
dialer timer idle 0
dialer timer autodial 60
nat outbound 2000 # 配置此接口作为 NAT 出接口
interface GigabitEthernet0/0/0
pppoe-client dial-bundle-number 1
interface GigabitEthernet0/0/1
ip address 192.168.1.1 255.255.255.0
dialer-rule
dialer-rule 1 ip permit
# dialer-rule 1 acl 2000
ip route-static 0.0.0.0 0.0.0.0 Dialer1
ip pool pppoe
gateway-list 120.0.12.1
network 120.0.12.0 mask 255.255.255.0
dns-list 8.8.8.8 114.114.114.114
aaa
local-user user1 password cipher pwd@123
local-user user1 service-type ppp
interface Virtual-Template1
ppp authentication-mode chap
# ppp authentication-mode pap
remote address pool pppoe
ip address 120.0.12.1 255.255.255.0
interface GigabitEthernet0/0/0
pppoe-server bind Virtual-Template 1
4.4 结果验证
在R1上查看PPPoE会话:

查看R1路由器获取到的公网IP地址:

在ISP设备上查看PPPoE会话:

在ISP设备上查看IP地址池IP使用情况:

PC1上ping路由器ISP的IP地址,在R1上查看NAT会话:

重置PPPoE会话相关命令:
R1路由器(客户端)
<R1>reset pppoe-client dial-bundle-number 1
<R1>reset pppoe-client all
ISP路由器(服务端)
<ISP>reset pppoe-server virtual-template 1
<ISP>reset pppoe-server interface g0/0/0
<ISP>reset pppoe-server all
此次的分享就到这里了,喜欢的朋友点个关注相互交流学习。

· · · · · END · · · · ·