PPPoE原理与配置
数字用户线路 DSL(Digital Subscriber Line) 是以 电话线 为传输介质的传输技术,人们通常把所有的 DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL 是 非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议。
DSL技术原理
DSL是一种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装 调制解调器,然后通过现有的电话线与数字用户线路接入复用器(DSLAM)相连。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备。然后,通过 高速ATM网络或者以太网 将用户的数据流量转发给 宽带远程接入服务器(BRAS)。BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。
PPPoE原理
-
基本原理
问题:如何通过一台接入设备使多个主机接入网络呢?
PPPoE利用以太网将大量主机组成网络,通过 一个远端接入设备 连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用 范围广、安全性高、计费方便 的特点。
-
PPPoE报文
-
- PPPoE报文是使用Ethernet格式来进行封装的。
- 特殊字段解释:
- Type:表示协议类型字段,当值为 0x8863 时表示承载的是 PPPoE发现阶段的报文。当值为 0x8864 时表示承载的是 PPPoE会话阶段的报文。
- VER:表示PPPoE版本号,值为0x01。
- Code:表示PPPoE报文类型,不同取值标识 不同的PPPoE报文类型 。
- PPPoE会话ID,与以太网SMAC和DMAC一起定义了一个PPPoE会话。
- Length:表示PPPoE报文的Payload长度,不包括以太网头部和PPPoE头部的长度。
-
PPPoE协议报文
PPPoE通过这五种类型的报文来建立和终结PPPoE会话:
- PADI(PPPoE Active Discovery Initiation)报文:用户主机发起的PPPoE服务器探测报文,目的MAC地址为广播地址。
- PADO(PPPoE Active Discovery Offer)报文:PPPoE服务器收到PADI报文之后的回应报文,目的MAC地址为客户端主机的MAC地址。
- PADR(PPPoE Active Discovery Request)报文:用户主机收到PPPoE服务器回应的PADO报文后,单播发起的请求报文,目的地址为此用户选定的那个PPPoE服务器的MAC地址。
- PADS(PPPoE Active Discovery Session Configuration)报文:PPPoE服务器分配一个唯一的会话进程ID,并通过PADS报文发送给主机。
- PADT(PPPoE Active Discovery Terminate)报文:当用户或者服务器需要终止会话时,可以发送这种PADT报文。
-
PPPoE会话建立过程
PPPoE会话建立过程分为 PPPoE协商 和 PPP协商
- 用户客户端向服务器发送一个PADI报文,开始PPPOE接入。(广播形式)
- 服务器向客户端发送PADO报文,客户端可能会收到来自多个服务器的PADO报文。
- 在接收到的所有PADO报文中,PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并发送一个PADR报文给这个服务器。
- 服务器产生一个Session ID,通过PADS发给客户端。
- 客户端和服务器之间进行PPP的LCP协商,建立链路层通信。同时,协商使用CHAP认证方式。
- 服务器通过Challenge报文发送给认证客户端,提供一个128bit的Challenge。
- 客户端收到Challenge报文后,并将密码和Challenge做MD5算法运算后,在Response回应报文中把结果发送给服务器。
- 服务器根据用户发送的信息判断用户是否合法,然后回应认证成功/失败报文,将认证结果返回给客户端。
- 进行NCP(如IPCP)协商,通过服务器获取到规划的IP地址等参数。
PPPoE配置
[RTA]dialer-rule
// 进入Dialer-rule视图,在该视图下,可以通过拨号规则来配置发起PPPoE会话的条件 [RTA-dialer-rule]dialer-rule 1 ip permit [RTA-dialer-rule]quit [RTA]interface dialer 1 // 创建并进入Dialer接口 [RTA-Dialer1]dialer user enterprise // 配置对端用户名,这个用户名必须与对端服务器上的PPP用户名相同 [RTA-Dialer1]dialer-group 1 // 将接口置于一个拨号访问组 [RTA-Dialer1]dialer bundle 1 // 设备通过Dialer bundle将物理接口与拨号接口关联起来 [RTA-Dialer1]ppp chap user enterprise@huawei // 配置PPP用户 [RTA-Dialer1]ppp chap password cipher huawei123 [RTA-Dialer1]ip address ppp-negotiate // 配置PPP协商
[RTA]interface GigabitEthernet 0/0/1 [RTA-GigabitEthernet0/0/1]pppoe-client dial-bundle-number 1 on-demand
// 实现Dialer Bundle和物理接口的绑定,用来指定PPPoE会话对应的Dialer Bundle [RTA-GigabitEthernet0/0/1]quit [RTA]ip route-static 0.0.0.0 0 dialer 1
// 允许在路由表中没有相应匹配表项的流量都能通过拨号接口发起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
[RTA]display pppoe-client session summary PPPoE Client Session: ID Bundle Dialer Intf Client-MAC Server-MAC State 0 1 1 GE0/0/1 54899876830c 000000000000 IDLE
[RTA]display pppoe-client session summary PPPoE Client Session: ID Bundle Dialer Intf Client-MAC Server-MAC State 1 1 1 GE0/0/1 00e0fc0308f6 00e0fc036781 UP
State表示PPPoE会话的状态,包括以下四种:
1. IDLE表示当前会话状态为空闲。
2. PADI表示PPPoE会话处于发现阶段,并已经发送PADI报文。
3. PADR表示PPPoE会话处于发现阶段,并已经发送PADR报文。
4. UP表示PPPoE会话建立成功。