PPP
PPPoE = PPP Over Ethernet
满足不同宽带上网设备(拨号、无线、有线电视等)
实现PPP在以太网上的传输
实质是在共享介质的网络中提供一条逻辑上的点到点链路(Session ID);
PPPoE主要协议标准:RFC2516;
PPPoE结构:C/S结构,
客户端:拨号软件
服务器端:电信端,集中访问控制器
PPPoE分成两个阶段:
-
1.PPPoE( Discovery )发现阶段;
-
2.PPPoE会话阶段;
-
3.PPPOE会话终止;
PPPOE发现阶段数据报文
PADI(PPPOE发现初始报文)
PADO(PPPOE发现提供报文)
PADR(PPPOE发现请求报文)
PADS(PPPOE发现会话确认报文)
PADT(PPPOE发现终止报文)
PPPOE发现阶段数据报文
-
客户端广播一PADI(I = Initiation)请求,查找网络中的服务器;
-
器端响应一PADO(O = Offer),将自己的一些信息告知客户端;
-
客户端向此服务器发送一PADR(R = Request),请求会话号;
-
服务器端响应一PADS(S = Session-confirmation),将分配的会话号告知对方。
至此,PPPoE会话建立。后续可以进行PPP的协商了
PPPOE帧结构
•PPPOE帧结构
–Discovery阶段:以太网帧的ETHER_TYPE域都设置为0x8863。
–PPP会话阶段: 以太网帧的ETHER_TYPE域都设置为0x8864。
–PPPoE的payload部分包含0个或多个TAG,一个TAG是一个TLV(type-length-value)结构,TAG_TYPE域为16位值(网络字节序)
更详细的PPPOE的介绍:看另一篇笔记
实验
上图是一张完整的拓扑,分为本地ppp认证服务(左)和AAA+PPPOE远程认证(右)
本地PPP认证服务
现在这两台客户端没有IP地址,无法上网,需要进行PPPOE拨号连接到PPPOE服务器,有服务器下发IP地址,转发流量
流量的走向如下
配置的步骤
-
创建bba-group,设置拨号组,拨号虚拟接口;
-
创建virtual-template,拨号用户地址池,数据封装方式,
-
拨号接入物理接口开启pppoe并指定用户所属拨号组
-
创建用于PPPOE接入本地用户账号、密码;
-
创建用于PPPOE接入用户IP地址池;
-
设置外网路由;
//创建bba-group,设置拨号组
Router(config)# bba-group pppoe wxit
//拨号虚拟接口
Router(config-bba-group)# virtual-template 1
//创建virtual-template 虚拟访问接口(以太网仿真拨号)
Router(config)# interface virtual-template 1
Router(config-if)# ip unnumbered interface fa 0/0
//pppoe接入口
Router(config-if)#ppp authentication chap
Router(config-if)# peer default ip address pool pppoe
//创建用于PPPOE接入用户IP地址池
Router(config