7.2、PPPoE原理与配置
- 前言
- 数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,人民通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议
- PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有适用范围广、安全性高、计费方便等特点
- 早期进行宽带上网时,我们使用的是DSL技术,使用现有的电话网络实现数字通信带宽技术,随着运营商的需求,运营商想要在接入设备能够提供访问控制的同时也能够实行计费的功能,后来运营商采用了PPPoE协议
- PPPoE协议
- PPP协议在以太网中的运用
- PPP协议拥有诸多的特点和优势,可以进行计费、控制等
- 所以我们采用PPPoE协议是在以太网上提供的点对点的连接,使得PPPoE具有良好的安全性、范围广、计费方便等特点。得到了良好的应用
- PPP协议在以太网中的运用
- PPPoE协议
- DSL应用场景
- DSL早期连接上网宽带技术
- 数字用户线路DSL是以电话线为传输介质的传输技术
- DSL是以现有的电话网络来实现数据通信的宽带技术
- 在使用DSL接入网络时,首先用户侧会安装一个调制解调器。调制解调器通过电话线接入DSL的DSLAM设备
- 数字用户线路接入服务器,与DSL进行相连
- DSLAM通过以太网将用户的数据流量转发给BRAS,再有BRAS传输给ISP网络中
- BRAS
- 宽带远程接入服务器
- BRAS
- 在使用DSL接入网络时,首先用户侧会安装一个调制解调器。调制解调器通过电话线接入DSL的DSLAM设备
- PPPoE在DSL中的应用
- 运营商希望通过同一台接入设备来了连接远程的多个主机,同时接入设备能够提供访问控制和计费功能。
- 在众多的接入过程中,想要将多个主机连入到接入设备,最经济的方法就是使用以太网
- 对于PPPoE,运营商、企业或者家庭用户路由器之间进行运行
- 运营商拥有一个PPPoE服务器连接BAS进行认证,当主机发出一个数据是一个纯的一台数据,通过路由器(PPPoE客户端)发出的就是PPPoE数据,一直到ISP网络也是PPPoE数据
- 在Modem和DSLAM之间是电话线
- 在DSLAM和PPPoE服务器之间是网线
- 我们可以通过服务器来进行认证和计费
- PPPoE报文
- PPPoE报文是使用Ethernet格式来进行封装
- PPPoE报文位置是处于数据链路层
- PPPoE报文
- DMAC
- SMAC
- Type
- PPPoE
- Ver
- PPPoE版本号
- Type
- 表示类型
- Type类型
- Code
- 表示PPPoE报文类型
- 报文分类有许多中,可以通过Code去进行识别
- 表示PPPoE报文类型
- Session ID
- 回话ID
- PPPoE回话通过源MAC地址、目的MAC地址和Session ID来确定唯一的会话
- Length
- 静负荷的长度
- PayLoad
- 静负荷
- Ver
- FCS
- PPPoE会话建立过程
- PPPoE会话建立
- 发现阶段
- 主要用来获取Session ID,通过Session ID同源MAC和目的MAC进行组成唯一的PPPoE会话
- 会话阶段
- 两部分
- PPP协商阶段
- PPP报文传输阶段
- PPP协议的LCP和NCP阶段
- 两部分
- 会话终结阶段
- 发现阶段
- PPPoE协议报文
- PPPoE通过这五种类型的报文来建立和终结PPPoE会话
- PADI
- 发现网络中的PPPOE服务器
- PADO
- PPPoE收到PADI报文后,会回复一个确认报文,即PADO报文
- PADR
- PPPOE客户端根据PADR报文,来回复服务器,与服务器建立会话
- PADS
- 服务器通过PPPOE的PADS报文,进行确认会话
- PADT
- 最后通过PADT报文发现终止报文
- PADI
- PPPoE报文类型可能不太好记忆,我们可以参照DHCP的协议报文来进行参考
- 对于PPPoE和DHCP的形成阶段很相似
- PPPoE发现阶段
- 客户端通过广播发送PADI报文来发现接入服务器
- RTA是客户端,客户端想要与服务器建立会话,需要去发现网络中的服务器。网络中可能有多个服务器,这是通过PADI报文去发现服务器,这时的PADI报文是一个广播包,类似于DHCP
- 所有的PPPoE服务器再收到PADI报文之后,将客户端请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复PADO报文
- RTA可能收到多个PADO报文,对于使用哪一个报文,是谁发过来的报文,可以使用PADO报文中的地址信息进行确认
- PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并单播发送一个PADR报文
- RTA发送一个PADR的单播报文去告诉服务器,我与你建立会话
- PPPoE服务器生成唯一的PPPoE Session ID,并发送PADS报文给客户端,会话建立成功
- 这时既有Session ID,并且源MAC地址和目的MAC地址都知道了,对于PPPoE唯一的会话就建立成功了
- PPPoE会话阶段
- 会话发现阶段建立成功以后,开始进行PPP协商,然后就可以进行传输数据
- PPPoE会话上的PPP协商和普通的PPP协商一致,分为LCP、认证、NCP三个阶段
- PPPoE会话的PPP协商成功后,就可以传输PPP数据
- PPPoE会话终结
- 当客户端结束使用网络,客户端就会发送PADT报文给服务器,告诉服务器会话进行中断,结束会话
- PADT报文用于通知对端PPPoE会话结束
- PPPoE会话建立过程
- PPPoE会话过程建立总结
- 首先是PPPoE的协商,即发现阶段
- 客户端通过PADI报文发现服务器
- 服务器给客户端发送PADO回复包
- RTA通过PADR报文确认使用服务器
- 服务器确认会话后给客户端发送一个PADS包含Session ID
- 此时会话建立已经成功
- 下面就开始PPP协商,使我们最终能够传输数据
- 首先进行LCP的协商
- LCP协商成功后,开始进行验证,验证采用CHAP验证
- 当经过三次握手验证成功之后,最后进行NCP网络层的协商,通过服务器获取到会话的IP地址和参数
- 首先是PPPoE的协商,即发现阶段
- PPPoE配置
- RTA配置
- 通过dialer-rule进入dialer-rule视图
- 在该视图下可以通过拨号的规则来配置发起PPPoE会话
- 我们需要为dialer-rule起一个名称(1),并允许通过IP进行拨号
- 接下来创建并进入一个dialer接口
- 配置dialer用户名
- 它配置一个组
- 主要是将接口置于拨号访问组
- 指定一个dialer口,使用dialer budle
- 通过dialer budle来通过和物理接口进行绑定
- 绑定dialer规则
- 配置一个chap认证
- 用户名
- 前面在dialer接口中配置了一个用户名,需要注意的是,这个名字要和服务器端的PPP用户一致
- 密码
- 用户名
- 配置dialer口的IP地址采用PPP的协商模式
- 通过dialer-rule进入dialer-rule视图
- RTA物理接口配置
- 进入接口模式
- 将dialer口和物理接口进行绑定
- on-demand
- 按需分配
- 当PPPoE建立成功以后,并不会马上发起PPPoE的呼叫,只有当有数据需要传输的时候,才会发起PPPoE的呼叫,建立PPPoE的会话。
- on-demand
- 最后建立一个静态路由,允许在路由表中流量都可以通过拨号接口发起PPPoE的会话
- 配置验证
- 查看协议状态和端口状态
- 查看LCP和IPCP是否开启
- 表示链路状态完全正常
- 检测客户端协商时的物理接口
- 包括状态是否空闲,PPPoE会话处于什么阶段,已经发送了什么报文等参数
- 总结
- PPPoE帧为什么要降低MTU大小?
- 对于普通的数据帧,它的MTU是1500个字节。而对于PPPoE帧中的MTU最大值是1492个字节
- PPPoE的头部长度是6个字节,而且我们是基于PPPoE的基础之上来封装的,所以还有一个PPPoE报头ID的长度也是两字节。所以加在一起需要多余出来8个字节
- 所以对于PPPoE真正的MTU是不能超过1492个字节
- 对于普通的数据帧,它的MTU是1500个字节。而对于PPPoE帧中的MTU最大值是1492个字节
- 在配置PPPoE时,dialer bundle命令的作用是什么?
- Dialer bundle命令的作用
- 指定dialer接口使用dialer bundle使用的规则,设备通过dialer bundle将我们的物理接口与拨号接口进行关联起来
- Dialer bundle命令的作用
- PPPoE帧为什么要降低MTU大小?