同步串行链路(Serail Point-to-Point Link)的封装
3.1-HDLC/PPP
高级数据链路控制HDLC(High-Level Data Link Control):
是由ISO开发的面向位的同步数据链路层协议,由SDLC协议发展而来。HDLC通过使用帧字符和校验和而规定了在同步串行线路上的封装方式;一般不推荐HDLC;
HDLC不支持多协议IP;Cisco为了使其支持多协议而在其帧头格式上增加了一个私有位:支持多协议了IP/IPX/AT(appletalk)但是不再兼容其他品牌;
HDLC还不支持认证因此无法保证网络安全;
Cisco的设备默认封装HDLC。
点到点协议PPP(Point-to-Point Protocol):
PPP是业界开放性的标准,支持多协议环境,兼容所有品牌;华为的设备默认封装PPP;
PPP的前身是串行线路协议SLIP(Serial Line Interface Protocol),因功能单一而趋向淘汰;
PPP分成两个部分:链路控制协议LCP(Link Control Protocol)负责对L1物理层进行链路的建立、控制和维护;网络控制协议NCP(Network Control Protocol=IPCP+CDPCP)负责为L3网络层向下提供无差别的接口(*CP);因此也可以说PPP是二层半协议也就是具有部分L3功能的L2协议;
LCP包含4大网络模块:认证(Authentication)/压缩(Compress)/回拨(Callback)/多链路捆绑(Mulit-link)。
PPP的认证:
∵PPP是L2协议∴PPP的认证是链路认证→一旦认证成功就接通链路在链路Down掉以前都不再认证了;PPP认证有两种:
明文密码认证PAP(Password Authentication Protocol):二次握手(被认证方发送账号密码→主认证方对比账号密码后根据结果作出回应);PAP的账号密码在网路上传播,不安全;
密文密码认证CHAP(Challenge Handshake Authentication Protocol):三次握手(主认证方发送乱码challenge→双方同时使用MD5不可逆算法运算并且被认证方发送结果→主认证方对比运算结果后根据结果作出回应);CHAP的账号密码不会在网路上传播,安全性好,推荐使用。
PPP的协商过程:
1:Interface Serial0, changed state to up (L1 up);
2:LCP: State is Open ;
3:PPP的认证(这是可选项目,如果进行认证,就必须成功,才有NCP的工作);
4-1:se1 IPCP: State is Open (IP);
4-2:se1 CDPCP: State is Open (cdp:show cdp neighbor);
5:Line protocol on interface serial1,changed state to up (L2 up)。
----------------------------------------------------------------------------
LAB1:使用HDLC封装点对点链路:
STEP1:在接口之间封装HDLC(默认的):
构建拓朴,确认L1/L2/L3通达(L1:V.35/L2:HDLC/L3:routed网络协议IP和routing寻路协议RIP);
然后查看即可(sh in s 0):L1 is up,L2 is up……Encapsulation HDLC;
STEP2:运行RIP:
----------------------------------------------------------------------------
LAB2:使用PPP封装点对点链路:
STEP1:在串行链路的接口之间封装PPP:
接上一个拓朴,在R1/R3之间的接口:(c-i)#encapsulation ppp ;
可以打开Debug后SH/no SH接口来查看PPP的协商:#debug ppp encapsulation :L1 State is up →LCP State is open →IPCP State is open →CDPCP State is open →L2 State is up ;
再查看接口信息(sh in s 0):L1 is up,L2 is up……Encapsulation PPP,LCP is open open:IPCP,CDPCP……;
观查完后最好关闭Debug:#no debug ppp encapsulation ;
STEP2:在R3和R1之间互Ping:
能通的!为什么?路由的工作原理……
在R1#PPP链路的对方接口的32位主机路由:C 13.0.0.3/32 ;可以用(c)#in s1 →no peer neighbor-route消去(仅对本R有效)。
路由(Route v.动词):核心词Forwarding转发,过程为路由器从入接口收到信息后剥掉L2帧头FRAME(源地址和目标地址是前一个发此信息帧的路由器和接收此信息帧的本路由器),然后查看L3层包头PACKET(源地址和目标地址是发此信息包的根源路由器和要接收此信息包的最终路由器),接着查询自己的路由表找到到目标地址的出接口和下一个路由器(下一跳),并按照两者之间的封装方式重新封装L2帧头FRAME(源地址和目标地址是发送此信息帧的本路由器和下一个要接收此帧的路由器)并从出接口发出此帧;不断封装→解封装→封装→解封装→封装:跳数(Hops)因此影响到路由的开销。
----------------------------------------------------------------------------
LAB3:PPP的认证:
STEP1:进行PAP认证:
首先确定R1/R3链路已经是PPP封装(sh in s 0):L1 is up,L2 is up……Encapsulation PPP ;
然后在双方的路由器上为对方建立账号/密码:(c)#username R3N password R3P 和…… ;
接着在双方接口上选定认证方式为PAP:(c-i)#ppp authentication pap ;
最后在双方接口上输入账号/密码:(c-i)#ppp pap sent-username R1N password R1P 和…… ;
可以打开Debug后SH/no SH接口来查看PPP的协商:#debug ppp encapsulation ;
在R3和R1之间互Ping能通的,为什么;
STEP2:进行CHAP认证:
这次在R1/R2上做,首先确定链路之间已经是PPP封装,不是就改(c-i#en p);
然后同样是在双方的路由器上为对方建立账号/密码:(c)#username R2 password R1R2P 和……;特别注意:双方的密码必需一致哦,不然MD5运算的结果必定不同的,还有账号要用对方的路由器名字;可以分别试一试;
接着在双方接口上选定认证方式为PPP:(c-i)#ppp authentication chap ;
如果名字不同::(c-i)#ppp authentication chap →ppp chap hostname R2 →ppp chap password R1R2P 好麻烦的……
可以打开Debug后SH/no SH接口来查看PPP的协商:#debug ppp encapsulation 。
----------------------------------------------------------------------------
LAB4:PPP的MLP(MultiLink Protocol):
STEP1:构建拓朴:
将冗余链路上接口的原有配置都删除;需要在DCE端配时钟→R2的两端都是哦!
MLP是L2冗余,对比RIP的L3冗余:L3冗余收敛速度受路由协议的收敛速率影响通常较慢;
实验前用#sh controllers serial查看:
HD unit 0, idb = 0x939294, driver structure at 0x940860……buffer size 1524 HD unit 0, V.35 DCE cable, clockrate 64000……cpb = 0xE1, eda = 0x5078, cda = 0x508C……RX ring with 16 entries at 0xE15000 ;
STEP2:在链路两端的接口封装PPP并运行MLP:
(c)#in s0 →en ppp →ppp multilink ;
STEP3:在双方路由器上创建虚拟模板接口:
(c)#Interface virtual-template 1 →ip add 24.0.0.2 255.255.255.252 →ppp multilink ;
STEP4:在MLP中,调用虚拟模板:
R2/R4(c)#multilink virtual-template 1
设置虚拟接口后带宽加倍用#sh in virtual-a 1 得:Interface address is 35.0.0.1/30……BW 3088 Kbit……
MLP两端上有了32位主机路由由(host route)::C 12.0.0.1/32 is directly connected,Serial 0 ;
可以在接口中,关闭PPP的主机路由Interface serial 0 →No peer neighbor-route 。