大分部ISP(Internet服务提供商)在网络上使用PPPoE(Point to Point Over Ethernet,以太网上的点对点协议)来验证用户的计算机。大家在家里上网的时候会进行ADSL拨号连接,中小型公司的路由器进行ADSL连接,使用的都是PPPoE协议。今天为大家讲解一下PPPoE的基本原理、演示如何在思科路由器上配置服务器和客户端,以及在Windows操作系统上配置客户端。


PPPoE概述:

PPPoE是一个二层协议,用于把PPP的数据帧封装在以太网帧中。借助PPP的优势,可以很好地实现认证、会话检测、计费等,主要用于运营商及小区宽带。



PPPoE基本原理:

PPPoE分为控制层面和数据层面,控制层面就是如何建立PPPoE会话,如何进行用户的认证,而数据层面就是我们数据包的转发。PPPoE在控制层面分为两个阶段,第一阶段是Discovery(发现)阶段,第二阶段是会话建立阶段。


第一阶段:

发现阶段的主要目的就是寻找PPPoE服务器,此时的以太网类型是0x8863.此阶段分为4个步骤:

1.客户端(PC或路由器)广播一个PPPoE Active Discovery Initiantion(PADI)报文,源MAC地址是它自己的MAC地址,目标MAC地址是全F的广播MAC地址。

2.PPPoE服务器发送一个PPPoE Active Discovery Offer报文(PADO),描述它能提供哪些服务。目标MAC是客户端的MAC地址。

3.PPPoE客户端发送一个单播PPPoE Active Discovery Request报文(PADR)给PPPoE服务器。

4.PPPoE服务器发送一个单播PPPoE Acitve Discovery Session-confirm报文(PADS)给客户端。这是一个确认报文,会话建立完成。

当发现阶段完成后,PPPoE客户端和被选择的PPPoE服务器具有用来在以太网上建立PPP连接的信息。这时候开始PPP建立过程,包括LCP和NCP过程。


第二阶段:

第二阶段是PPPoE的会话阶段,以太网类型是0x8864,这一阶段会完成PPP的建立,在建立完成中最重要的是完成认证,基本上有两种认证协议,包括PAP和CHAP。


PPPoE的报文封装:

wKiom1W5x5rRWS33AADIrg0xV-o066.jpg

PPPoE报文(发现阶段)

wKiom1W5x7_i3NkbAALOKuDk6U0802.jpg

PPPoE报文(会话阶段)

wKiom1W5x9GBaSoxAANL7p3t_Y0059.jpg

接下来在进行实验,

  1. 路由器上配置PPPoE的服务器,把思科IOS的路由器做为PPPoE的服务器;

  2. 使用Win7和XP内建的客户端进行拨号连接;

  3. 使用思科路由器做为PPPoE的客户端进行拨号。


实验环境:

Cisco Router 

IOS Version:Version 12.4(15)T5

Device Type: Cisco 3660

 

Client:

  1. Windows XP

  2. Windows7 

  3. Cisco Router 


以下实验均可以通过模拟器实现,博主均使用模拟器。在Vmware workstation上安装Windows XP和windows7操作系统,通过网卡桥接的方式与R2和R1相连。通过dynamips模拟器加载真实的36路由器的IOS来模拟思科路由器。大家只有多做实验才能更加深刻的理解和吃透技术。纸上得来终觉浅,觉知此事要躬行。


网络拓扑如下:

wKiom1W5yFjAaWySAAFR4lH8GIY333.jpg

路由器基本配置如下:


R1(config)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#int f0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#router rip 
R1(config-router)#ver 2
R1(config-router)#no auto
R1(config-router)#net 1.0.0.0



R2(config)#int f0/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int lo 0
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#router rip 
R2(config-router)#ver 2
R2(config-router)#no auto
R2(config-router)#net 12.0.0.0
R2(config-router)#net 23.0.0.0



PPPoE Server配置:

R2(config)#int f1/0
R2(config-if)#no ip add
R2(config-if)#no shut
R2(config-if)#pppoe enable 
R2(config)#ip local pool ippool 23.1.1.100 23.1.1.200
R2(config)#bba-group pppoe global 
R2(config-bba-group)#virtual-template 1
R2(config-bba-group)#exit   
R2(config)#int virtual-template 1
R2(config-if)#ip unnumbered loopback 0
R2(config-if)#peer default ip address pool ippool
R2(config-if)#ppp authentication pap
R2(config-if)#exit
R2(config)#username user1 password cisco
R2(config)#username user2 password cisco



Win7客户端配置:

wKioL1W5zhjzPJuQAAQDDAm7a2Y627.jpg

wKioL1W5zhiCoG0rAAGdLBIuU1Q399.jpg

wKiom1W5zCjwFGpKAAKKjjyTq2s094.jpg

wKioL1W5zhiA1mMAAAMEBFKggfU861.jpg

WinXP客户端配置:

wKioL1W5zlfQmA8lAAPTfFsXEEM407.jpg

wKiom1W5zGejmjKYAAHxLtoSWd8404.jpg

wKioL1W5zlex3ya6AAGaTXDqtI8193.jpg

wKiom1W5zGfR17XRAAHTBKBhLds669.jpg

wKioL1W5zley7-89AAFHVm7hKlM693.jpg

wKioL1W5zm3BTm1QAAH90zH777A649.jpg

wKiom1W5zH2BdqJCAAIpCJGYnGQ997.jpg

wKiom1W5zH2glHOBAAFOiRiqyKw171.jpg

wKioL1W5zm3zaF11AABB7lnPeuQ790.jpg

wKiom1W5zH3xmIHQAAHj-vYjY6A254.jpg

wKioL1W5zm2SM2K4AAIBhTa-BoE679.jpg

路由器做为客户端配置:

不仅电脑可以拨号,如果家里或公司有多台电脑,就需要一台支持PPPoE客户端功能的路由器。一般的家用级别路由器设置比较简单,如tp-link等。思科属于企业级的路由器,通过命令行的方式配置相对复杂一点,以下介绍把思科路由器配置为PPPoE的客户端,并配置NAT,使内网用户可以上网。


PPPoE配置:

interface FastEthernet1/0
 no ip address
 pppoe enable
 pppoe-client dial-pool-number 1
nterface Dialer1
 ip address negotiated
 ip mtu 1492
 encapsulation ppp
 dialer pool 1
 ppp authentication pap callin
 ppp pap sent-username user1 password 0 cisco


路由配置:

ip route 0.0.0.0 0.0.0.0 Dialer1


NAT配置:

interface Loopback0
 ip address 3.3.3.3 255.255.255.0
 ip nat inside
interface Dialer1
 ip nat outside
access-list 100 permit ip 3.3.3.0 0.0.0.255 any
ip nat inside source list 100 interface Dialer1 overload


测试:

wKiom1W51Oai0kdpAASJWrvmmbc506.jpg按需拨号配置

今天宽带大部分都是包月包年了,如果是按小时计费的话,可能按需拨号就更为划算,就是当有流量的时候才会拨号,没有的时候就不会拨号,能省下不少银子。以下是在路由器上按需拨号的配置:

R3(config)#interface f1/0
R3(config-if)#no pppoe-client dial-pool-number 1
R3(config-if)#pppoe-client dial-pool-number 1 dial-on-demand
R3(config)#access-list 101 permit tcp any any eq 23
R3(config)#dialer-list 1 protocol ip list 101
R3(config)#interface dialer 1
R3(config-if)#dialer-group 1


读者可以进行测试,在没有telnet流量以前,是没有拨号的,在R3上telnet一个地址,触发流量后自动进行拨号。


附件:压缩包中为PPPoE报文,感兴趣的读者可以使用软件查看。