关键理论
-
组成
-
LCP(链路控制协议):管理ppp数据链路,建立,拆除,监控数据链路
-
NCP(网络控制协议):承载网络层协议类型及其属性
-
验证协议:验证身份合法性
-
pap:被验证方首先发起验证请求,两次握手验证,密码明文发送
-
用户合法->给对端发送ACK;非法->发送NAK
-
确认合法性:主验证方检索预先配置的用户列表要么向验证服务器查询
-
可一方验证;可双向验证->两个独立单向验证过程
-
-
chap:主验证方首先发起验证请求,三次握手验证,不发送密码
-
主验证方首先发起验证请求,三次握手验证,不发送密码
-
Challenge:主验证方向被验证方发送一个随机产生的数值,并同时将本端的用户名一起发送给被验证方;
-
Response:被验证方接收到验证请求后,检查本地密码。
-
接口上配置了默认的CHAP密码,则被验证方选用此密码;
-
没有配置默认的CHAP密码,则被验证方根据此报文中主验证方的用户名在本端的用户表中查找该用户对应的密码,并选用找到的密码。随后,被验证方利用MD5算法对报文ID、密码和随机数生成一个摘要,并将此摘要和自己的用户名发回主验证方;
-
-
Acknowledge or Not Acknowledge:主验证方用MD5算法对报文ID、本地保存的被验证方密码和原随机数生成一个摘要,并与收到的摘要值进行比较。
-
如果相同则向被验证方发送Acknowledge消息声明验证通过;
-
如果不同则验证不通过,向被验证方发送Not Acknowledge。
-
-
-
-
-
会话建立过程
-
链路建立阶段:发送LCP报文检测可用情况
-
验证阶段(可选):链路建立成功后根据ppp帧决定是否验证
-
网络层协商阶段:验证成功后,双方发送NCP报文选择协商网络层协议
-
-
会话流程
-
Dead:物理层不可用
-
Establish:LCP协商(链路捆绑,验证方式,最大传输单元..)->LCP进入Opened状态
->底层链路已经建立
-
Authenticate:开始CHAP/PAP验证
-
Terminate:验证失败,拆除链路->LCP转为Down;验证成功:进入Network阶段,NCP协商网络层->NCP Opened,NCP从Initial转到Request;
-
基本配置
-
1R1和R3使用PPP链路直连
2R2和R3把两条ppp链路捆绑为PPP MP直连
-
[R1]local-user jumping class network New local user added. [R1-luser-network-jumping]password simple 123 [R1-luser-network-jumping]service-type ppp [R1-luser-network-jumping]qu [R1]int s0/0/5 [R1-Serial0/0/5]ppp authentication-mode pap [R3]int s0/0/5 [R3-Serial0/0/5]ppp pap local-user jumping password simple 123
R2和R3把两条ppp链路捆绑为PPP MP直连
全局下建立user用户表(对端的),端口下设置本身密码
-
R1 user:admin1,password:admin1; s0/0/3 user:admin2;password:admin2;
-
R2 user:admin2,password:admin2; s0/0/3 user:admin1;password:admin1;
-
-
配置代码
配置前建议关闭端口--报文会一直跳down [R2]int MP-group 1 [R2-MP-group1]shutdown 创建MP-group口,把接口接到MP-group口中 [R1]int MP-group 1 [R1-MP-group1]qu [R1]int s0/0/3 [R1-Serial0/0/3]ppp mp MP-group 1 [R1-Serial0/0/3]int s0/0/4 [R1-Serial0/0/4]ppp mp MP-group 1 进入,配置互联地址 [R1]interface MP-group 1 [R1-MP-group1]ip address 10.1.1.1 30 [R1-MP-group1]qu [R1] 配置主验证方的用户名,密码 [R1]local-user admin1 class network New local user added. [R1-luser-network-admin1]password simple admin1 [R1-luser-network-admin1]service-type ppp [R1-luser-network-admin1]dis this # local-user admin1 class network password cipher $c$3$+PS5+3VIWcW/ne5vLHQfVF/w5DnI1tcgsA== service-type ppp # return 在物理口上配置验证模式,用户名及密码 [R1]interface s0/0/3 [R1-Serial0/0/3]ppp authentication-mode chap [R1-Serial0/0/3]ppp chap user admin2 [R1-Serial0/0/3]ppp chap password simple admin2 [R1-Serial0/0/3]qu [R1]int s0/0/4 [R1-Serial0/0/4]ppp authentication-mode chap [R1-Serial0/0/4]ppp chap user admin2 [R1-Serial0/0/4]ppp chap password simple admin2 [R1-Serial0/0/4]qu
-
双向验证,R2配置与R1几乎完全一致 创建MP-Group口,把接口加入到MP-group口中 [R2]interface MP-group 1 [R2-MP-group1]qu [R2]int s0/0/3 [R2-Serial0/0/3]ppp mp MP-group 1 [R2-Serial0/0/3]int s0/0/4 [R2-Serial0/0/4]ppp mp MP-group 1 [R2-Serial0/0/4]qu [R2]interface MP-group 1 [R2-MP-group1]ip address 10.1.1.2 30 [R2-MP-group1]qu [R2]local-user admin2 class network New local user added. [R2-luser-network-admin2]password simple admin2 [R2-luser-network-admin2]service-type ppp [R2-luser-network-admin2]dis this # local-user admin2 class network password cipher $c$3$cbzwVtsOTKp2OedHXCA6LNtnj/UFTBoThQ== service-type ppp # return [R2]int s0/0/3 [R2-Serial0/0/3]ppp authentication-mode chap [R2-Serial0/0/3]ppp chap user admin1 [R2-Serial0/0/3]ppp chap password simple admin1 [R2-Serial0/0/3]qu [R2]int s0/0/4 [R2-Serial0/0/4]ppp authentication-mode chap [R2-Serial0/0/4]ppp chap user admin1 [R2-Serial0/0/4]ppp chap password simple admin1 [R2-Serial0/0/4]qu [R2]
-
查看
[R2]display interface s0/0/3
[R4]display interface MP-group brief
-