link----二层-------数据链路层
1、p2p(point to point)点对点链路
优点:高效、独享
缺点:成本高
协议:ppp、hdlc
2、MA(multiaccess)多路链路
优点:成本低
缺点:共享带宽,效率低
BMA(broadcast multiaccess )广播多路访问链路
协议:Ethernet 以太网-------二层标识Mac
ARP协议 网络地址----------->mac
NBMA(none broadcast multiaccess)不带广播多路访问链路
协议:FR-------二层标识DICL号、ATM-----------二层标识VC虚电路
inARP(逆向ARP) DICL号----->网络地址
HDLC(high data link control)
思科私有
不足:
不能做认证
不同网络不能通信(不能接入互联网)
ppp(point-to-point protocol)
适用场景:
点对点互访
互联网接入
pppoe----ppp over Ethernet
pppOA
pppoFR
vpn
L2tp vpn
Pptp vpn
PPP协议架构
LCP(link control protocol)链路控制协议
功能:二层链路建立、维护、拆除
1、认证
PAP(password authenticate protocol)密码认证协议
CHAP(challenge handshake authenticate protocol)挑战握手协议
2、防环
magic number 魔术字
3、多链路捆绑
multilink--虚拟端口
增加带宽
负载
冗余
4、compress 压缩
用于Qos,链路增效
5、Keepalive 保活
echo-request、echo-reply
NCP(network control protocol)网络控制协议
功能:为上层协议提供服务
ipv4----->ipcp
ipv6----->ipv6cp
mpls----->mplscp
一、LCP阶段 ppp建立连接过程
1、链路建立(双向)
configuration request---------->
id:4
option:
type 1:maximum receive unit
length:4
value:1200
type 5 :magic nu
mber
length:6
value: A
<---------configuration ack
id:4
option:
type 1:maximum receive unit
length:4
value:1200
type 5 :magic number
length:6
value: A
<---------configuration request
id:9
option:
type 1:maximum receive unit
length:4
value:1300
type 3:authentication protocol
length:4
value:pap(0xc023)/chap(0xc223)
type 5 :magic number
length:6
value: B
----------->configuration ack
id:9
option:
type 1:maximum receive unit
length:4
value:1300
type 3:authentication protocol
length:4
value:pap(0xc023)/chap(0xc223)
type 5 :magic number
length:6
value: B
正常情况下
两端双向发送configuration request报文,收到后回复configuration ack报文,其中option字段中带有authentication protocol的是认证方
非正常情况
1、本端收到configuration request报文,首先检查报文中option字段中的magic number是否与自己随机生成的相同
不相同,回复configuration ack
相同,回复configuration nak报文,带有重复的magic number
对端在收到configuration nak报文后,重新生成一个与之前不相同的随机数magic number,并重新发送configuration request报文
本端当收到configuration request报文后,检查报文中option字段中的magic number是否与自己随机生成的相同
不相同,回复configuration ack
相同,回复configuration nak报文,带有重复的magic number
。。。重复一定次数,链路拆除
这样做的好处是,避免了可能两端第一次随机生成的magic number相同,而出现的假环路情况
2、被认证方与认证方authentication mode不相同
1)认证方pap,被认证方chap
回复configuration nak报文,带有option type-3
2)认证方pap,被认证方不做
回复configuration reject报文,带有option type-3
3)两个都是认证方,一个是pap认证,一个是chap认证
回复configuration reject报文,带有option type-3
因为:认证方都会发送带有option type-3的configuration request报文,另一端收到后,发现自己没有做对方认可的认证,因此发送reject报文
2、链路保活(双向)
echo request--------->
id 2
magic number
<------------echo reply
id 2
magic number
<------------echo request
id 6
magic number
echo reply--------->
id 6
magic number
3、链路拆除(单向)
termination request-------->
id 8
<---------------termination ack
id 8
4、认证 authentication
1)PAP(password authentication protocol)密码认证协议
authentication-request------------------>
id 1
data:
peer-id:huawei
password:123
<----------------------authentication-ack
id 1
data:
welcome
=======正常情况============
---------------->
被认证方密码或用户名错误
<----------------------authentication-nak
id 1
data:
被认证方尝试三次,拆除链路
=========不正常情况=========
pap总结:
1、优点:提供认证功能、资源消耗少
2、缺点:
1)密钥在传输过程中是不加密的,私密性不够
2)容易收到重放攻击
2)CHAP(challenge handshake authentication protocol)挑战握手认证协议
<---------------challenge
id
random
username:空
response----------->
id
username:huawei
hash
||
challenge报文中的random+id+接口模式下的密码:123
-------------------------MD5------------------------------
<---------------success/failure
动作:认证方收到response报文后,查看报文中username在自己aaa数据库中对应的密码
如果没有
运用MD5运算将:id+random+“空”计算得出一个新的hash2
如果有
运用MD5运算将:id+random+“此密码”计算得出一个新的hash2
对比收到的hash与自己计算的到的hash2
如果相同,发送success报文
如果不相同,发送failure报文
==========================正常情况========================
<---------------challenge
id
random
username:a
response----------->
id
username:huawei
hash
||
challenge报文中的random+id+aaa数据库中与username:a对应的密码:123
-------------------------MD5------------------------------
MD5运算中密码来源:
首先看接口下是否有密码
有,加入计算
没有,看收到的challenge报文是否带有username
没有,就放入空密码计算
有,就查询自己的aaa数据库中是有该username和对应的密码
没有,就放入空密码计算
有,就放入aaa数据库中与该username对应的密码计算
<---------------success/failure
对比收到的hash与自己计算的到的hash2
如果相同,发送success报文
如果不相同,发送failure报文
========================特殊场景一========================
chap认证中被认证方配置AAA的意义:
1、增加安全性,提高认证强度
在原来的情况下,是不需要确认username的,challenge中的username为空而现在,需要先确定用户名存在,然后再去找相应的密码
2、减少配置
在多条链路、用户名密码相同的情况下,每条链路只需要配ppp chap username xxx 密码可以统一在aaa下配置
二、NCP阶段
ipv4----->ipcp
功能:为ipv4上层协议提供支持,生成一条指向对方的32位主机路由
r2----------------------------------------------------------r3
开始不配置地址 1.1.33.3/24
ip add ppp-negotiation remote add 1.1.22.2
configuration request--------->
id:2
option
ip address:0.0.0.0
<--------------configuration nak
id:2
option
ip address:1.1.22.2
configuration request--------->
id:3
option
ip address:1.1.22.2
<--------------configuration ack
id:3
option
ip address:1.1.22.2
<--------------configuration request
id:7
option
ip address:1.1.33.3
configuration request--------->
id:7
option
ip address:1.1.33.3
==============正常情况=========================
两端同时配置
remote address xxxx 和 ip address ppp-negotiation 时
在NCP阶段,两端发送的首个configuration request,携带的ip address都为0.0.0.0
对方收到后,都会回复configuration nak,携带远端分配的地址
再次发送的configuration request将会正常,并收到configuration ack
能够正常通信
====================特殊情况=====================