340 likes | 663 Views
第 6 章 HDLC 和 PPP. 张书源. 数据在网络中传输时是以帧为单位进行传输的,不同网络使用不同的协议封装数据帧,它们定义的帧格式也不一样。 目前的局域网多使用以太网,数据用以太网帧进行封装。 广域网使用的技术较多,不同技术下帧的封装也不同,其中在点对点的串行线路中,主要使用 HDLC 协议和 PPP 协议封装数据帧。. HDLC 帧. 或. Ethernet 帧. Ethernet 帧. PPP 帧. 以太网. 以太网. f0/0. s0/0. s0/0. f0/0. 点对点网络.
E N D
第6章 HDLC和PPP 张书源
数据在网络中传输时是以帧为单位进行传输的,不同网络使用不同的协议封装数据帧,它们定义的帧格式也不一样。数据在网络中传输时是以帧为单位进行传输的,不同网络使用不同的协议封装数据帧,它们定义的帧格式也不一样。 目前的局域网多使用以太网,数据用以太网帧进行封装。 广域网使用的技术较多,不同技术下帧的封装也不同,其中在点对点的串行线路中,主要使用HDLC协议和PPP协议封装数据帧。
HDLC帧 或 Ethernet帧 Ethernet帧 PPP帧 以太网 以太网 f0/0 s0/0 s0/0 f0/0 点对点网络 路由器具有协议转换功能,当它收到一个数据帧后,会把帧拆开,取出其中的数据报,经路由处理后,再用出口的数据链路层协议封装数据帧。 以太网接口运行的数据链路层协议是IEEE802.3。 Serial接口运行的数据链路层协议是HDLC、PPP等。
6.1 HDLC HDLC协议有标准的HDLC和Cisco的HDLC两种。 HDLC帧格式: Flag:表示帧的开始,取值为7F。 Address:地址,用于在多点的网络中对目的设备的寻址。 Control:表示帧的类型,如信息帧、管理帧等。
Proprietary:Cisco HDLC的专有字段,可用于指明数据字段的协议类型,标准的HDLC无此字段。 Data:帧封装的数据报。 FCS:帧校验序列。 Flag:表示帧的结束,取值为7E。 标准的HDLC没有Proprietary字段,所以它只能对一种网络层协议进行封装,而Cisco HDLC支持多网络层协议。 HDLC不提供验证功能。
HDLC的使用: Cisco路由器的串口默认使用HDLC,它只能用于Cisco设备间的连接,对于Cisco设备和非Cisco设备的连接,应使用PPP协议。 Cisco Cisco HDLC Cisco 非Cisco PPP
HDLC的配置: Cisco路由器的串口默认使用HDLC,不需要进行配置。如果它被配置为其它封装,想要改回HDLC,需要对串口进行配置。 R1 R2 s0/0 s0/0 HDLC R1(config)# interface s0/0 R1(config-if)# encapsulation hdlc R2(config)# interface s0/0 R2(config-if)# encapsulation hdlc
6.2 PPP协议 PPP协议不是一个单纯的进行数据封装的协议,它提供了比较完整的传输服务功能。 PPP由三部分组成: 网络层 数据链路层 物理层
1、同步或异步物理介质:PPP既支持同步电路也支持异步电路。1、同步或异步物理介质:PPP既支持同步电路也支持异步电路。 2、LCP:用于建立、配置和测试数据链路。 3、NCP:用来建立和配置不同的网络层协议。 在应用中, PPP协议可用于路由器间的串行链路,也可用于主机到网络的ISDN、电话线连接等。 PPP协议支持多种网络层协议,如IP、IPX等。 PPP协议提供了链路验证功能,提高了链路的安全性。 PPP协议支持使用动态IP地址的客户端。
PPP的帧格式:PPP采用了HDLC的封装方式。 Flag:表示帧的开始和结束,值均为7F。 Address:值为FF,表示广播。 Control:值为03。 Protocol:表示数据字段的协议类型。 Data:封装的数据报。 FCS:帧校验序列。
PPP会话过程 当一台设备通过PPP协议接入广域网时,它需要经历一个会话过程。 1、链路建立和配置协调 客户端设备发送LCP数据包与远端的PPP设备建立链路,并进行参数协调,如最大接收单元、字段压缩等。 2、链路质量检测 如果远端的PPP设备配置了验证功能,则客户端需要提供用户名和密码才能通过验证,这可以保证客户的合法性。
3、网络层协议配置协调 设备发送NCP数据包来协调使用的网络层协议,可以选择配置一种或多种网络层协议。 当协调完成后,就可以传输数据了。 4、关闭链路 当客户端要离开网络时,会提出关闭链路的请求。 如果客户端长时间空闲(可能已关机或故障),该链路也会被关闭。
PPP的配置 R1 R2 s0/0 s0/0 PPP 同一链路的两端必须配置成相同的协议才能通信。 R1(config)# interface s0/0 R1(config-if)# encapsulation ppp R2(config)# interface s0/0 R2(config-if)# encapsulation ppp
PPP的验证 验证是为了保证用户的合法性。 当用户想要接入某ISP的网络时,需要到ISP办理入网手续,获取上网的用户名和密码,ISP会把用户名和密码配置在自己的PPP设备上,当用户上网时,需提供正确的用户名和密码,才能通过PPP验证,建立和ISP的通信连接。 PPP验证 客户端 PPP设备
PPP验证有两种方式:PAP和CHAP。 1、PAP(密码验证协议): 利用双向握手信号与远端节点进行验证。 用户名,密码 客户端 接受、拒绝 PPP设备 在PAP验证中,验证由用户端发起,密码是以明文传输的,容易被窃取。也不能防范利用反复验证引起的再生攻击。
2、CHAP(协议握手验证协议): 利用三次握手周期地验证源节点的身份。 CHAP询问 响应 客户端 PPP设备 接受、拒绝 CHAP验证在链路建立后开始,并周期性进行。验证由服务端发起,不允许用户端在没有收到询问时进行验证尝试,这样可以防范客户端发起的再生攻击。每个询问消息都是不可预测的唯一值,且经过加密,这可保证信息的安全。 CHAP验证的安全性要高于PAP验证。
PPP验证的配置 PPP设备可以是计算机、路由器等设备,这里只介绍路由器的PPP验证。 路由器支持PAP验证和CHAP验证,管理员可根据需要选择其中的一种进行配置。 配置PPP验证前,必须保证相连的路由器已经采用了PPP封装。 R1 R2 s0/0 s0/0 PPP
PAP验证的配置 R1 R2 s0/0 s0/0 PPP DCE 客户 ISP 远程路由器 中心路由器 ISP是用户名和密码的提供者,他要求只有合法用户才能使用PPP接入。 客户是用户名和密码的使用者,他利用密码说明自己的合法性。
中心路由器(ISP)的PAP配置: R2(config)# interface s0/0 R2(config-if)# encapsulation ppp 把s0/0口配置为PPP封装; R2(config-if)# ppp authentication pap 在s0/0口启用PAP验证(当有设备呼叫此接口时会要求验证); R2(config-if)# exit R2(config)# username bsy password 1234 配置客户路由器验证时使用的名字和密码。本例中用户名为bsy,密码为1234。
远程路由器(客户)的PAP配置: R1(config)# interface s0/0 R1(config-if)# encapsulation ppp 把s0/0口配置为PPP封装; R1(config-if)# ppp pap sent-username bsy password 1234 配置传送给中心路由器的名字和密码。 说明:用户名和密码是由ISP提供的,用户名不是本机的主机名。 这种方式形成的是单向验证,即R2要求R1在接入时必须验证。
除了配置单向的验证外,还可以配置成双向验证,这时,双方互相验证对方的身份,只有都验证成功了,PPP连接才能使用。除了配置单向的验证外,还可以配置成双向验证,这时,双方互相验证对方的身份,只有都验证成功了,PPP连接才能使用。
旧版本系统的PAP配置: ppp pap sent-username命令在Cisco IOS 11.1及以后的版本中才有。 在旧版本的IOS中验证使用的用户名是路由器的名字。 中心路由器(ISP)的配置: R2(config)# interface s0/0 R2(config-if)# encapsulation ppp R2(config-if)# ppp authentication pap R2(config-if)# exit R2(config)# username R1 password 1234
远程路由器(客户)的PAP配置: R1(config)# interface s0/0 R1(config-if)# encapsulation ppp R1(config-if)# ppp authentication pap R1(config-if)# exit R1(config)# username R2 password 1234 说明:这种配置方式中,用户名使用的是对方路由器的名字,密码必须相同。
CHAP验证的配置 中心路由器(ISP)的CHAP配置: R2(config)# interface s0/0 R2(config-if)# encapsulation ppp R2(config-if)# ppp authentication chap R2(config-if)# exit R2(config)# username bsy password 1234 配置客户路由器验证时使用的名字和密码。本例中用户名为bsy,密码为1234。
远程路由器(客户)的CHAP配置: R1(config)# interface s0/0 R1(config-if)# encapsulation ppp R1(config-if)# ppp chap hostname bsy R1(config-if)# ppp chap password 1234 配置传送给中心路由器的名字和密码。
旧版本系统的CHAP配置: ppp chap hostname命令和ppp chap password命令在Cisco IOS 11.1及以后的版本中才有。 在旧版本的IOS中验证使用的用户名是路由器的名字。 中心路由器(ISP)的配置: R2(config)# interface s0/0 R2(config-if)# encapsulation ppp R2(config-if)# ppp authentication chap R2(config-if)# exit R2(config)# username R1 password 1234
远程路由器(客户)的CHAP配置: R1(config)# interface s0/0 R1(config-if)# encapsulation ppp R1(config-if)# ppp authentication chap R1(config-if)# exit R1(config)# username R2 password 1234 说明:这种配置方式中,用户名使用的是对方路由器的名字,密码必须相同。
在实际应用中,ISP通常把中心路由器配置成支持两种验证,客户端路由器可自己选择使用的验证方法。在实际应用中,ISP通常把中心路由器配置成支持两种验证,客户端路由器可自己选择使用的验证方法。 使一个接口支持两种验证,可用如下命令: R2(config-if)# ppp authentication chap pap 或者使用: R2(config-if)# ppp authentication pap chap 验证时会先尝试用第一种验证方式,如果被拒绝,再使用第二种验证方式。 (Boson不支持此命令。)
PPP配置实例 R1 R2 s0:.1 s0:.2 PPP DCE 200.1.1.0/24 客户 ISP R2:路由器名为CNC-1,它的S0口采用PPP封装,要求使用CHCP或PAP进行验证,提供给客户的用户名为BSY,密码为1234。 R1:使用ISP提供的用户名和密码配置路由器,使它能通过验证。
ISP端路由器(R2)的配置: Router(config)# hostname CNC-1 CNC-1(config)# interface s0 CNC-1(config-if)# ip address 200.1.1.2 255.255.255.0 CNC-1(config-if)# clock rate 64000 CNC-1(config-if)# encapsulation ppp CNC-1(config-if)# ppp authentication chap pap CNC-1(config-if)# no shutdown CNC-1(config-if)# exit CNC-1(config)# username BSY password 1234
客户端路由器(R1)的配置: 如果管理员决定使用PAP验证。 R1(config)# interface s0 R1(config-if)# ip address 200.1.1.1 255.255.255.0 R1(config-if)# encapsulation ppp R1(config-if)# ppp pap sent-username BSY password 1234 R1(config-if)# no shutdown
客户端路由器(R1)的配置: 如果管理员决定使用PAP验证,但IOS为旧版本。 Router(config)# hostname BSY BSY(config)# interface s0 ip address 200.1.1.1 255.255.255.0 BSY(config-if)# BSY(config-if)# encapsulation ppp BSY(config-if)# ppp authentication pap BSY(config-if)# no shutdown BSY(config-if)# exit BSY(config)# username CNC-1 password 1234
客户端路由器(R1)的配置: 如果管理员决定使用CHAP验证。 R1(config)# interface s0 R1(config-if)# ip address 200.1.1.1 255.255.255.0 R1(config-if)# encapsulation ppp R1(config-if)# ppp chap hostname bsy R1(config-if)# ppp chap password 1234 R1(config-if)# no shutdown
客户端路由器(R1)的配置: 如果管理员决定使用CHAP验证,但IOS为旧版本。 Router(config)# hostname BSY BSY(config)# interface s0 BSY(config-if)# ip address 200.1.1.1 255.255.255.0 BSY(config-if)# encapsulation ppp BSY(config-if)# ppp authentication chap BSY(config-if)# no shutdown BSY(config-if)# exit BSY(config)# username CNC-1 password 1234