1 介绍
特点:厂商联盟开发,主要成员为微软
术语:PAC------PPTP接入集中器,位置以及功能类似于L2F中的NAS
PNS------PPTP网络服务器,位置以及功能类似于L2F中的终点网关
作用:通过internet以隧道方式将PPP数据转发给PNS,在隧道模式中,PAC接受客户的呼叫,LCP协商,以及一些必要的验证,而后PAC和PNS建立隧道,PNS执行与客户端的LCP协商PPP CHAP或者PAP验证以及NCP协商,这样客户的PPP数据就可以透明的通过隧道传输给PNS了,而且PPTP支持另外一种工作模式:这种模式客户端直接和企业边界建立隧道,这样客户端充当了PNS而企业边界承担被呼叫任务(PAC),这种模式叫做自发模式,并且自发模式是常用的。
L2F和PPTP的区别:
1 L2F只支持隧道模式,PPTP只支持自发模式。
2 L2F可以通过隧道转发PPP以及SLIP数据,PPTP只支持通过隧道转发PPP数据
3 L2F没有流量控制以及拥塞管理,PPTP支持
4 L2F中控制消息和数据都是通过UDP封装,PPTP控制信息使用TCP而数据消息使用增强版GRE封装
5 L2F中终点网关最后同客户进行LCP,CHAP阶段实际上是和NAS协商的,PPTP中不是这样的,因为PAC不支持
6 L2F不支持主动呼出,PPTP可以
7 L2F建立隧道时NAS和终点网关会彼此验证,PPTP不会
注:在CISCO设备上使用PPTP时只支持自发模式
2 数据包结构
PPTP的自发模式建立的隧道在于客户(PNS)和企业边界(PAC)之间,不同于L2F,PPTP是使用带外管理的,也就是控制消息和数据消息是分开的,那么它们封装时的包结构是什么样呢?
原始分组:L2头 L3头 L4头 数据 L2尾
PPTP控制消息:L2头 L3头 TCP头 控制消息 L2尾
PPTP隧道内的数据封装:L2头 L3头 E.GRE头 PPP数据 L2尾
PPTP控制消息是用TCP端口号1723
要想在隧道中传输数据首先要建立控制连接,控制连接有两种类型消息:
类型1:控制消息
类型2:管理消息
CISCO并没有定义管理消息的作用,这应该是不支持隧道模式的原因。这里说下控制消息的类型一共有15种:
编码 消息 作用
1 StartCCRQ 开始连接请求
2 StartCCRP 开始连接应答
3 StopCCRQ 终止连接请求
4 StopCCRP 终止连接应答
5 Echo requst 回应请求
6 Echo reply 回应应答
7 OCRQ 呼出请求
8 OCRP 呼出应答
9 ICRQ 呼入请求
10 ICRP 呼入应答
11 ICCN 呼入连接成功
12 ClearRQ 呼叫拆除
13 CDN 呼叫断开通知
14 WEN 广域网错误通知
15 SLI 设置链路信息
这些消息的作用各不相同,但是都有一些共同拥有的字段:
长度:包括PPTP头在内的PPTP消息长度
PPTP消息类型:永远是1,指出这是一个控制消息
Magic Cookie:永远是0x1A2B3C4D,主要用于TCP同步
控制消息类型 :上述的15中编码,指出消息类型
下面主要解释几种常用控制消息的特有字段:
1 StartCCRQ:
1 协议版本:由发送方指出的2字节版本号+2字节修订号
2 成贞功能:定义了两位,第一位置位表示支持异步贞,第二位置位表示支持同步贞
3 载波功能:定义了两位,第一位置位表示支持模拟接入,第二位置位表示支持数字接入
4 最大信道数:这个字段表示隧道中支持多少个会话,在自发模式中一个信道只能有1个会话,而且CISCO只支持自发模式,所以在CISCO设备中,这位永远是0
5 固件修订号:客户的驱动版本
6 主机名:发送这个消息的主机的DNS名称
7 厂商号:厂商信息
2 StartCCRP:
其他字段和1 StartCCRQ一样,多了2个字段
1 结果编码:指出建立隧道时的结果
2 错误编码:如果结果编码指出有一个错误,那么错误编码将指出错误原因
3 OCRQ:
1 控制消息类型 7
2 呼叫ID 用于区分不同会话,类似于L2F技术中的MID,cisco在自发隧道下只支持一个会话,这个ID在本地有意义,对等体两端可能不同
3 呼叫序列号 用于呼叫记录,类似于呼叫ID,但是全局统一
4 最小BPS 告诉PAC,client接受的最小线路速度
5 最大BPS 告诉PAC,client接受的最大线路速度
6 载波类型 同SCCRP
7 成帧类型 同SCCRP
8 接受窗口大小 流控,指定缓存分组数量
9 分组处理延迟 流控,指定缓冲区存储数据量所需时间
10 电话号码长度 只用于强制模式,cisco不支持,必须为0
4 OCRP:
1 控制消息类型 8
2 呼叫ID 意义同OCRQ
3 呼叫序列号 复制于OCRQ
4 结果编码 用于通知结果:1 成功 2 失败 3 管理性关闭
5 错误编码 错误ID
6 原因编码 错误原因
E.GRE的封装
增强型GRE不同于普通的GRE有一些特有的功能,用于转发PPTP的数据帧
1 C 指出是否支持校验和
2 R 指出是否支持路由选择
3 K 指出是否支持键值
4 S 指出是否支持序号
5 s 指出是否支持源路由
6 A 指出是否支持确认
7 递归控制 0
8 标记 0
9 版本 1
10 键值 左边2字节为数据长度 右边两字节指出呼叫ID
11 序号 当S置位有效
12 确认号 当A置位有效
3 工作过程
1
隧道建立工作过程:
第一大阶段:客户端使用SCCRQ发起控制连接,目的端口1723,源端口为任意未使用端口,选择一个客户ID,呼叫序列号,PAC收到消息把呼叫序列号复制到SCCRP响应客户端的请求,这个消息指出控制信道是否成功建立还是发生了某种错误。
第二大阶段:第一阶段成功建立之后,客户端发起OCRQ指出自己想在PPTP中建立一个PPP会话,PAC收到消息使用OCRP告知客户端是否建立成功
第三大阶段:交换完成OCRQ/OCRQ之后进行普通的PPP协商即:LCP,PAP/Chap,NCP,当协商完成利用增强型GRE转发数据包
2
隧道的维护
PPTP提供一种隧道保活机制,避免隧道由一方面原因终止导致隧道卡住,利用的是PPTP的回波请求以及回波回应
当隧道空想超过60s一方就会发送回拨请求,如果在60s内没有收到回波回应,就断开连接,这个请求任意一方都可以发起
3
隧道的终止以及其他
1 隧道的终止
1 client发起CCRQ/clearRQ
2 PAC回复CDN
终止会话
3 PAC马上发起stopCCRQ
4 client回应stopCCRP
终止控制连接
2 SLI消息:有client发起,设置链路信息
4 实验:
PAC
hostname PAC
vpdn enable
vpdn-group zu
accept-dialin
protocol pptp
virtual-template 1
username zhanghao password 0 mima
interface Loopback0
ip address 10.1.1.1 255.255.255.0
interface FastEthernet0/0
ip address 1.1.1.121 255.255.255.255
interface Virtual-Template1
ip unnumbered Loopback0
peer default ip address pool ippool
ppp encrypt mppe 40 required
ppp authentication ms-chap
ip local pool ippool 10.1.1.10 10.1.1.100
ip route 0.0.0.0 0.0.0.0 FastEthernet0/0
PPTP------点到点隧道协议
最新推荐文章于 2024-07-11 20:39:49 发布