免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2764 | 回复: 0
打印 上一主题 下一主题

学习笔记:PPP协议 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-01 19:09 |只看该作者 |倒序浏览
PPP协议相关(point to point protocol)

HDLC:同步链路上封装,每个厂商的HDLC都是私有,不兼容。HDLC用于租用线路的点到点连接,cisco路由器同步串行链路默认封装协议
cisco的hdlc和标准hdlc帧格式

HDLC缺点

  • 只支持点到点,不支持点到多点;
  • 不支持IP地址协商;
  • 只能封装在同步链路上,如果是同异步串口的话,只有当同异步串口工作在同步模式下才能使用;

PPP

PPP可以使用在异步串行连接比如拨号或者同步串行连接比如ISDN,PPP优点:

  • 支持同步、异步串行链路
  • 支持多种网络层协议
  • 支持各种连接参数的协商
  • 支持错误检测
  • 允许进行数据压缩

PPP协议栈:

使用LCP建立和保持连接-建立、配置、维护和结束点到点的连接的方法。
LCP提供不同的PPP封装选项(协商选项):


  • MRU:最大接收单元。通知对端节点,本端所能接受的PPP数据帧信息域的最大值。通常情况路由器接受到MRU协商后会根据MRU大小修改MTU值。
  • 验证:使用pap和chap;
  • 压缩:增加连接吞吐量,在接收方解压缩;
  • 错误检测:使用Quality和Magicnumber来保证数据可靠性;
  • 多链路捆绑:增加带宽
  • PPP回叫信号:客户端验证成功后,远端终止连接,然后重新初始化连接。


NCP配置上层网络层协议-建立、配置不同网络层协议的方法。可以同时使用多种网络层协议。(NCP包括IPCP和IPXCP等,但实际中最常用的是IPCP。
IPCP协商的参数有:

  • IP地址

如果是静态协商就是不进行协商,手动配置,只是对IP地址进行确认。双方在PPP协商前唯一做得就是将自己的IP地址发送给对方,对方收到后会回应一个确认报文,同时在自己的路由表中增加一条指向对端的静态路由。动态协商是一端不配IP地址,而由另一端在进行IPCP协商过程中分配一个IP地址。
在接口上使用(config-if)#IP address negotiated后,原来配置的IP将失效。分配IP方配置
(config-if)#peer default ip address XXX.XXX.XXX.XXX
NCP会添加一个对方接口地址的直连路由/32,所以采用ppp封装2边接口地址可以不在同一网段。一般说路由器直连的2个接口要在一个网段,如果不在同一网段也可以,不过要手工添加一条静态路由,不写下一跳,直接写直连的本地接口也可以ping通对方,只是PPP的NCP会自动做这个事情。
HDLC是2层链路直连的2个路由器必须在同一网段,否则需要手动指定路由(缺少PPP的NCP过程)
PPP的NCP会自动向双方路由表添加对方路由,不过只会添加32位掩码的路由,而不是对方网段的路由。配置后,路由器会自动认为对方IP直连在自己的串口上。所以PPP直连的不需要配置在同一网段
比如2路由器直接通过s0/0直连,先都采取默认的HDLC封装,分别配上IP
RA#sh ip int bri s0/0
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  1.1.1.1         YES manual up                    up

RB#sh ip int bri s0/0
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  2.2.2.2         YES manual up                    up   

默认是ping不通的,我们手动在RA和RB上添加静态路由:
RA#p 2.2.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
...
Success rate is 0 percent (0/3)

RA(config)#ip route 2.0.0.0 255.0.0.0 s0/0 #指定本地出口
RB(config)#ip route 1.0.0.0 255.0.0.0 s0/0 #指定本地出口
RA#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set
C    1.0.0.0/8 is directly connected, Serial0/0
S    2.0.0.0/8 is directly connected, Serial0/0
RA#p 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/49/136 ms

下面来看看PPP情况,将2个端口配置都删掉(静态路由也NO掉),再配置接口地址(地址还是上面的地址),采用ppp封装:
RA(config)#default int s0/0
RA(config)#no ip route 2.0.0.0 255.0.0.0 s0/0
RA(config)#int s0/0
RA(config-if)#ip add 1.1.1.1 255.0.0.0
RA(config-if)#encao
RA(config-if)#encapsulation ppp
RA(config-if)#no shu

RB做一样的设置,只是IP是2.2.2.2 255.0.0.0
端口双UP以后查看路由表发现自动添加了2.0.0.0/32的路由,认为2.2.2.2是自己直连的
RA#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set
C    1.0.0.0/8 is directly connected, Serial0/0
     2.0.0.0/32 is subnetted, 1 subnets
C       2.2.2.2 is directly connected, Serial0/0


  • TCP头压缩


PPP连接的阶段:
1、连接建立阶段:每个设备发送LCP包来配置和测试链路;
2、认证阶段:如果配置了认证,在认证链路时可以使用chap或者pap,认证发生在读取网络层协议信息之前;
3、网络层协议配置阶段:网络层数据包进行交换前,LCP协调和配置参数。LCP可以容许有一个可选的链路质量检测来检测链路是否满足网络层协议需求,这个阶段是可选的,完成链路质量检测后,网络层协议通过NPC进行单独配置。首先要LCP OPEN以后NCP才能进行协商。


PPP的认证方法:
1、PAP(password authentication protocol):使用密文发送密码,PAP只在初始化连接的时候执行
配置 一次认证,2次握手。被认证方主动发起连接
RA(认证方)
RA(config-if)#encap ppp
RA(config-if)#ppp authentication pap
RA(config-if)#exit
RA(config)#username test password test
RA(config)#int s0/0
RA(config-if)#ip add 1.1.1.1 255.0.0.0
RA(config-if)#no shu


RB(被认证方)
RB(config-if)#encap ppp
RB(config-if)#ppp pap sent-username test passw test
RB(config-if)#ip add 2.2.2.2 255.0.0.0
RB(config-if)#no shu

这里做的是单向认证,当然可以做双向认证,如果做双向就在RA上做sent-username,在R2上建一个username就可以了
2、CHAP(challenge Handshark Authentication protocol):周期性检查以保证对方没有被替换或者改变,初始化连接完成后,本地发送一个挑战请求给远端,远端发送回一个MD5加密的信息,如果信息部匹配连接终止。 一次认证,3次握手。认证方主动发起挑战




CHAP也可以做单向或者双向的认证,单向认证配置
RA(config-if)#enca ppp            RB(config-if)#encap pp
RA(config-if)#ppp authen chap     RB(config-if)#ip add 2.2.2.2 255.0.0.0
RA(config-if)#ip add 1.1.1.1 255.0.0.0   RB(config-if)#no shu
RA(config-if)#no shu
RA(config)#username RB pass test  RB(config)#username RA pass test
                                  RB(config)#no username RA pass test
                                  RB(config-if)#ppp chap password test

其中RB作为被认证方,最后一句配置可以使用下面2句来替代。
单向认证ppp chap password的密码有效,但优先会使用username配置的密码,如果username的密码错误而chap password的密码正确也不能认证成功,只能no username以后才会使用chap password的密码,在双向认证中chap password无效。
双向认证只需在RB上启用ppp authentication chap就可以了。
还有一个参数ppp chap hostname 用来代替发送默认的主机名。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100991/showart_2043321.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP