企业和家庭网络拨号上网技术-PPPoE原理和配置
- 数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,人们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议。
- PPPoE协议通过在以太网上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有适用范围广、安全性高、计费方便等特点。
?DSL应用场景
- 数字用户线路DSL是以电话线为传输介质的传输技术。?
- DSL是一种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装调制解调器,然后通过现有的电话线与数字用户线路接入复用器(DSLAM)相连。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备。
- 然后,DSLAM通过高速ATM网络或者以太网将用户的数据流量转发给宽带远程接入服务器(BRAS)。BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。
PPPoE在DSL中的应用
- ?运营商希望通过同一台接入设备来连接远程的多个主机,同时接入设备能够提供访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
- PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
- PPPoE技术解决了用户上网收费等实际应用问题,得到了宽带接入运营商的认可并被广泛应用。
PPPoE报文?
?
- PPPoE报文是使用Ethernet格式来进行封装的。
- PPPoE报文是使用Ethernet格式进行封装的,Ethernet中各字段解释如下:
PPPoE会话建立过程?
- PPPoE可分为三个阶段,即发现阶段、会话阶段和会话终结阶段。
PPPoE协议报文?
?
- ?PPPoE通过这五种类型的报文来建立和终结PPPoE会话。
PPPoE发现阶段?
?
- ?客户端通过广播发送PADI报文来发现接入服务器。
- 在发现阶段,PPPoE客户端在本地以太网中广播一个PADI报文,此PADI报文中包含了客户端需要的服务信息。在PADI报文中,目的MAC地址是一个广播地址,Code字段为0x09,Session ID字段为0x0000。所有PPPoE服务器收到PADI报文之后,会将报文中所请求的服务与自己能够提供的服务进行比较。
?
- 所有的PPPoE 服务器在收到PADI报文之后,将客户端请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复PADO报文。?
- 如果服务器可以提供客户端请求的服务,就会回复一个PADO报文。客户端(RTA)可能会收到多个PPPoE服务器发送的PADO报文。在PADO报文中,目的地址是发送PADI报文的客户端MAC地址,Code字段为0x07,Session ID字段为0x0000。
?
- PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并单播发送一个PADR报文。?
- 因为PPPoE客户端是以广播的形式发送PADI报文,所以客户端可能会收到多个PADO报文。在接收到的所有PADO报文中,PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并发送一个PADR报文给这个服务器。在PADR报文中,目的地址是选中的服务器的MAC地址,Code字段为0x19,Session ID字段为0x0000。?
?
- PPPoE服务器生成唯一的PPPoE Session ID,并发送PADS报文给客户端,会话建立成功。?
- PPPoE服务器收到PADR报文后,会生成一个唯一的Session ID来标识和PPPoE客户端的会话,并通过一个PADS报文把Session ID发送给PPPoE客户端。在PADS报文中,目的地址是PPPoE客户端的MAC地址,Code字段为0x65,Session ID字段是PPPoE服务器为本PPPoE会话产生的Session ID。会话建立成功后,PPPoE客户端和服务器进入PPPoE会话阶段。
PPPoE会话阶段
?
- PPPoE会话上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
- PPPoE会话的PPP协商成功后,就可以传输PPP数据。
- PPPoE会话阶段可分为两部分:PPP协商阶段和PPP报文传输阶段。
?
PPPoE会话终结?
- PADT报文用于通知对端PPPoE会话结束。?
- 当PPPOE客户端希望关闭连接时,可以向PPPOE服务器端发送一个PADT报文。同样,如果PPPOE服务器端希望关闭连接时,也可以向PPPOE客户端发送一个PADT报文,此报文用于关闭连接。
- 在PADT报文中,目的MAC地址为单播地址,Session ID为希望关闭的连接的Session ID。一旦收到一个PADT报文之后,连接随即关闭。
PPPoE会话建立过程
?
?
- 用户客户端向服务器发送一个PADI报文,开始PPPOE接入。
- 服务器向客户端发送PADO报文。
- 客户端根据回应,发起PADR请求给服务器。
- 服务器产生一个Session ID,通过PADS发给客户端。
- 客户端和服务器之间进行PPP的LCP协商,建立链路层通信。同时,协商使用CHAP认证方式。
- 服务器通过Challenge报文发送给认证客户端,提供一个128bit的Challenge。
- 客户端收到Challenge报文后,并将密码和Challenge做MD5算法运算后,在Response回应报文中把结果发送给服务器。
- 服务器根据用户发送的信息判断用户是否合法,然后回应认证成功/失败报文,将认证结果返回给客户端。
- 进行NCP(如IPCP)协商,通过服务器获取到规划的IP地址等参数。
PPPoE配置
?
?
[RTA]dialer-rule
[RTA-dialer-rule]dialer-rule 1 ip permit
[RTA-dialer-rule]quit
[RTA]interface dialer 1
[RTA-Dialer1]dialer user enterprise
[RTA-Dialer1]dialer-group 1
[RTA-Dialer1]dialer bundle 1
[RTA-Dialer1]ppp chap user enterprise@huawei
[RTA-Dialer1]ppp chap password cipher huawei123
[RTA-Dialer1]ip address ppp-negotiate
- PPPoE客户端配置包括三个步骤
- 首先需要配置一个拨号接口
- dialer-rule命令用于进入Dialer-rule视图,在该视图下,可以通过拨号规则来配置发起PPPoE会话的条件
- interface dialer number命令用来创建并进入Dialer接口
- dialer user user-name命令用于配置对端用户名,这个用户名必须与对端服务器上的PPP用户名相同
- dialer-group group-number命令用来将接口置于一个拨号访问组。
- dialer bundle?number命令用来指定Dialer接口使用的Dialer bundle。设备通过Dialer bundle将物理接口与拨号接口关联起来。
- 第二个步骤是在接口上将Dialer Bundle和接口绑定:
- pppoe-client dial-bundle-number number命令来实现Dialer Bundle和物理接口的绑定,用来指定PPPoE会话对应的Dialer Bundle,其中number是与PPPoE会话相对应的Dialer Bundle编号。on-demand表示PPPoE会话工作在按需拨号模式。AR2200支持报文触发方式的按需拨号。目前ARG3系列路由器支持的按需拨号方式为报文触发方式,即当物理线路Up后,设备不会立即发起PPPoE呼叫,只有当有数据需要传送时,设备才会发起PPPoE呼叫,建立PPPoE会话。
- 第三个步骤是配置一条缺省静态路由,该路由允许在路由表中没有相应匹配表项的流量都能通过拨号接口发起PPPoE会话。
?配置验证
<RTA>display interface Dialer 1
Dialer1 current state: UP
Line protocol current state: UP (spoofing)
Description: HUAWEI, AR Series, Dialer1 Interface
Route Port, The Maximum Transmit Unit is 1500, Hold timer is 10(sec)
Internet Address is negotiated, 192.168.10.254/32
Link layer protocol is PPP
LCP initial
Physical is Dialer
Bound to Dialer1:0:
Dialer1:0 current state : UP
Line protocol current state : UP
Link layer protocol is PPP
LCP opened, IPCP opened
- display interface dialer[?number?]命令用于查看拨号接口的配置,便于定位拨号接口的故障。
- LCP opened, IPCP opened表示链路的状态完全正常。
?
- display pppoe-client session summary命令用于查看PPPoE客户端的PPPoE会话状态和统计信息。
- 本节给出了两个例子来说明不同的PPPoE会话状态。
- ID表示PPPoE会话ID,Bundle ID和Dialer ID的值与拨号参数配置有关。
- Intf表示客户端侧协商时的物理接口。
- State表示PPPoE会话的状态,包括以下四种:
本章总结
问:PPPoE帧为什么要降低MTU大小?
答:以太网中默认最大支持1500字节的有效载荷。PPPoE头部长度为6字节,PPP协议ID长度为2字节,所以PPPoE帧中的MTU不能超过1492字节。
问:在配置PPPoE时, dialer bundle命令的作用是什么?
答:dialer bundle命令用来指定Dialer接口使用的Dialer bundle。设备通过Dialer bundle将物理接口与拨号接口关联起来。
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!