7.1、HDLC和PPP原理与配置
7.1、HDLC和PPP原理与配置
- 前言
- 广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-Level Data Link Control)和点对点协议(Point to Point Protocol)是两种典型的串口封装协议
- 串行链路的数据传输方式
- 串行链路的传输方式分为两种
- 异步
- 以字节为单位来传输数据
- 开始和结束各有一个起始位,起始位二进制为0。每一个数据传输下都有开始和停止位,这样传输数据时开始和停止位都要占据相当大的比例,每一个字节的发送都要有额外的开销
- 同步
- 以帧尾单位来传输数据
- 通信时要使用时钟来同步本端和对端的设备通信
- 异步
- 串行链路的传输方式分为两种
- HDLC协议应用
- High-level Data Link Control,高级数据链路控制,简称HDLC,是一种面向比特的链路层协议
- HDLC的特点
- 数据可以进行全双工通信
- 所有帧采用CRT校验
- 传输的控制功能和处理功能分离具有非常强大的灵活性和较为完善的控制功能
- HDLC帧结构
- Flag
- 标志字段
- 标志字段是一个固定的值,表示一个标志帧的开始和结束
- 标志字段
- Address
- 地址字段
- 地址字段携带的是地址信息
- 地址字段
- Control
- 将HDLC的帧分为三种类型
- 信息帧
- Information
- 信息帧用于传送有效信息和数据
- 简称为I帧
- 监控帧
- 主要用于差错控制和流量控制
- 无编号帧
- 主要用于对链路的建立、拆除以及多种控制功能
- 信息帧
- 将HDLC的帧分为三种类型
- Information
- 用来包含任意长度二进制的容量
- FCS
- 校验两个字段之间的内容是否是完全的
- Flag
- HDLC基本配置
- 配置步骤
- 1、进入接口
- 2、将接口类型修改为HDLC
- 华为设备默认接口类型为PPP。要使用HDLC时,要把链路类型改为HDLC协议
- 3、配置地址
- 配置步骤
- HDLC接口地址借用
- 串行接口可以借用Loopback接口的IP地址和对端建立连接
- 当配置了环回口时,在接口下可以把环回口当做接口地址,就不需要在对接口地址进行重新配置
- 配置步骤
- 1、进入接口开启HDLC链路协议
- 2、将地址替代为使用环回口的地址
- Ip address unnumbered interface loopback 0
- 3、配置静态路由指向出接口
- Ip route-static 10.1.1.0 24 Serial 1/0/0
- 主要是用于节省地址空间。但是接口地址借用的实际作用并没有那么大
- 既然使用了环回口地址为什么不直接配置IP地址
- 串行接口可以借用Loopback接口的IP地址和对端建立连接
- 配置验证
- 可以看到S1/0/0的地址已经是环回口的地址,已经被借用成功了
- 由于HDLC接口地址借用作用并不是很大,所以慢慢的HDLC协议被PPP协议取代了
- PPP协议应用
- PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输
- 既能支持同步,也能支持异步
- 提供良好的扩展性
- PPPOE
- PPP协议在以太网上的应用
- PPPOE
- PPP协议主要提供了LCP和NCP协议进行协商参数
- PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输
- PPP组件
- PPP组件一共分为两种协议
- 链路层控制协议(LCP)
- 网络层控制协议(NCP)
- 通过LCP建立成功以后,再经过NCP的参数协商,连接才建立成功。然后可以通过PPP协议传输数据
- PPP组件一共分为两种协议
- 链路建立过程
- 链路建立过程
- Dead
- 链路状态初始状态为Dead阶段
- Dead阶段为不可用阶段
- Establish
- 链路开始建立阶段,进入Establish阶段
- Establish阶段是PPP链路开始进行LCP参数协商,当参数协商成功以后,就会进入Open状态。表示底层链路建立成功
- Authenticate
- 进入Open状态后,开始进行认证
- 认证成功以后,开始进入NCP协商
- NCP协商完成后,就可以开始进行传输数据,这条PPP链路就可以开始发送报文
- 如果链路开始想要进行中断,或者验证失败以后,则进入Terminate状态
- Terminate状态,所有资源都被释放,通信双方将回到Dead状态
- 认证成功以后,开始进入NCP协商
- 进入Open状态后,开始进行认证
- Dead
- 链路建立过程
- PPP帧格式
- PPP帧格式和HDLC帧格式相似
- Flag
- 表示物理帧的起始和结束
- Address
- 地址信息
- Control
- 控制字段
- Protocol
- 协议
- Information
- LCP报文封装格式
- LCP报文配置参数的封装格式
- LCP报文封装格式
- FCS
- 帧校验
- Flag
- PPP帧格式和HDLC帧格式相似
- LCP报文
- LCP报文类型
- Configure-Request
- Configure-Ack
- Configure-Nak
- Configure-Reject
- LCP报文类型
- LCP协商参数
- LCP协商参数
- 最大接收单元MRU
- VRP平台上,参数会使用接口配置最大的帧校验MTU来表示
- 默认1500字节
- 认证协议
- 认证对端使用的协议要一致
- PAP
- CHAP
- 认证对端使用的协议要一致
- 魔术字
- 检测环路
- 最大接收单元MRU
- LCP协商参数
- LCP链路参数协商
- 协商步骤
- RTA向RTB发送一个Configure-Request报文,包括协商参数
- MTU
- 魔术字
- 认证协议
- RTB参考本端协商参数后,如果没有问题就会发送一个Configure-Ack,此时链路参数协商就成功了
- RTA向RTB发送一个Configure-Request报文,包括协商参数
- 协商参数步骤-不认可参数
- 如果RTB发现RTA发送Configure-Request报文的参数,有些参数不正确。
- Eg
- RTA默认MTU为1500,而RTB为1548
- Eg
- 此时RTB就会通知RTA,发送包含通知信息的Configure-Nak,通知RTA双方的MTU值不同需要修改
- RTA修改后,会将修改过后的参数重新发送给RTB
- 如果RTB发现RTA发送Configure-Request报文的参数,有些参数不正确。
- 协商参数步骤-不认识参数
- RTA发送Configure-Request报文的协商参数中,RTB有些参数不认识
- RTB会发送Configure-Reject回应RTA,通知哪些参数是不认可的
- RTA删除对应的不认识的参数,并且重新发送Configure-Request报文,对RTB进行协商
- 协商步骤
- PPP基本配置
- 配置
- 进入接口,配置链路协议为PPP协议
- 串口链路端口本身默认为PPP
- 进入接口,配置链路协议为PPP协议
- 配置
- PPP认证模式-PAP
- PAP认证模式
- 分为认证方和非认证方
- 认证方相当于服务器
- 被认证方相当于用户
- 被认证方想要登录服务器需要输入账号和密码,账号和密码输入到认证方,认证方则在数据帧进行数据比对
- 认证方比对成功后会发送一个认证成功的报文,发送给被认证方,然后就可以登录到服务器
- 分为认证方和非认证方
- PAP认证步骤
- 被认证方通过Request报文发送用户名和密码
- 认证方通过数据库查找用户名和密码是否认证成功
- 认证成功则发送一个ACK报文来确定认证成功
- 认证失败则发送一个Nak报文来确定认证失败
- 由于PAP认证方式不是很安全,可以通过抓包即可清晰的看到密码为多少
- PAP认证模式
- PPP认证模式-CHAP
- CHAP认证模式
- CHAP模式需要经过三种报文交互,而且交互过程和PAP相反。它是由认证方进行发送
- CHAP认证步骤
- 首先由认证方发送一个Challenge
- Challenge包含了账户的账号和一串随机的符号
- 被认证方收到了Challenge报文后,会将随机的字符和密码进行MD5的运算,计算出一个字符串。然后将字符串发送给认证方。
- 认证方数据库中本身就有一个账号和随机字符,认证方收到后也将随机字符和密码进行MD5运算,将两个运算进行比对,是否正确
- 如果一致则发送一个认证成功的报文,Success
- 如果不一致则发送一个认证失败的报文,Failure
- 首先由认证方发送一个Challenge
- CHAP认证模式
- IPCP静态地址协商
- 认证完成后就开始进入NCP协商,ACP协商是属于IP层的协议。由于我们现在用的就是IPV4,所以NCP也可以称为IPCP技术
- IPCP技术有一个地址协商,地址协商分为两种
- 静态协商
- 动态协商
- IPCP技术有一个地址协商,地址协商分为两种
- 静态协商
- RTA和RTB之间发送一个Request报文,Request报文包含一个IP地址。相当于告诉RTB我的接口地址是10.1.1.1
- RTB回应一个ACK报文,通知已收到
- RTB再回应一个Request报文,告诉对端我的地址是10.1.1.2
- RTA回应一个ACK报文,通知已收到
- 静态协商两两之间互相交互对方的IP地址,然后对方的地址协商就完成了。PPP链路就可以互相通信
- 认证完成后就开始进入NCP协商,ACP协商是属于IP层的协议。由于我们现在用的就是IPV4,所以NCP也可以称为IPCP技术
- IPCP动态地址协商
- IPCP动态地址协商可以分配地址。
- 动态协商
- 假设RTA的s1/0/0接口并没有配置地址,RTB的接口配置地址了
- 首先RTA向RTB发送Request报文,这个报文中没有它的地址,只有0.0.0.0。
- IP地址0.0.0.0表示向对端请求IP地址
- RTB收到Request报文后,向RTA发送一个NAK报文,分配给它一个地址,为10.1.1.1的同一网段地址
- RTA收到后双方再次进行协商。接下来的步骤和静态地址协商是一致的
- 动态协商和静态协商相比,只是多了一步分配地址的步骤
- PAP认证
- PAP认证是通过AAA认证来进行的
- 配置
- RTA(认证方)
- 首先创建AAA视图
- 配置用户名
- 配置密码
- 配置账户使用服务类型为PPP
- 配置接口
- 配置连接协议为PPP
- 配置接口下的认证方式为PAP
- 配置地址
- RTB(被认证方)
- 进入接口
- 配置连接协议为PPP
- 配置PPP认证方式为PAP、账号、密码
- 配置地址
- 进入接口
- 首先创建AAA视图
- RTA(认证方)
- 配置验证
- 配置完成后可以看到双方完成了协商
- 配置CHAP认证模式
- CHAP认证模式和PAP认证模式相似
- 配置
- 在认证端将认证模式修改为CHAP
- 在被认证端配置服务的账号和密码
- 配置验证
- 总结
- 发送端在发送Configure-Request之后,收到哪个消息才能表示PPP链路建立成功?
- 收到Configure-ACK报文才能确认PPP链路建立成功
- CHAP认证方式需要交互几次报文?
- 三次握手认证
- 1、认证方发送Challenge
- 2、被认证方将Challenge的信息进行MD5的运算
- 3、最后被认证方将字符发送给认证方,认证方再进行确认是否验证成功
- 三次握手认证
- 发送端在发送Configure-Request之后,收到哪个消息才能表示PPP链路建立成功?