PPP实验
一、实验背景
PPP协议与HDLC协议的区别:
PPP协议(Point-to-Point Protocol)和HDLC协议(High-Level Data Link Control)都是数据链路层协议,用于在数据通信中进行数据帧的封装和传输,它们区别分别是:在实际应用上:
PPP通常用于点对点连接,适用于拨号接入、ADSL、VPN等动态环境,支持异步或同步链路,并且支持在广域网(WAN)和局域网(LAN)中使用。
HDLC通常用于广域网(WAN)中,常见于路由器间同步专线连接(如T1/E1线路),强调高效稳定的数据传输。
在灵活性上:PPP协议相对于HDLC更加灵活,支持链路控制协议(LCP),用于建立、配置和测试链路,支持多种网络层协议的封装和传输,例如IPv4、IPv6等。PPP也支持通过网络控制协议(NCP)协商和配置网络层协议。
HDLC协议通常用于传输特定类型的数据帧,无内置认证或协商机制,配置固定且缺乏灵活性。
在封装格式上:PPP协议的数据帧格式更加简洁,通常包括帧起始标志、地址字段、控制字段、协议字段、数据字段和帧校验序列等,帧中包含协议字段(Protocol Field),用于标识上层协议类型(如IPv4、IPv6),支持多协议封装。
HDLC协议也是数据帧的封装协议,但它的帧格式相对复杂,包括起始标志、地址字段、控制字段、数据字段、帧校验序列等,帧中无协议字段,标准格式中仅包含地址、控制、数据和校验字段,通常用于单一协议场景。
在完成PPP配置后,我们有两个认证协议可选,分别是PAP协议(Password Authentication Protocol)和CHAP协议(Challenge-Handshake Authentication Protocol),PAP和CHAP都是用于认证的协议,通常在网络连接建立时使用,特别是在点对点连接中,例如在拨号连接或者VPN连接中。
PAP认证:
PAP是一种简单的认证协议,它在连接建立阶段,客户端发送用户名和密码给服务器进行验证,服务器在接收到用户名和密码后,会将其与预先存储的用户名和密码进行比较,如果匹配则认证成功,否则认证失败。PAP在认证过程中发送的是明文密码,因此安全性较低,容易受到中间人攻击,目前只应用于旧系统或低安全性需求的场景(如企业内部网络)。
CHAP认证:CHAP是一种更安全的认证协议,它段用挑战-响应机制进行认证,通过哈希算法保护密码。
在CHAP认证中,服务器会向客户端发送一个随机的挑战字符串(Challenge),客户端收到挑战后,使用自己的密码计算出一个哈希值(Response)并发送给服务器,服务器在收到响应后,使用相同的密码计算出期望的哈希值,然后比较两者是否匹配,如果匹配则认证成功。
CHAP认证过程中发送的是哈希值,不是明文密码,因此安全性较高,能够有效抵御中间人攻击。因为CHAP认证支持动态 IP 分配的 PPP 连接(如 ADSL、VPN),目前主要应用于高安全性需求的场景(如公共网络、远程接入)。
总体来说,PAP是一种简单但不够安全的认证方式,适用于对安全性要求不高的场景;而CHAP提供了更高的安全性,能够有效地防范密码泄露和中间人攻击,因此更适合于对安全性要求较高的环境
二、实验拓扑图
三、实验目的
- R1 和 R2 使用 PPP 链路直连,R2 和 R3 把 2 条 PPP 链路捆绑为 PPP MP 直连
- 按照图示配置 IP 地址
- R2 对 R1 的 PPP 进行单向 chap 验证
- R2 和 R3 的 PPP 进行双向 chap 验证
四、实验步骤
-
R2 和 R3 上配置 PPP MP
步骤 1:在 R2 上创建 MP-GROUP 口
[R2]int MP-group 1
步骤 2:把 S1/0 和 S2/0 加入到上一步创建的 MP-GROUP口
R2:
[R2]interface s1/0 [R2-Serial1/0]ppp mp MP-group 1
[R2]interface s2/0 [R2-Serial2/0]ppp mp MP-group 1
R3:
[R3]interface s1/0 [R3-Serial1/0]ppp mp MP-group 1
[R3]interface s2/0 [R3-Serial2/0]ppp mp MP-group 1
-
按照图示配置 IP 地址
R1:
[R1]interface s1/0 [R1-Serial1/0]ip add 192.168.1.1 24 [R1-Serial1/0]quit
R2:
[R2]interface s3/0 [R2-Serial3/0]ip add 192.168.1.2 24 [R2-Serial3/0]quit [R2]interface MP-group 1 [R2-MP-group1]ip address 192.168.2.2 24
R3:
[R3]interface MP-group 1 [R3-MP-group1]ip address 192.168.2.3 24
-
R2 对 R1 的 PPP 进行单向 chap 验证
思考:R2 对 R1 进行单向验证,表示 R2 是主验证方,R1 是被验证方。所以需要在 R2 上创建用于验证的用户
R2:
[R2]local-user user1 class network //创建用户 New local user added. [R2-luser-network-user1]password simple 123 [R2-luser-network-user1]service-type ppp [R2-Serial3/0]ppp authentication-mode chap //在接口上配置PPP验证,验证方式为chap
R1:
[R1-Serial1/0]ppp chap user user1 [R1-Serial1/0]ppp chap password simple 123
-
R2 和 R3 的 PPP 进行双向 chap 验证
思考:双向验证意味着 R2 和 R3 双方都需要创建用于验证的用户,且需要在各自接口上配置对端的用户名
另外,虽然R2 和 R3 之间的 PPP 链路配置了 PPP-MP,但是身份验证仍然需要配置在物理接口上,所以 R2 和 R3 相连的所有 PPP 接口上都需要配置验证步骤 1:在 R2 和 R3上创建用户验证 R3 的用户
R2:
[R2]local-user maoqi class network //创建用户 New local user added. [R2-luser-network-maoqi]password simple 123 [R2-luser-network-maoqi]service-type ppp //给用户开启ppp协议
R3:
[R3]local-user maoqi class network New local user added. [R3-luser-network-maoqi]password simple 123 [R3-luser-network-maoqi]service-type ppp
步骤 2:在 R2 和 R3 相连的接口上配置需要进行 PPP 验证,验证方式为 chap,并配置对端验证本端的用户名
R2:
[R2-Serial1/0]ppp authentication-mode chap [R2-Serial1/0]ppp chap user maoqi [R2-Serial1/0]int s2/0 [R2-Serial2/0]ppp authentication-mode chap //开启PPP验证 [R2-Serial2/0]ppp chap user maoqi //验证用户名
R3:
[R3-Serial1/0]ppp authentication-mode chap //开启PPP验证 [R3-Serial1/0]ppp chap user maoqi //验证用户名 [R3-Serial1/0]int s2/0 [R3-Serial2/0]ppp authentication-mode chap [R3-Serial2/0]ppp chap user maoqi