干货 | 思科实验 | PPPoE基本原理与配置,超级详细,看完这篇就懂了!

非 Y 不嫁゛ 提交于 2021-01-03 21:25:31

    昨天有个朋友找我说他们公司的思科出口路由器PPPoE没连接成功,今天为大家讲解一下PPPoE的基本原理、演示如何在思科路由器上配置服务器和客户端,以及在Windows操作系统上配置客户端。

01

前言

    大分部ISP(Internet服务提供商)在网络上使用PPPoE(Point to Point Over Ethernet,以太网上的点对点协议)来验证用户的计算机。大家在家里上网的时候会进行ADSL拨号连接,中小型公司的路由器进行ADSL连接,使用的都是PPPoE协议。

02

PPPoE概述

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

03

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的报文封装:


PPPoE报文(发现阶段)


PPPoE报文(会话阶段)


接下来在进行实验:

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

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

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

04

实验环境

Cisco Router 

IOS Version:Version 12.4(15)T5

Device Type: Cisco 3660

 

Client:

Windows XP

Windows7 

Cisco Router 


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


网络拓扑如下:


路由器基本配置如下:


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客户端配置:



WinXP客户端配置:


05

路由器作为客户端配置

    不仅电脑可以拨号,如果家里或公司有多台电脑,就需要一台支持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


测试:


按需拨号配置

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


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


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


    下面是PPPoE报文的下载地址,感兴趣的读者可以使用软件查看。

链接:https://pan.baidu.com/s/1PxPrDsYHs9_ts3ncAr0_ug 密码:ii0v

06

思科路由PPPoE拨号精简配置+命令说明


01


#开启虚拟拨号VPDN

r1(config)#vpdn enable                      


 #定义组名(pppoe)

r1(config)#vpdn-group pppoe                


#这里是请求拨入

r1(config-vpdn)#request-dialin                


#设置拨号协议为PPPOE

r1(config-vpdn-req-in)#protocol pppoe         

02


 

# 进入E0端口

r1(config)#in ethernet 0                     


#半双工

r1(config-if)#half-duplex                      


#使用PPPOE

r1(config-if)#pppoe enable                    


#把该物理端口加入到拨号池1中

r1(config-if)#pppoe-client dial-pool-number 1     


#宽带640

r1(config-if)#bandwidth 640                   


# 关闭CDP协议

r1(config-if)#no cdp enable                   


r1(config-if)#no sh

 

03


#建立一个虚拟拨号端口

r1(config)#interface dialer 1                   


#宽带640

r1(config-if)#bandwidth 640                   


#由于局端提供动态地址

r1(config-if)#ip address negotiated              


#修改MTU值适用于ADSL网络,默认为1500,我们要修改为1452

r1(config-if)#ip mtu 1492   


#  IP 的TCP调整

r1(config-if)#ip tcp adjust-mss 1452  


#启用NAT转换,设置外网端口为外部网

r1(config-if)#ip nat outside           


#使用拨号池,因为ETH0加入到拨号池,实际使用ETH0

r1(config-if)#dialer pool 1             


# 拨号闲置-超时0(保持连接)

r1(config-if)#dialer idle-timeout 0     


#断线了可以保持100个封包

r1(config-if)#dialer hold-queue 100     


#拨号持久 (上不了网就连线)

r1(config-if)#dialer persistent         


r1(config-if)#dialer-group 1           


#使用PPP的帧格式

r1(config-if)#encapsulation PPP        


#设置拨号的验证方式为PAP 和CHAP

r1(config-if)#PPp authentication pap chap callin     


#用户帐号和密码

r1(config-if)#ppp pap sent-username bj147258 password 123456      


#不走CDP

r1(config-if)#no cdp enable                  


#  是关闭快速交换

r1(config-if)#no ip mroute-cache            



本文分享自微信公众号 - 网络技术联盟站(wljslmz)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!