思科PPPoE基本原理与配置

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

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。

第二阶段中的一个数据包

以下面的拓扑图来讲解cisco路由器上的ppoe服务端和客户端配置,上面的抓包也是这个拓扑图的

r5做为pppoe服务器端,r8做为pppoe客户端

要注意cisco路由器的IOS的版本

R5#sho ver
Cisco IOS Software, Linux Software (I86BI_LINUX-ADVENTERPRISEK9-M), Version 15.7(3)M2, DEVELOPMENT TEST SOFTWARE
R8#sho ver
Cisco IOS Software, Linux Software (I86BI_LINUX-ADVENTERPRISEK9-M), Version 15.7(3)M2, DEVELOPMENT TEST SOFTWARE

两台都是15.7(3)M2的版本,网上有很多都是12.4的版本,cisco路由器的配置有些不同.我是折腾了半天才发现版本不一样,配置也不一样.

R5上的配置如下:

!
username cisco password 0 cisco  #ppp chap验证的用户名和密码
!
bba-group pppoe ABC  #创建BBA(BroadBand Aggregation)组
 virtual-template 1   #关联一个虚拟模板
!
!
interface Ethernet0/0
 ip address 10.10.40.5 255.255.255.0
 duplex auto
!
interface Ethernet0/3
 no ip address
 duplex auto
 pppoe enable group ABC  #物理接口开启pppoe
!
interface Virtual-Template1   #创建虚拟模板
 mtu 1492   #配置接口中的mtu
 ip address 172.16.1.2 255.255.255.0  #配置ip
 peer default ip address pool cisco     #使用本地地址池为客户端分配ip地址
 ppp authentication chap     #配置ppp封装
!
ip local pool cisco 172.16.1.10 172.16.10.100   #创建本地地址池
!

R8上的配置

!
interface Ethernet0/3
 no ip address
 duplex auto
 pppoe enable group global  #开启pppoe
 pppoe-client dial-pool-number 1   #将物理端口与虚拟拨号端口进行关联
!
interface Dialer0  #创建拨号接口
 mtu 1492     #配置mtu
 ip address negotiated   #ip地址采用ppp协商方式获得
 encapsulation ppp  #配置ppp封装
 ip tcp adjust-mss 1450 #通过调整tcp三次握手期间的mss值来防止丢弃tcp会话
 dialer pool 1  #配置拨号池
 dialer-group 1 #配置拨号组
 ppp chap hostname cisco  #当采用chap验证时发送的用户名
 ppp chap password 0 cisco  #当采用chap验证时发送的密码
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
ip route 0.0.0.0 0.0.0.0 Dialer0  #配置默认路由,拨号接口为出接口

查看所有的pppoe会话

R8#show pppoe session all
Total PPPoE sessions 1


session id: 2
local MAC address: aabb.cc00.8030, remote MAC address: aabb.cc00.5030
virtual access interface: Vi2, outgoing interface: Et0/3
 VLAN Priority: 0
    6363 packets sent, 0 received
    91444 bytes sent, 0 received

R5#show pppoe sess
R5#show pppoe session all
Total PPPoE sessions 1


session id: 2
local MAC address: aabb.cc00.5030, remote MAC address: aabb.cc00.8030
virtual access interface: Vi1.1, outgoing interface: Et0/3
    12344 packets sent, 12343 received
    172820 bytes sent, 172811 received

可以看到pppoe服务端和客户端的会话信息,包括会话id,本地和远程mac地址.虚拟访问接口中.路由器自己的出接口,以及发送和接收数据包的个数和字节数.

查看路由信息

R8#show ip route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*    0.0.0.0/0 is directly connected, Dialer0
      172.16.0.0/32 is subnetted, 2 subnets
C        172.16.1.2 is directly connected, Dialer0 #接口ppp封装的特性,对方接口的地址会在本地路由表中生成主机路由
C        172.16.1.11 is directly connected, Dialer0 #该条路由是通过ppp 的ipcp协商从R5的本地地址池分配来的

R5#show ip route

Gateway of last resort is 10.10.40.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 10.10.40.1
      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.10.40.0/24 is directly connected, Ethernet0/0
L        10.10.40.5/32 is directly connected, Ethernet0/0
      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C        172.16.1.0/24 is directly connected, Virtual-Access1.1
L        172.16.1.2/32 is directly connected, Virtual-Access1.1
C        172.16.1.11/32 is directly connected, Virtual-Access1.1 #分配给R8 拨号接口的地址,由于链路是ppp封装,所以本地路由表中会出现此主机路由

查看拨号接口信息

R8#show ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0/0                unassigned      YES unset  administratively down down
Ethernet0/1                unassigned      YES unset  administratively down down
Ethernet0/2                unassigned      YES unset  administratively down down
Ethernet0/3                unassigned      YES manual up                    up
Dialer0                    172.16.1.11     YES IPCP   up                    up
Virtual-Access1            unassigned      YES unset  up                    up
Virtual-Access2            unassigned      YES unset  up                    up
#拨号接口dialer0的ip地址是通过ppp的ipcp协商获得的
此条目发表在cisco分类目录,贴了, 标签。将固定链接加入收藏夹。