PPP协议
· 点到点链路层协议,没有MAC地址的概念
· PPP具有动态分配和使用IP地址的能力,允许在连接时刻协商IP地址
· PPP支持多种网络协议,比如TCP/IP、IPX等
· 能够控制数据链路的建立
· 能够配置和测试数据链路
· 能够进行错误监测
· 提供身份验证
· 有协商选项,能够对网络层的地址和数据压缩等进行协商
· PPP可以用于多种类型的物理介质上,包括串口线、电话线、光纤(例如SDH),也用于Internet接入。
PPP协议子层
链路控制协议(LCP:Link Control Protocol)
主要用来建立、拆除和监控数据链路。以及建立数据链路之前进行一系列参数的协商,协商内容包括MTU(最大传输单元),魔术字(magic number), 验证方式,数据压缩等等。
网络层控制协议(NCP:Network Control Protocol)
NCP是一个协议族,主要负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。不同的网络层协议有着不同的NCP,例如IP 为IPCP ,CDP为CDPCP。
认证协议
主要用于提供对PPP功能的进一步支持。例如 口令认证协议PAP 和 挑战握手验证协议CHAP。
PPP会话建立过程
链路建立阶段(Link-establishment phase)
PPP在建立链路之前要进行一系列的协商, PPP 首先进行LCP协商,每个PPP设备发送LCP包来配置和测试链路。LCP包包括一个叫做“配置选项”的字段,协商内容包括MRU(最大传输单元),魔术字(magic number), 是否验证,以及验证方式,如果没有设置“配置选项”字段,则使用默认的配置。
认证阶段 (Authentication phase)
在这个阶段,被认证方会将自己的身份发送给远端的接入服务器。(有则认证,无则跳过) 。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)
网络层协商阶段(Network layer protocol phase)
证阶段完成之后,PPP使用NCP允许封装成多种网络层协议并在PPP数据链路上发送。建立和NCP的服务关系。
NCP配置完毕,双方开始发送数据。
PPP认证
· 认证过程非常简单,二次握手机制。
· 使用明文格式发送用户名和密码。
· 发起方为被认证方,也可以双方都配置认证。可以做无限次的尝试(暴力破解)。
· 只在链路建立的阶段进行PAP认证,一旦链路建立成功将不再进行认证检测。
· 目前在PPPOE拨号环境中用的比较常见。
PAP单向认证
R1配置示例:
username CCNA password 0 CISCO@123
interface Serial1/0
clock rate 64000 //串行接口在DCE端配置时钟,DCE端一般为运营商
ip address 12.1.1.2 255.255.255.252
encapsulation ppp
ppp authentication pap
!
R2配置示例:
interface Serial1/0
ip address 12.1.1.1 255.255.255.252
encapsulation ppp
ppp pap sent-username CCNA password 0 CISCO@123
!
PAP双向认证
R1配置示例:
username CCNA password 0 CISCO
!
interface Serial1/0
ip address 12.1.1.1 255.255.255.252
encapsulation ppp
ppp authentication pap
ppp pap sent-username CCNP password 0 CISCO@123
R2配置示例:
username CCNP password 0 CISCO@123
!
interface Serial1/0
ip address 12.1.1.2 255.255.255.252
encapsulation ppp
ppp authentication pap
ppp pap sent-username CCNA password 0 CISCO
!
CHAP认证
· CHAP认证过程比较复杂,三次握手机制。
· 使用密文格式发送CHAP认证信息。
· 由认证方发起CHAP认证,也可以双方都配置认证,有效避免暴力破解,
· 在链路建立成功后具有再次认证检测机制。
· 目前在企业网的远程接入环境中用的比较常见。
CHAP单向认证
R1配置示例:
username CCNA password 0 CISCO
!
interface Serial1/0
ip address 12.1.1.1 255.255.255.252
encapsulation ppp
encapsulation ppp
ppp authentication chap
R2配置示例:
interface Serial1/0
ip address 12.1.1.2 255.255.255.252
ppp chap hostname CCNA
ppp chap password 0 CISCO
!
CHAP 双向认证
R1配置示例:
username CCNP password 0 CISCO@123
//双方数据库中用户名可以不一样,但密码必须一样
!
interface Serial1/0
ip address 12.1.1.1 255.255.255.252
encapsulation ppp
ppp authentication chap
ppp chap hostname CCNA
ppp chap password 0 CISCO
R2配置示例:
username CCNA password 0 CISCO@123
//双方数据库中用户名可以不一样,但密码必须一样
interface Serial1/0
ip address 12.1.1.2 255.255.255.252
encapsulation ppp
ppp authentication chap
ppp chap hostname CCNP
ppp chap password 0 CISCO@123
PPPOE技术
PPP协议又由于其本身的特点在点对点广域网链路中被广泛应用,支持多协议、支持身份验证技术等等。
PPPoE技术可以理解为此二者的结合,在以太网链路上,继承PPP协议的众多优点,其中以身份验证技术最抢眼。
PPPoE提供通过简单桥接的接入服务器把一个网络的多个主机连接到远程接入服务器的功能
如今PPPoE技术已经被广泛应用在运营商接入,许多家庭宽带用户,都是使用PPPoE拨号上网
PPPOE数据帧
PPPOE链路建立过程
PPPOE配置
PPPOE Server
R2配置示例:
username CISCO password 0 CISC0
!
ip dhcp pool CISCO
network 23.1.1.0 255.255.255.0
default-router 23.1.1.1
!
bba-group pppoe global //全局一定要敲!
virtual-template 1
!
interface Virtual-Template1
ip address 23.1.1.1 255.255.255.0
ip mtu 1492
peer default ip address dhcp-pool CISCO
ppp authentication pap
!
interface Ethernet0/0
no ip address
pppoe enable group global //接口记得关联
!
PPPOE Client
R2配置示例:
interface Dialer0
ip address dhcp
ip mtu 1492
encapsulation ppp
dialer pool 1 //定义拨号编号为1
ppp pap sent-username CISCO password 0 CISCO
!
interface Ethernet0/0
no ip address
pppoe enable
pppoe-client dial-pool-number 1 //定义为PPPOE客户端,并且调用 dialer pool 1
!
动态产生默认路由(可选):
interface Dialer0
ppp ipcp route default