ppp实验
ppp实验
PPP协议全称是点对点协议,英文是Point-to-Point Protocol。
它是计算机网络中数据链路层的一个非常重要的协议,主要用于在两个节点(通常是两台路由器或一台计算机与一个网络接入服务器)之间建立直接的、点对点的连接,并通过这个连接传输多种网络层协议的数据包。
核心目的和应用场景:
- 建立连接: 在物理连接(如串行电缆、电话线、光纤、移动网络等)之上建立逻辑数据链路。
- 认证: 提供可选的用户身份验证机制,确保连接的安全性(常用PAP和CHAP)。
- 封装多协议: 能够封装多种网络层协议(如IP、IPX、AppleTalk等)的数据包,使其能够在点对点链路上传输。
- 配置与协商: 动态协商链路参数(如最大接收单元MRU、认证协议、压缩方式等)。
- 错误检测: 提供帧校验序列来检测传输错误(但不负责纠错和重传,这通常由上层协议如TCP处理)。
- 链路质量监控: 可选地监控链路的质量。
- 网络层地址协商: 为两端设备动态分配IP地址(常见于拨号上网)。
经典的早期应用: 拨号上网 (Dial-up Internet Access)。当用户通过调制解调器(Modem)拨号到ISP(互联网服务提供商)的接入服务器时,在电话线上建立的就是PPP连接。PPP负责完成“握手”、用户名密码认证(PAP/CHAP)以及为用户的计算机分配动态IP地址。
现代应用:
- 路由器之间的广域网串行链路: 虽然以太网更常见,但在一些专线或租用线路上,仍然使用PPP(或其变种如PPP over HDLC)来连接两个远端路由器。
- PPPoE: PPP over Ethernet,这是现代宽带(如ADSL、光纤到户)接入的基石。它将PPP帧封装在以太网帧中传输,利用PPP的认证和配置功能,在以太网这种多路访问网络上实现了点对点的会话。
- PPPoA: PPP over ATM,用于基于ATM的DSL接入。
- VPN隧道: 一些VPN协议(如L2TP)在建立隧道时内部会使用PPP来封装用户数据。
PPP协议的核心组成部分:
PPP协议栈主要包含三个组件:
- 封装方法/帧格式: 定义如何将网络层数据包封装成PPP帧进行传输。PPP帧包含标志位、地址字段、控制字段、协议字段、数据字段和帧校验序列。
- 协议字段: 非常重要,指示数据字段中封装的是哪种网络层协议(例如,0x0021代表IPv4, 0x0057代表IPv6, 0xC021代表LCP, 0xC023代表PAP等)。
- 链路控制协议: 负责建立、配置、测试、维护和终止点对点链路。它在链路建立阶段运行,协商链路参数(如MRU、认证协议、是否启用压缩/加密等)。
- 网络控制协议族: 一系列协议,每个协议负责配置和管理一种特定的网络层协议。最常用的是:
- IPCP: 负责在PPP链路上配置、启用和禁用在两端使用的IPv4协议。它可以动态分配IP地址(常见于拨号)。
- IPv6CP: 负责IPv6协议的配置。
PPP的认证机制:
PPP提供了两种主要的身份验证协议,在LCP阶段协商使用:
- PAP:
- 全称:Password Authentication Protocol (密码认证协议)。
- 工作方式:客户端(被认证方)以明文方式重复发送用户名和密码给服务器(认证方),直到收到确认或连接终止。
- 安全性: 非常低,密码容易被窃听。不推荐使用。
- CHAP:
- 全称:Challenge-Handshake Authentication Protocol (挑战握手认证协议)。
- 工作方式:
- 认证方发送一个随机的“挑战”字符串给被认证方。
- 被认证方使用一个预共享的密钥(密码),结合收到的挑战字符串,通过哈希算法(通常是MD5)计算出一个值(响应)。
- 被认证方将这个哈希值发送回认证方。
- 认证方根据自己存储的密钥和之前发送的挑战字符串,用相同的哈希算法计算出一个值。
- 认证方比较自己计算的值和收到的值。如果匹配,则认证成功;否则,连接终止。
- 安全性: 比PAP高得多。密码(密钥)本身不在线路上传输,且每次认证使用的挑战字符串是随机的,防止重放攻击。是推荐使用的认证方式。
实验拓扑
实验需求
- R1 和 R2 使用 PPP 链路直连,R2 和 R3 把 2 条 PPP 链路捆绑为 PPP MP 直连
- 按照图示配置 IP 地址
- R2 对 R1 的 PPP 进行单向 chap 验证
- R2 和 R3 的 PPP 进行双向 chap 验证
第一步,R2和R3配置链路链路捆绑为 PPP MP 直连
R2
[R2]INT MP 1
[R2-MP-group1]INT S1/0
[R2-Serial1/0]PPP MP MP 1
[R2-Serial1/0]INT S2/0
[R2-Serial2/0]PPP MP MP 1
[R2-Serial2/0]QU
R3
[R3]INT MP 1
[R3-MP-group1]QU
[R3]INT S1/0
[R3-Serial1/0]PPP MP MP 1
[R3-Serial1/0]INT S2/0
[R3-Serial2/0]PPP MP MP 1
[R3-Serial2/0]QU
第二步,配置ip
略
第三步,R2 对 R1 的 PPP 进行单向 chap 验证
r2
[R2]local-user LUOQI1 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
R1
[R1-Serial1/0]ppp chap user LUOQI1
[R1-Serial1/0]ppp chap password simple 123
第四步,R2 和 R3 的 PPP 进行双向 chap 验证
R2
[R2]local-user LUOQI2 class network New local user added.
[R2-luser-network-maoqi]password simple 123
[R2-luser-network-maoqi]service-type ppp
[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
[R2-Serial2/0]ppp chap user maoqi
R3
[R3]local-user LUOQI2 class network New local user added.
[R3-luser-network-maoqi]password simple 123
[R3-luser-network-maoqi]service-type ppp
[R3-Serial1/0]ppp authentication-mode chap
[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