广域网技术HDLC&PPP
概述
以太网:是一个协议 以太网封装协议
HDLC == PPP == 以太网 都是封装协议
华为默认的串行链路用的是 PPP 思科 HDLC
- 广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-Level Data Link Control)和点对点协议PPP( Point to Point Protocol)是两种典型的串口封装协议。
HDLC
串行链路的数据传输方式
同步:单线程操作,意思就是我们再买东西的时候,需要给钱等拿到东西,,一下子完成
异步:多线程的操作,就例如在网上买个东西,然后在这期间你可以做其他事情
同步 就是需要完整的干完一件事,才能干第二件事
- 串行链路普遍用于广域网中。串行链路中定义了两种数据传输方式:异步和同步。
- 异步传输是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。
- 同步传输是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。DTE即数据终端设备,它通常使用DCE产生的时钟信号。
HDLC协议应用
HDLC帧结构
HDLC基本配置
- 用户只需要在串行接口视图下运行link-protocol hdlc命令就可以使能接口的HDLC协议。华为设备上的串行接口默认运行PPP协议。用户必须在串行链路两端的端口上配置相同的链路协议,双方才能通信。
HDLC接口地址借用
-
一个接口如果没有IP地址就无法生成路由,也就无法转发报文。IP地址借用允许一个没有IP地址的接口从其它接口借用IP地址。这样可以避免一个接口独占IP地址,节省IP地址资源。一般建议借用loopback接口的IP地址,因为这类接口总是处于活跃(active)状态,因而能提供稳定可用的IP地址。
-
本例中,在RTA的S1/0/0接口配置完接口地址借用之后,还需要在RTA上配置静态路由,以使RTA能够转发数据到10.1.1.0/24网络。
-
执行display ip interface brief命令可以查看路由器接口简要信息。如果有IP地址被借用,该IP地址会显示在多个接口上,说明借用loopback接口的IP地址成功。
PPP
PPP协议应用
- PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。PPP协议有如下优点:
- PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
- PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
- PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
- PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
- PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
- 无重传机制,网络开销小,速度快。
PPP组件
- PPP包含两个组件:链路控制协议LCP和网络层控制协议NCP。
- 为了能适应多种多样的链路类型,PPP定义了链路控制协议LCP。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议来实施认证过程,只有认证成功之后才会建立连接。
- PPP定义了一组网络层控制协议NCP,每一个NCP对应了一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP协议,IPXCP用于协商控制IPX协议等。
PPP链路建立过程
- 对于PPP链路建立过程的描述如下:
- Dead阶段也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。
- 在Establish阶段,PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。
- 多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。
- 在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。
NCP协商成功后,PPP链路将保持通信状态。PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。
PPP帧格式
PPP基本配置
- 建立PPP链路之前,必须先在串行接口上配置链路层协议。华为ARG3系列路由器默认在串行接口上使能PPP协议。如果接口运行的不是PPP协议,需要运行link-protocol ppp命令来使能数据链路层的PPP协议。
PPP认证模式-PAP
- PAP认证的工作原理较为简单。PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送。
- LCP协商完成后,认证方要求被认证方使用PAP进行认证。
- 被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方。
- 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配,如果匹配,则返回Authenticate-Ack报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。
PAP认证配置
-
local-user huawei password cipher huawei123命令用于创建一个本地用户,用户名为“huawei”,密码为“huawei123”,关键字“cipher”表示密码信息在配置文件中被加密。
-
local-user huawei service-type ppp命令用于设置用户“huawei”为PPP用户。
-
ppp authentication-mode pap命令用于在认证方开启PAP认证的功能,即要求对端使用PAP认证。
-
ppp pap local-user huawei password cipher huawei123命令用于在被认证方配置PAP使用的用户名和密码信息。
-
配置验证 debugging ppp pap all
PPP认证模式-CHAP
- CHAP认证过程需要三次报文的交互。为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程所使用的报文均使用相同的Identifier信息。
- LCP协商完成后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和一个随机产生的Challenge字符串,此Identifier即为后续报文所使用的Identifier。
- 被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ Identifier+密码+Challenge },意思是将Identifier、密码和Challenge三部分连成一个字符串,然后对此字符串做MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发回认证方。
- 认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同,然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。
- 使用CHAP认证方式时,被认证方的密码是被加密后才进行传输的,这样就极大的提高了安全性。
再点到点类型中 IP地址的掩码可以写31位
没有广播和网络号这样一说
[R1-Serial2/0/0]ip add 1.1.1.1 31
CHAP认证配置
-
local-user huawei password cipher huawei123命令用于创建一个本地用户,用户名为“huawei”,密码为“huawei123”;关键字“cipher”表示密码信息在配置文件中加密保存。
-
local-user huawei service-type ppp命令用于设置用户“huawei”为PPP用户。
-
ppp authentication-mode chap命令用于在认证方开启CHAP认证的功能,即要求对端使用CHAP认证。
-
ppp chap user huawei命令用于在被认证方设置CHAP使用的用户名为“huawei”。
-
ppp chap password cipher huawei123命令用于在被认证方设置CHAP使用的密码为“huawei123”。
-
配置验证 debugging ppp chap all
配置命令
PAP
//PAP的认证方式为:被认证方先明文给认证方发送一个用户名密码
//然后认证方针对被认证方发送过来的用户名和密码来进行效验 然后建立连接
//配置ppp的认证方式为pap 认证的密码为aaa 的方式
//配置认证的这一端为服务端,为客户端提供用户名和密码
[R1-Serial2/0/0]ppp authentication-mode pap
//配置aaa
aaa
local-user wml password cipher wml
local-user wml privilege level 3
local-user wml service-type ppp
//向服务端明文请求用户名和密码
[R2-Serial2/0/0]ppp pap local-user wml password cipher wml
CHAP
//chap的工作方式:认证方先给被认证方发送一个加密密码信息,然后认证方响应一个用户名和密码 来进行认证
//配置ppp的认证方式为chap
//配置认证的这一端为认证方也就是服务端 为客户端提供用户名和密码
[R1-Serial2/0/0]ppp authentication-mode chap
//配置aaa
aaa
local-user wml password cipher wml
local-user wml privilege level 3
local-user wml service-type ppp
密文的方式响应给认证端用户名和密码
[R2-Serial2/0/0]ppp chap user wml
[R2-Serial2/0/0]ppp chap password cipher wml