PPP通讯协议.doc_第1页
PPP通讯协议.doc_第2页
PPP通讯协议.doc_第3页
PPP通讯协议.doc_第4页
PPP通讯协议.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.PPP协议规范一、介绍:PPP是为在同等单元之间传输数据包这样的简单的链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。(人们)有意让PPP为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。二、封装:PPP封装提供了不同网络层协议同时通过统一链路的多路技术。精心的设计PPP封装,使其保有对常用支持硬件的兼容性。当使用默认的类HDLC帧(HDLC-likeframing)时,仅需要8个额外的字节,就可以形成封装。在带宽需要付费时,封装和帧可以减少到2或4个字节。为了支持高速的执行,默认的封装只使用简单的字段,多路分解只需要对其中的一个字段进行检验。默认的头和信息字段落在32-bit边界上,尾字节可以被填补到任意的边界。2.PPP链路操作一、概述为了通过点对点链路建立通信,PPP链路的每一端,必须首先发送LCPpackets以便设定和测试数据链路。在链路建立之后,peer才可以被认证。然后,PPP必须发送NCPpackets以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的datagrams就能在连路上发送了。链路将保持通信设定不变,直到外在的LCP和NCP关闭链路,或者是发生一些外部事件的时候(休止状态的定时器期满或者网络管理员干涉)。二、阶段划分框图在设定、维持和终止点对点链路的过程里,PPP链路经过几个清楚的阶段,如框图所示。这张图并没有给出所有的状态转换。三、链路死亡(物理连接不存在)链路一定开始并结束于这个阶段。当一个外部事件(例如载波侦听或网络管理员设定)指出物理层已经准备就绪时,PPP将进入链路建立阶段。在这个阶段,LCP自动机器将处于初始状态,向链路建立阶段的转换将给LCP自动机器一个UP事件信号。执行记录:典型的,在与调制解调器断开之后,链路将自动返回这一阶段。在用硬件实现的链路里,这一阶段相当的短-仅够侦测设备的存在。四、链路建立阶段LCP用于交换配置信息包(Configurepackets),建立连接。一旦一个配置成功信息包(Configure-Ackpacket)被发送且被接收,就完成了交换,进入了LCP开启状态。所有的配置选项都假定使用默认值,除非被配置交换所改变。有一点要注意:只有不依赖于特别的网络层协议的配置选项才倍LCP配置。在网络层协议阶段,个别的网络层协议的配置由个别的网络控制协议(NCP)来处理。在这个阶段接收的任何非LCPpackets必须被silentlydiscarded(静静的丢弃)。收到LCPConfigure-Request(LCP配置要求)能使链路从网络层协议阶段或者认证阶段返回到链路建立阶段。五、认证阶段在一些链路上,在允许网络层协议packets交换之前,链路的一端可能需要peer去认证它。默认的,认证是不需要强制执行的。如果一次执行希望peer根据某一特定的认证协议来认证,那么它必须在链路建立阶段要求使用那个认证协议。应该尽可能在链路建立后立即进行认证。而,链路质量检查可以同时发生。在一次执行中,禁止因为交换链路质量检查packets而不确定地将认证向后推迟这一做法。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。执行记录:一次执行中,仅仅是因为超时或者没有应答就造成认证的失败是不应该的。认证应该允许某种再传输,只有在若干次的认证尝试失败以后,不得已的时候,才进入链路终止阶段。在执行中,哪一方拒绝了另一方的认证,哪一方就要负责开始链路终止阶段。六、网络层协议阶段一旦PPP完成了前面的阶段,每一个网络层协议(例如IP,IPX,或AppleTalk)必须被适当的网络控制协议(NCP)分别设定。每个NCP可以随时被打开和关闭。执行记录:因为一次执行最初可能需要大力浪的时间用于链路质量检测,所以当等待peer设定NCP的时候,执行应该避免使用固定的timeouts。当一个NCP处于Opened状态时,PPP将携带相应的网络层协议packets。当相应的NCP不处于Opened状态时,任何接收到的被支持的网络层协议packets都将被静静的丢弃。执行记录:当LCP处于Opened状态时,任何不被该执行所支持的协议packets必须在Protocol-Reject里返回。只有支持的协议才被静静的丢弃。在这个阶段,链路通信量由LCP,NCP,和网络层协议packets的任意可能的联合组成。七、链路终止阶段PPP可以在任意时间终止链路。引起链路终止的原因很多:载波丢失、认证失败、链路质量失败、空闲周期定时器期满、或者管理员关闭链路。LCP用交换Terminate(终止)packets的方法终止链路。当链路正被关闭时,PPP通知网络层协议,以便他们可以采取正确的行动。交换Terminate(终止)packets之后,执行应该通知物理层断开,以便强制链路终止,尤其当认证失败时。Terminate-Request(终止-要求)的发送者,在收到Terminate-Ack(终止-允许)后,或者在重启计数器期满后,应该断开连接。收到Terminate-Request的一方,应该等待peer去切断,在发出Terminate-Request后,至少也要经过一个Restarttime(重启时间),才允许断开。PPP应该前进到链路死亡阶段。在该阶段收到的任何非LCPpackets,必须被静静的丢弃。执行记录:LCP关闭链路就足够了,不需要每一个NCP发送一个Terminatepackets。相反,一个NCP关闭却不足以引起PPP链路的终止,即使那个NCP是当前唯一一个处于Opened状态的NCP。3. PPPOE协议简介modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。PPPOE的目标就是解决上述问题,1998年后期问世的以太网上点对点协议(PPPoverEthernet)技术是由Redback网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNETTechnologies公司在IETFRFC的基础上联合开发的。通过把最经济的局域网技术以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。PPPOE特点PPPOE在标准PPP报文的前面加上以太网的报头,使得PPPOE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机,在这个模型下,每个用户主机利用自身的ppp堆栈,用户使用熟悉的界面。接入控制,计费等都可以针对每个用户来进行。PPPOE的优点:.安裝与操作方式类似于以往的拨号网络模式,方便用戶使用。.用户处的XDSL调制解调器无须任何配置。.允许多个用户共享一个高速数据接入链路。.适应小型企业和远程办公的要求。.终端用户可同时接入多个ISP,这种动态服务选择的功能可以使ISP容易创建和提供新的业务。.兼容现有所有的XDSLModem和DSLAM。.可与ISP有接入结构相融合。PPPOE的帧格式 参数取值ETHER_TYPE: 0x8863 Discovery Stage 0x8864 PPP Session Stage CODE: 0x00 PPP Session Stage 0x09 PPPOE Active Discovery Initiation (PADI) packet 0x07 PPPOE Active Discovery Offer (PADO) packet 0x19 PPPOE Active Discovery Request (PADR) packet 0x65 PPPOE Active Discovery Session-confirmation (PADS) packet 0xa7 PPPOE Active Discovery Terminate (PADT) packet TAG_TYPES:0x0000 End-Of-List0x0101 Service-Name0x0102 AC-Name0x0103 Host-Uniq0x0104 AC-Cookie0x0105 Vendor-Specific0x0110 Relay-Session-Id0x0201 Service-Name-Error0x0202 AC-System-Error0x0203 Generic-ErrorPPPOE的实现过程建立一个以太网上点对点协议会话包括两个阶段:1. 发现(Discovery)阶段在Discovery过程中用户主机以广播方式寻找可以连接的所有接入设备,获得其以太网MAC地址。然后选择需要连接的用户主机并最后获得所要建立的PPP会话的SESSION_ID。在Discovery过程中节点间是客户端服务器关系, 一个用户主机(客户端)最终要发现一个接入设备(服务器)。在网络拓朴中,一般有不止一个的接入设备可以通信,Discovery阶段允许用户主机发现所有的接入设备,并从中选择一个。当Discovery阶段结束时, 用户主机和接入设备之间都获得了可供以太网上建立PPP连接的全部信息。Discovery阶段保持无连接状态直到一个PPP会话的建立。一旦PPP连接建立,则用户主机和接入设备都必须为PPP虚拟端口分配资源。PPP 会话阶段用户主机与在发现阶段确定的接入设备进行PPP协商。这个协商过程与标准的PPP协商并没有任何区别。在PPP会话阶段节点间是对等关系。发现(Discovery)阶段详述典型的发现(Discovery)阶段共包括4个步骤:1. 用户主机发出PPPOE有效发现初始(PADI)包。以太网目的地址为广播地址0xffffffff, CODE 字段为0x09, SESSION_ID为0x0000。PADI包必须至少包含一个服务名称类型(Service-Name)的标签(标签类型字段为0x0101), 向接入设备提出所要求提供的服务。一个完整的PADI(包括PPPOE头)不能超过1484字节,以留下充足的预留给agent设备增加Relay-Session-Id标识。2. 接入设备收到在服务范围内的PADI包后,发送PPPOE有效发现提供(PADO) 包以响应请求。其CODE字段为0x07 ,SESSION_ID仍为0x0000。PADO包必须包含一个接入设备名称类型(AC-Name)的标签(标签类型字段为0x0102)以及一个或多个服务名称类型标签,表明可向用户主机提供的服务种类。3.用户主机在可能收到的多个PADO包中选择一个合适的接入设备,选择的原则是根据PADO中接入设备名称类型标签和服务名称类型标签的内容。然后向所选择的接入设备发送PPPOE有效发现请求(PADR)包。其CODE 字段为0x19,SESSION_ID仍为0x0000。PADR包必须包一个服务名称类型标签,确定向接入设备请求的服务种类。当一个用户主机在确定时间没有收到PADO,他会重发一个PADI,同时等待两倍的时间。这种过程可以根据需要重复多次。4.接入设备收到PADR包后准备开始PPP会话,它发送一个PPPOE 有效发现会话确认( PADS)包。其CODE 字段为0x65 , SESSION_ID为接入设备所产生的一个唯一的PPPOE会话标识号码。0xffff作为预留资源,目前不能被使用作SESSION_ID。PADS包也必须包含一个服务名称类型的标签确认向用户主机提供的服务。当用户主机收到PADS包确认后,双方就进入PPP会话阶段。如果接入设备不能识别PADR中的服务名称类型的标签,则会回一个包含服务名称错误( Service-Name-Error ) 标签的PADS ,其SESSION_ID仍然是0x0000。如果用户主机在确定时间没收到PADS包,与没收到PADO作同样处理。还有一种PPPOE有效发现终止(PADT)包,在一个PPP会话建立后它随时可由用户主机或接入设备中任何一方发送,指示PPP会话已终止。PADT包不需要任何标签,其CODE字段为0xa7 , SESSION_ID 为需要终止的PPP会话的会话标识号码。安全性为防止DOS(Denial of Service)攻击,接入设备应该可以使用AC-Cookie属性,接入设备应可以根据PADR中的源地址唯一再生成一个值,这样就而已保证PADI的源地址是真正可达,同时限制与这个地址同时连接数量。这个算法细节并没有在RFC2516中具体描述。虽然AC-Cookie在反DOS攻击方面很有效,但它并不能防止所有DOS攻击,在接入设备上也可以采用其他方法来对抗DOS。常用PPPOE软件PPPOE软件的作用就是连接操作系统的PPP协议和Ethernet协议,并通过PPPOE协议连接ISPEnterNet:由NTS.COM 开发(现在已经并入Efficient Networks这个有名的设备开发制造公司),自己具备独立的PPP协议,可以不依赖操作系统的拨号网络来提供PPP协议, 具有直接通过网卡和ISP连接的能力,目前是最通用和流行的PPPOE 软件,并且支持多种操作系统,目前已经提供有Windows,Linux,MacOS的版本,并且根据功能的多少又分为100、300、500等多个系列。该软件的300系列最流行,已经被多家特大型的ISP采用,例如法国电信,中国电信,在其网站提供有30天试用版。WinPoET:由iV 开发(现在已经改为WindRiver 公司), 它是PPPOE 协议起草者之一,它在PPPOE软件中也占有极大的份额,许多特大型ISP也采用它。它通过操作系统的拨号网络来提供PPP协议,所以在使用上和我们使用普通56K拨号上网非常相似,它只是在后台悄悄地进行着PPPOE服务。它的网站目前停止了该软件的下载评估,软件只批量卖给ISP RASPPPOE:个人开发的PPPOE驱动软件,小巧精干,没有自己的界面面板完全只是一个驱动程序,也是依靠操作系统拨号网络来提供PPP协议,由于它是以网络协议组件的形式来工作,所以在使用上,完全和使用老式的Modem一样简单。Access Manager/IHS:实质就是EnterNet 300 ,只是打上了BELL的ISP接入服务部门Sympatico的商标。4. PPP帧格式PPP帧格式和HDLC帧格式相似,如图1所示。二者主要区别:PPP是面向字符的,而HDLC是面向位的可以看出,PPP帧的前3个字段和最后两个字段与HDLC的格式是一样的。标志字段F为0x7E(0x表示7E),但地址字段A和控制字段C都是固定不变的,分别为0xFF、0x03。PPP协议不是面向比特的,因而所有的PPP帧长度都是整数个字节。与HDLC不同的是多了2个字节的协议字段。协议字段不同,后面的信息字段类型就不同。如:0x0021信息字段是IP数据报0xC021信息字段是链路控制数据LCP0x8021信息字段是网络控制数据NCP0xC023信息字段是安全性认证PAP0xC025信息字段是LQR0xC223信息字段是安全性认证CHAP当信息字段中出现和标志字段一样的比特0x7E时,就必须采取一些措施。因PPP协议是面向字符型的,所以它不能采用HDLC所使用的零比特插入法,而是使用一种特殊的字符填充。具体的做法是将信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)。若信息字段中出现一个0x7D的字节,则将其转变成2字节序列(0x7D,0x5D)。若信息字段中出现ASCII码的控制字符,则在该字符前面要加入一个0x7D字节。这样做的目的是防止这些表面上的ASCII码控制字符被错误地解释为控制字符。5. PPP链路工作过程当用户拨号接入ISP时,路由器的调制解调器对拨号做出应答,并建立一条物理连接。这时PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应选择了将要使用的一些PPP参数,接着就进行网络层培植,NCP给新接入的PC机分配一个临时的IP地址,这样PC机就成为Internet上一个主机了。当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着LCP释放数据链路层连接,最后释放的是物理层的连接。上述过程可用图2来描述。图2PPP协议过程状态图当线路处于静止状态时,并不存在物理层的连接。当检测到调制解调器的载波信号,并建立物理层连接后,线路就进入建立状态,这时LCP开始协商一些选项。协商结束后就进入鉴别状态。若通信的双方鉴别身份成功,则进入网络状态。NCP配置网络蹭,分配IP地址,然后就进入可进行数据通信的打开状态。数据传输结束后就转到终止状态。载波停止后则回到静止状态。6. PPP应用举例路由器Router1和Router2的S0口均封装PPP协议,采用CHAP做认证,在Router1中应建立一个用户,以对端路由器主机名作为用户名,即用户名应为router2。同时在Router2中应建立一个用户,以对端路由器主机名作为用户名,即用户名应为router1。所建的这两用户的password必须相同。设置如下:Router1:hostnamerouter1usernamerouter2passwordxxxinterfaceSerial0ipaddressclockrate1000000pppauthenticationchapRouter2:hostnamerouter2usernamerouter1passwordxxxinterfaceSerial0ipaddresspppauthenticationchap7. PPPOE流程定义通过PPPOE,在一个共享的以太网上的多个主机,可以通过一个或多个简单的桥接入设备,与远程接入集中器进行多个PPP会话。使用这种模型,每个主机使用它自己的PPP协议栈,并且提供给用户一个熟悉的用户接口。接入控制、计费和服务类型能够基于每用户,而不是每站点来处理。PPPOE包含发现和PPP会话两个阶段,发现阶段是无状态的Client/Server模式,目的是获得PPPOE终结端的以太网MAC地址,并建立一个唯一的PPPOESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。协议基本框架PPPOE协议参照RFC2516。PPPOE实现PPP帧在Ethernet上的适配,并提供Ethernet上的PPP连接。图1和图2分别是以太网上的PPPOE协议栈和AAL5上的PPPOE协议栈。PPPOE连接示意图图3显示了典型的PPPOE的连接方式PPPOE通信流程PPPOE有两个不同的阶段:发现阶段和PPP会话阶段。当一个主机想开始一个PPPOE会话,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPOESESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器。发现阶段允许主机发现所有的接入集中器,然后选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的状态。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。图4显示了PPPOE通信流程。发现阶段发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPOESESSION_ID和对端的以太网地址,他们一起唯一定义PPPOE会话。这些步骤包括:主机广播一个发起分组(PADI),一个或多个接入集中器发送给予分组(PADO),主机发送单播会话请求分组(PADR),选择的接入集中器发送一个确认分组(PADS)。当主机接收到确认分组,它可以开始进行PPP会话阶段。当接入集中器发送出确认分组,它可以开始进行PPP会话阶段。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。如果主机正在等待接收PADS,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。PPPOE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPOE会话。它可以由主机或者接入集中器发送。当接收到一个PADT,不再允许使用这个会话来发送PPP业务。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPOE会话,但是当PPP不能使用时,可以使用PADT。PPP会话阶段一旦PPPOE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPOE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。PPPOE的LCP配置选项PPPoverEthernet(RFC2516)建议进行魔数选项协商,不建议进行协议域压缩选项(PFC)协商。实现中必须不请求进行任何下面的选项协商,并且必须拒绝这样选项协商的请求:FieldCheckSequence(FCS)Alternatives,Address-and-Control-Field-Compression(ACFC),Asynchronous-Control-Character-Map(ACCM)MRU必须不能大于1492。建议接入集中器偶尔向主机发送Echo_Request报文,来决定会话的状态。否则,如果主机没有发送Terminate_Request报文就终止了会话,接入集中器将会不能决定会话已经终止了。当LCP终止,主机和接入集中器必须停止使用这个PPPOE会话。如果主机希望开始另一个PPP会话,它必须返回到PPPOE的发现阶段。8. PPP会话终结PPP在建立链路之前要进行一系列的协商过程,如图5所示。图6为PPP建链各阶段图。PPP建链的具体过程如下:(1)LCP协商,协商内容包括除RFC1661中所定义的选项之外,还要考虑PPPOA和PPPOE协议中规定的内容。(2)LCP协商过后就到了Establish阶段,开始PAP或CHAP认证。PAP为两次握手认证,口令为明文。PAP认证过程如下:发送用户名同口令到认证方,认证方查看是否有此用户,口令是否正确,然后发送相应的响应。CHAP为三次握手认证,口令为密文(密钥)CHAP认证由认证方发送一些随机产生的报文,交给被认证,被认证方用自己的口令字用MD5算法进行加密,传回密文,认证方用自己保存的口令字及随机报文用MD5算法加密,比较二者的密文,根据比较结果返回响应的响应。(3)认证成功即进行Network阶段协商(NCP),在IP接入中主要是IPCP协商(如IP地址和DNS地址的协商等)。任何阶段的协商失败都将导致链路的拆除。(4)协商成功,则链路建立成功,可以开始传输网络层数据报文。在PPP会话建立的时候,根据用户属性确定此用户的缺省路由和对应的网络接口,将之绑定在PPPCTL结构上,可以对用户上行数据包实现快速转发,不必让每个包去查找路由表。此方法对下行数据影响相对较小,因为在业务处理板上必须区分每一个会话,这只有通过检查数据包中的目的地址来实现。9. PPP用户认证和IP地址分配当用户和接入服务器之间的PPPOE建立之后,就可以在上面建立PPP会话。PPP会话的建立分为三个阶段:LCP协商、认证、IPCP协商。对于PPP终结和PPP续传,LCP协商阶段是相同的。认证和IPCP协商不同。LCP协商LCP协商主要完成某些链路路特性和认证方式的协商,LCP协商成功后,用户根据协商的认证方式向接入服务器发起认证请求,用户认证的方式采用PAP或CHAP方式PPP终结时的认证和IP地址分配PAP为两次握手认证,口令为明文。PAP认证过程如下:拨号用户发送用户名和口令到接入服务器,接入服务器通过RADIUS协议到RADIUS服务器上去查看是否有此用户,口令是否正确,然后发送相应的响应。CHAP为三次握手认证,口令为密文。CHAP拨号用户发送用户名到接入服务器,接入服务器发送一些随机产生的报文,交给被拨号用户,拨号用户用自己的口令用MD5算法进行加密,传回密文,接入服务器用从RADIUS服务器取得的用户口令及随机报文用MD5算法加密,比较二者的密文,根据比较结果返回认证成功或失败的响应。接入服务器和RADIUS服务器之间通过一个共享密钥以密文方式通信。在认证阶段,如果在用户数据库中为该用户名配置了IP地址,则RADIUS服务器将这个IP地址返回给接入服务器,作为这个用户上网使用的IP地址。如果用户在认证阶段还没有获得IP地址,就需要在IPCP阶段协商IP地址。一般来说,运营商为用户提供接入服务时,应该有一批IP地址,即IP地址池,用户上网所需要的IP地址就来自与此,当用户上网时,从IP地址池分配一个IP地址,当用户下网时,这个IP地址归还到地址池。在运营商开通接入服务时,将IP地址池配置到接入服务器中,在IPCP阶段,接入服务器从IP地址池分配一个空闲的IP地址给用户,作为用户上网的IP地址。如果已经没有可用的IP地址,则IPCP协商失败,关闭PPP连接,在用户看来,则是拨号失败,ISP暂时不能为他提供接入服务。PPP续传时的认证和IP地址分配LCP协商结束后,如果经RADIUS服务器检查这是一个VPN用户,则接入服务器为这个用户建立到LNS的会话,如果没有隧道还要建立隧道。认证分为两种情况:一次认证和两次认证。一次认证是指只在LAC的RADIUS服务器上认证一次,LNS信任LAC的RADIUS服务器。用户的IP地址可以由LAC的RADIUS服务器指定,也可以由用户和LNS进行IPCP协商获得。两次认证是指用户需要输入两次用户名和口令,一个是接入Internet的权限验证,一个是进入VPN的权限验证。认证的时候需要LAC的RADIUS服务器和LNS的RADIUS服务器共同配合。IP地址的可以由LNS的RADIUS服务器指定,也可以由用户和LNS进行IPCP协商获得。RADIUS协议扩展为实现对用户更全面的管理,在RADIUS协议中,至少应该扩展以下属性:用户的接入带宽、用户接入所使用的PVC,如果用户间希望互相通信,需要指明对方的用户名或IP地址。客户端和服务器端同时支持。11. AAL5层业务接口PPP层把AAL5层业务看成比特同步点到点链路。PPP链路对应一个AAL5VC。VC必须是全双工点到点的。而且,PPP/AAL5业务接口必须满足如下要求:接口格式PPP/AAL5层边界提供了一个字节业务接口给AAL5层。传输速率PPP层对ATM层的传输速率及流量描述参数无任何限制。控制信号当VC连接建立或断开时,AAL5层必须提供UP和DOWN事件给PPP层的LCP状态机。12. AAL5多协议封装RFC1483提供了两种机制,识别AAL5PDU净荷域的协议类型:基于VC复用方式和LLC封装方式。当在AAL5上传输PPP净荷时:必须支持“VC复用PPP”。必须支持“LLC封装PPP”。l 对SVC必须用Q2931B-LLI指出是“VC复用PPP”还是“LLC封装PPP”。若ATM侧RFC2364端点与FR侧RFC1973(PPPinFR)端点通过FRF8业务互通单元互联,则必须使用LLC封装PPP。VC复用PPP图1为VC复用PPP的示意图图1中各字段说明如下:CPCS-PDUPayloa:净荷字段,最大2161个字节。PAD 域:填充域,047字节,用来使CPCS-PDU的长度为48个字节的整数倍,正好能放入AATM信元中。lCPCS-UU:用户-用户指示字段,本来该字段用于透明传送CPCS用户-用户信息。在PPPOAAL5封装中,该字段不起作用,可以设置为任意值,1字节。lCPI:公共部分指示字段,基本用途是填充CPCS-PDU尾部,使其长度正好为64比特,该字段编码是0x00。lLength:长度字段,用于指示净荷字段的字节长度,该字段的最大值是65535字节。当该字段编码为0x00时,它用于指示接收放执行丢弃功能。lCRC:对CPCS-PDU作CRC循环校验。LLC封装PPPLLC封装PPP和非PPP协议可以共用同一个VC。13. AAL5检测和恢复过程封装方式”迁移有两种:从VC复用PPP变成LLC封装PPP;从LLC封装PPP变成VC复用PPP。“LLC封装”时,LCP包的起始6个字节:0xFEFE03CFC021。“VC复用”时,LCP包的起始2个字节:0xC021。当LCPConfigure-Request包被收到和被识别时,PPP链路就进入LinkEstablishment阶段。一旦PPP进入NetworkLayerProtocol阶段,且成功地为PPP协商了一个NCP,若收到的帧使用了不同但等效的RFC1483数据封装,则PPP链路必须对PVC撤掉NCP,应该产生出错消息,进入Termination阶段,且安静地丢掉所有收到的数据包。14. ALL5中LCP配置选项及安全性选项魔术数(MagicNumber):推荐使用PFC(协议域压缩):不推荐使用FCS替换(Alternative):禁止使用ACFC(地址和控制域压缩):禁止使用ACCM(异步“控制字符”映射):禁止使用MRU(最大接受单元):必须不大于最大的CPCS-SDU。PPP链路可能跨过多个物理层SECTIONs,在一个物理层SECTION的LCP成帧选项独立于另一个物理层SECTION的LCP成帧选项。当ATMAAL5PVC处于Stopped状态,建议应用等待Configure-Requests。安全性考虑PVC:网络业务提供者管理。SVC:类似传统MODEM拨号上PSTN网。同样的PAP/CHAP鉴权协议可用于INTERNET拨号接入。鼓励使用加强的安全方法:鉴权HEADERs,加密PAYLOADs,ATM层安全业务。15. PPP协议:关于在点到点链路上进行多协议包传送的建议1.介绍PPP有三个主要的组成部分:1 在串行链路上封装数据报(datagrams)的方法。2 建立,配置和测试数据链路链接(thedata-linkconnection)的LCP协议(LinkControlProtocol)。3 建立和配置不同网络层协议的一组NCP协议(NetworkControlProtocol)。为了在点到点链路(point-to-pointlink)上建立通信,PPP链路的一端必须在建立阶段(Establishmentphase)首先发送LCP包(packets)配置数据链路。在链路建立后,在进入到网络层协议阶段前,PPP提供一个可选择的验证阶段。默认的,身份验证不是强制的。如果希望进行链路的身份验证,则实现者必须在建立阶段指明身份验证协议配置选项。这些协议主要是为通过交换网(switchedcircuits)或者拨号线(dial-uplines)连接到PPP网络服务器的主机和路由器服务的,但是也可以被用到专用链路(dedicatedlinks)中。服务器在为网络层磋商选择选项时可以对连接的主机或路由器进行身份验证。此文档定义了PPP身份验证协议。链路建立和验证阶段,和验证协议配置选项定义在PPP协议中1。1.1要求说明书在本文档中,用以下几个词来表示说明书的要求,这些词一般以大写字体书写。MUST这个词表示在此说明书中是绝对要求的。MUSTNOT这个词组表示在此说明书中是绝对禁止的。SHOULD此词表示在此说明书中是推荐的。MAY此词表示在此说明书中是可选的。1.2术语本文档中,频繁使用以下术语:authenticator验证者:要求验证的链路端点。验证者说明了在链路建立阶段使用的验证协议。Peer点到点链路的另一端:正在被验证者验证的一端。Silentlydiscard静静地丢弃丢弃packet而不进行进一步的处理。执行(这个动作)应该提供记录错误,包括丢弃packet的内容,的容量,并且应该在一个统计计数器中记录这一事件。2.密码验证协议密码验证协议(PAP)提供了一种简单的方法,可以使对端(peer)使用2次握手建立身份验证。这个方法仅仅在链路初始化时使用。链路建立阶段完成后,对端不停地发送Id/Password对给验证者,一直到验证被响应或者连接终止为止。PAP不是一个健壮的身份验证方法。密码在电路上是明文发送的,并且对回送或者重复验证和错误攻击没有保护措施。对端控制着尝试的频率和时间。包含健壮验证方法(例如CHAP,下面描述)的任何实现者必须提供商议优先于PAP的方法。这个验证方法最适合用在使用有效的明文密码在远程主机上模拟登陆的地方了。通过这种用法,飧龇椒蚱胀没锹皆冻讨骰峁艘恢职踩睦嗨萍侗稹?BR实现注意:要限制暴露在PPP链路上传输明文密码和避免在整个网络上发送明文密码是可能的。如果远程主机密码是以单向转换值保存的,并且转换函数的算法是在当地主机上完成的,则明文密码应该在和远程主机的转换密码比较前在本地转换。2.1配置选项格式下面是关于PAP的验证协议配置选项格式的总结。各个域由左到右传输。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Length|Authentication-Protocol|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+类型3长度4验证协议c023(对于PAP)数据没有数据域2.2包格式一个PAP包是完全封装在PPP数据链路层帧(协议域是c023代表PAP)的信息域中的。下面是PAP包格式的总结。各个域由左到右传输。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Data.+-+-+-+-+代码代码域是一个字节,代表PAP包的类型。PAP代码分配如下:1 Authenticate-Request2 Authenticate-Ack3 Authenticate-Nak标识符标识符是一个字节,用于匹配请求和响应。长度长度域是两个字节,代表PAP包的长度,包括代码域,标识符和数据域。超出长度域指定的字节被认为是数据链路层的填料,在接收端应该忽略掉。数据数据域是零个或多个字节。数据域的格式由代码域决定。2.2.1Authenticate-Request描述Authenticate-Request包用来启动PAP。在验证阶段链路的一端必须传输代码域为1(验证请求)的PAP包。直到接收到一个有效的响应包或者可选的重试计数器超时,验证请求包必须不停地发送。验证者应该期待对端发送一个Authenticate-Request包。一旦接收到Authenticate-Request包,必须返回某种验证响应(下面描述)。实现注意:因为Authenticate-Request包可能会丢失,所以在完成验证阶段后验证者必须允许重复的Authenticate-Request包。在验证阶段完成(部分信息可能不同)后,在协议阶段必须返回相同的响应代码。在另外的阶段接到的任何Authenticate-Request包必须被静静地处理掉。如果Authenticate-Nak包丢失,和验证者终止链路,则LCPTerminate-Request包和Terminate-Ack包提供一个可选择的方法表示验证失败。下面是Authenticate-Request包格式的总结。各个域由左到右传输。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Peer-IDLength|Peer-Id.+-+-+-+-+-+-+-+-+-+-+-+-+|Passwd-Length|Password.+-+-+-+-+-+-+-+-+-+-+-+-+-+代码1 Authenticate-Request。标识符标识符是一个字节,用于匹配请求和回应。每次发送一个Authenticate-Request包,标识符域必须改变。Peer-ID-LengthPeer-ID-Length域是一个字节,代表Peer-ID域的长度。Peer-IDPeer-ID域是零个或多个字节,代表被验证端的名字。Passwd-LengthPasswd-Length域一个字节,代表Password域的长度。PasswordPassword域是零个或者多个字节,是用来验证的密码。2.2.2Authenticate-AckandAuthenticate-Nak描述如果在接收的Authenticate-Request包中的Peer-ID/Password对是可识别的和可接受的,则验证者必须发送一个代码域是2(Authenticate-Ack)的PAP包。如果在接收的Authenticate-Request包中的Peer-ID/Password对是不可识别的和不可接受的,则验证者必须发送一个代码域是3(Authenticate-Nak)的PAP包,并且应该终止链路。下面是Authenticate-Ack包和Authenticate-Nak包格式的总结。各个域由左到右传输。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Msg-Length|Message.+-+-+-+-+-+-+-+-+-+-+-+-+-代码2 Authenticate-Ack;3 Authenticate-Nak标识符标识符域是一个字节,用于匹配请求和回应。此域必须从引起这次回应的Authenticate-Request包标识符域复制过来的。Msg-LengthMsg-Length域是一个字节,代表Message域的长度。MessageMessage域是零个或者多个字节,并且它的内容依靠于实现者。它是可读的,不得影响协议的操作。建议在Message中包含可显示的ASCII字符(32126)。扩展字符集的机制是进一步研究的主题。3Challenge-HandshakeAuthenticationProtocolCHAP用于使用3次握手周期性的验证对端。在链路建立初始化时这样做,也可以在链路建立后任何时间重复验证。在链路建立完成后,验证者向对端发送一个“challenge”信息。对端使用一个“one-way-hash”函数计算出的值响应这个信息。验证者使用自己计算的hash值校验响应值。如果两个值匹配,则验证是承认得,否则连接应该终止。CHAP通过使用递增的标识符和可变得挑战值提供了防止回送攻击的保护。使用重复挑战目的是任一个攻击的暴露时间。验证者控制着挑战的频率和时间。这种验证方法依靠只有验证者和对端知道的秘密(secret)。这个秘密(secret)不在链路上传播。这种方法最可能用的地方是相同的秘密容易访问链路的两端。实现注意:CHAP要求秘密是明文形式的。为了避免在网络的其他链路上发送秘密,建议在中心服务器上检查challenge和respone值,而不是在每一个网络访问服务器上检查。另外,秘密应该以可逆转的加密形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论