目录
PPP
PPP介绍
PPP协议:点到点链路数据链路层协议,在SLIP(Serial Line Internet Protocol)基础上发展起来。可提供用户验证,易扩充,支持全双工同步异步通信。
SLIP:只支持异步传输、不支持协商(不能协商双方IP地址等网络层属性)、只能承载IP报文等缺陷。SLIP逐步被PPP替代。
PPP可在串行通信线路上传输多种网络层协议,如IP、IPX、AppleTalk。
PPP既支持同步又支持异步,而X.25、FR(Frame Relay)等链路层仅支持同步,SLIP仅支持异步。
点到点直接连接是简单的广域网连接形式,如PPP。
PPP有良好扩展性,如需在以太网上承载PPP协议时,可扩展为PPPoE。
PPP包含:
LCP(Link Control Protocol)协议:建立、拆除和监控PPP数据链路。
NCP(Network Control Protocol)协议:协商网络层格式与类型。
CHAP和PAP:(Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol)
PPP帧格式
Flag域:标识一个物理帧的起始和结束,该字节为0x7E。
Address域:唯一标识对端,点对点链路无须对方链路层地址,0xFF即可。
Control域:默认为0x03,表明为无序号帧,PPP默认不采用Seq和ACK来实现可靠传输。
Address和Control域一起标识此报文为PPP报文,即PPP报头为FF03。
Protocol域:标识信息域中数据包类型
0x0021 IP
0xC021 LCP
0x8021 NCP
0xC023 PAP
0xC025 LQR
0xC223 CHAP
Information域:最大长度MRU默认1500字节,可实际协商。长度不够可填充。
FCS域:校验。
链路建立过程:
PPP链路建立过程:
1. Establish阶段:LCP协商
协商内容:SP(Single-link PPP)还是MP(Multilink PPP)、MRU、认证方式、魔术字等选项。
LCP协商成功后进入Opened状态,表示底层链路建立。
2. Authenticate阶段:CHAP或PAP验证,成功后为SUCCESS状态。
3. Network阶段:NCP协商
IPCP(IP Control Protocol)、MPLSCP(MPLS Control Protocol)
IPCP会协商双方IP
NCP协商后,链路建立成功。运行过程中,可能随时中断连接,物理链路断开、认证失败、超时等都可能导致链路进入Terminate阶段。
Terminate阶段,所有资源被释放,通信双方回到Dead
LCP
LCP报文:
Code域:即编码,标识LCP报文类型
0x01 Configure-Request
0x02 Configure-Ack
0x03 Configure-Nak
0x04 Configure-Reject
0x05 Terminate-Request
0x06 Terminate-Ack
0x07 Code-Reject
0x08 Protocol-Reject
0x09 Echo-Request
0x0A Echo-Reply
0x0B Discard-Request
Identifier:即ID,用来匹配请求和响应
请求报文的ID从0x01递增
Length:即长度,Data域总长度,即Type、Length和Data总长度。
Data字段:即LCP数据段
type:报文类型
0x01 MRU 最主要
0x02 Async-Control-Character-Map
0x03 Authentication-Protocol (身份验证PAP or CHAP,若无认证则不包含该type)
0x04 Quality-Protocol(协商使用链路检测的方法)
0x05 Magic-Number (防止环路)
0x06 RESERVED
0x07 Protocol-Field-Compression(PPP协议字段的压缩协商)
0x08 Address-and-Control-Field-Compression(链路层地址和控制字段的压缩协商)
Configure-Request:
没收到Configure回复时,每隔3秒重传一次Configure-Request,最多10次。
对应响应有:
Configure-Ack:表示协商成功
Configure-Nak:表示参数不能接受,其中只包含不能识别的参数列表
Configure-Reject:表示参数不能识别,其中只包含不能识别的参数列表
Echo-Request、Echo-Reply:
定期发送,用于链路状态检测
Terminate-Request,Terminate-Ack:
链路关闭
认证
LCP若协商为PAP认证:
使用PAP authenticate-request、PAP authenticate-ack报文协商
PAP authenticate-request包含明文用户名和密码。
LCP若协商为CHAP认证:
服务器发送CHAP challenge报文,包含ID值及一个随机字符串
客户端根据hash得到字符串,并在CHAP Response中回复
服务器hash计算后CHAP Response中hash比较。若一致回复success,否则回复failure
NCP
协商IPCP协议, 包括IP地址
PPPoE
介绍
PPPoE主要利用了PPP协议中的访问控制和计费功能。
以太网具有广播属性,通信双方无法验证对方身份,因而通信不安全
PPPoE通过Session ID保障用户安全
拓扑
ADSL 和FTTH(光纤到户)的拨号都使用PPPoE协议。
PPPoE不使用ARP,可防止ARP攻击。
报文格式
PPPoE报文格式:
1. 以太网头:
目标MAC
源MAC
类型:标识PPPoE报文类型,0x8863(发现阶段),0x8864(PPP会话阶段)
2. PPPoE头部:
Ver(4 bits): PPPoE协议版本号,值为0x1。
Type(4 bits): PPPoE帧类型,值为0x1。
Code(1字节): PPPoE报文具体类型。
0x00:会话数据
0x09:PADI 0x07:PADO或PADT
0x19:PADR 0x65:PADS
Session ID(2字节): 标识PPPoE会话,由服务器分配。实际会话ID还结合源目MAC
Length(2字节): PPPoE的Payload长度,不包括以太网头和PPPoE头。
3. PPP帧:
PPP帧被封装在PPPoE报文中,包括标志字节、地址字节、控制字节、协议字节、信息字段和校验字段等。
报文交互流程
发现阶段
Client广播PADI(PPPoE Active Discovery Initiation)。
Server回应PADO(PPPoE Active Discovery Offer),包含Access Concentrator Name Tag。
Client选定合适Server,并单播回复PADR(PPPoE Active Discovery Request)。
Server回复PADS(PPPoE Active Discovery Session-confirmation),其中包含唯一会话ID
四个报文都包含server name Tag
PPP会话阶段
PPPoE Client和PPPoE Server通常在同一局域网
BCP
即PPP Bridging Control Protocol,基于PPP链路,桥接双方子网。
BCP属于PPP协议中LCP链路配置协商参数。可结合PPTP或L2TP使用实现大二层组网。
为实现L2TP+BCP,需要的应用:
xl2tpd + pppd
openl2tp + pppd
还可以L2TP+BCP+IPsec
ESP协议属于IPsec
PPTP
PPTP(点对点隧道协议)由微软、3Com等联合开发
最大特点:
配置简单(只需用户名,密码,服务器IP)
安全性不如IPSec
PPTP是在PPP基础上开发增强型安全协议,PPTP使用用户级PPP身份验证,用于Microsoft 点对点加密 (MPPE)的数据加密。
配置界面
工作原理
PPTP第一步是建立TCP连接,该TCP连接只用于PPTP控制报文,负责链路控制。
而后续数据包不用TCP连接,以PPP协议封装, 然后在IP协议上传输。
PAC: PPTP Access Concentrator, PPTP网络集中器。客户端
PNS: PPTP Network Server,PPTP网络服务器。服务器
PPTP报文分为:
PPTP控制报文:用于创建、维护、终止PPTP连接
PPTP数据报文:用来传送PPP数据包,PPP数据包封装在GRE中。
报文格式
控制报文和数据报文格式不同。
控制报文
需提前建立TCP连接
数据报文
PPPoE可算是隧道,PPPoE头类似GRE头
对于数据报文, Server和Client都使用到两个IP。一个公网IP,用于连接Internet; 另一个PPTP拨号分配的内网IP。
Server可手动配置的内网IP,而Client的内网地址是从Server获取的。
PPP Compressed Datagram中又包含IP TCP 应用层数据。
报文交互流程
1. Client向Server的1723端口建立TCP连接。
2. PPTP链路控制
2.1 Client发送Start Control Connection Request
2.2 Server回复Start Control Connection Reply
2.3 Client发送Outgoing Call Request;创建隧道,包含一个客户端到服务器方向的发送数据的PPTP隧道ID
2.4 Server回复Outgoing Call Reply。隧道创建成功。包含一个从服务器到客户端方向的发送数据的PPTP隧道ID
2.5 Client 发送Set-Link-Info: 协商PPP选项。
3. 隧道数据传输
PPTP隧道建立后,就可在客户机与服务器之间传送PPP数据。
PPTP发送数据包封装过程:
(1)应用层数据封装成IP包
(2)将IP包发送到VPN虚拟接口
(3)VPN虚拟接口将IP数据包压缩和加密(可选),并添加PPP头。
(4)VPN虚拟接口将PPP帧发送给PPTP驱动。
(5)PPTP驱动在PPP帧外加GRE头
(6)PPTP驱动将GRE头提交给TCP/IP协议栈
(7)TCP/IP协议栈为GRE添加IP头
(8)最后为IP包进行数据链路层封装,并通过物理网卡发出
收包解封装过程:
实现
modprobe pptp.ko
modprobe ppp_mppe.ko
pppd nodetach nodefaultroute lock usepeerdns user $pptp_user password $pptp_pass
plugin pptp.so pptp_server $pptp_srv_ip file /tmp/options.pptp nobcp &
其中/tmp/options.pptp内容:
noipdefault
noauth
nobsdcomp
nodeflate
novj
novjccomp
noaccomp
maxfail 0
mtu 1414
mru 1414
+mppe-128 or nomppe-stateful #是否加密
L2TP
介绍
L2TP(Layer Two Tunneling Protocol):二层隧道协议,扩展了PPP。
适用于用户远程拨号接入企业总部。
LAC(L2TP Access Concentrator):L2TP 访问集中器,L2TP客户端
LNS(L2TP Network Server):L2TP 网络服务器,L2TP服务器
VPDN:基于拨号网络的VPN,如:
PPTP L2F L2TP
L2TP集合PPTP和L2F优点
典型组网
远端系统=dial clients=企业分支
LAC:L2TP Access Concentrato
三种应用场景:
1. 拨号用户访问企业内网:
用于用户不经常访问企业总部时,LAC检测用户下线,自动拆除隧道。
需要用于自己登录L2TP账户密码
2. LAC自动拨号
LAC与LNS间建立一条永久性L2TP会话,无需用户PPP拨号,只需IP连接即可
3. 移动办公用户访问企业内网
由用户发起L2TP连接
配置界面
BCP:属于PPP协议中LCP链路配置协商参数,用于在PPP连接的两端协商和管理网络桥接,如配置、状态和参数。通知对端设备是否启用桥接、桥接的类型、桥接端口等信息。
数据格式
层二VPN:可用L2TP+BCP
ETH+IP+UDP+L2TP+(PPP+BCP)+ETH+IP
层三VPN:不使能PPP的BCP协议
ETH+IP+UDP+L2TP+PPP+IP
控制通道和数据通道
在一对LAC和LNS间可建立多条L2TP隧道
每个L2TP隧道连接包括:一个控制连接和多个会话连接。
控制通道:隧道的建立、维护和关闭。
数据通道:用于传输用户数据。
L2TP报头包含Tunnel ID和Session ID信息,用来标识不同的隧道和会话。隧道标识与会话标识是由对端分配,只对接收端有意义,对发送端没有意义。
隧道建立:
SCCRQ(Start-Control-Connection-Request):一般由LAC向LNS发起请求。
SCCRP(Start-Control-Connection-Reply):表示接受对端连接请求
SCCCN(Start-Control-Connection-Connected):表示隧道建立完成。
会话建立:
ICRQ(Incoming-Call-Request):当LAC检测到拨号时,向LNS发送ICRQ,请求在隧道中建立一个会话。
ICRP(Incoming-Call-Reply):表示ICRQ成功,LNS会在ICRP中标识L2TP会话必要参数。
ICCN(Incoming-Call-Connected):表示L2TP会话建立完成。
PPTP和L2TP比较
PPTP要求为IP网络。L2TP要求面向数据包的点对点连接(支持IP、ATM、帧中继、X.25等网络)。
PPTP只支持单一隧道。L2TP支持多隧道。
PPTP不支持包头压缩、隧道验证。L2TP支持包头压缩、隧道验证。
PPTP包头占6个字节,L2TP压缩包头占4个字节。
今天的文章
ppp-mod-pptp_什么叫PPPD分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81043.html