HUAWEITECHNOLOGIESCO.,LTD.协议HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage2第1章协议概述第2章消息结构第3章常用命令第4章基本流程第5章码流解析HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage3背景Diameter协议的最初提出是作为Radius协议的改进或者替代,它的引入是作为支持基于IP技术的AAA框架的AAA协议。–认证(Authentication):用户在使用网络系统中的资源时对用户身份的确认。–计费(Accounting):网络系统收集、记录用户对网络资源的使用,以便向用户收取资源使用费用,或者用于审计等目的。–授权(Authorization):网络系统授权用户以特定的方式使用其资源。认证、授权和计费一起实现了网络系统对特定用户的网络资源使用情况的准确记录。这样既在一定程度上有效地保障了合法用户的权益,又能有效地保障网络系统安全可靠地运行。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage4协议优点Diameter和Radius两者之间的比较拥有良好的失败机制,支持失败替代(failover)和失败回溯(faiback);拥有更好的包丢弃处理机制,Diameter协议要求对每个消息进行确认;可以保证数据体的完整性和机密性;支持端到端安全,支持TLS和IPSec;引入了“能力协商”能力HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage5协议框架DCCANASREQMIPDiameterBaseTLSTCPSCTPIP/IPsec基础协议(RFC3588):提供了作为一个AAA协议的最低需求,是Diameter网络节点都必须实现的功能,包括节点间能力的协商、Diameter消息的接收及转发、计费信息的实时传输等。应用协议:充分利用基础协议提供的消息传送机制,规范相关节点的功能以及其特有的消息内容,来实现应用业务的AAA。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage6协议框架IETF的AAA工作组已经完成DiameterNASREQ应用、Diameter移动IPv4应用、Diameter多媒体应用等应用协议的制定在Diameter基础协议上扩展的信用控制应用协议DiameterCreditControlApplication(RFC4006),定义了实时计费协议框架,采用信用额度控制实现了基于会话及事件的计费,解决了对于预付费的计费需求;HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage7Diameter网络节点•DiameterClient:处于网络边缘提供接入控制的设备,比如NAS(networkaccessserver)。•DiameterServer:处理一个特定域的认证,授权和计费请求•Diameter中继:能够从Diameter请求消息中提取信息,再根据Diameter基于域的路由表的内容决定消息发送的下一Diameter节点,Diameter中继只对过往消息进行路由信息的修改,而不改动消息中的其他内容。•Diameter代理:根据Diameter路由表的内容决定消息发送的下一跳Diameter节点。此外,Diameter代理能够修改消息中的相应内容。•Diameter重定向器:不知道如何路由的请求消息发给Diameter重定向器时,重定向器将根据其详尽的路由配置信息,把路由指示信息加入到请求消息的响应里,从而明确地通知该Diameter节点的下一跳Diameter节点。•Diameter协议转换器:主要用于实现RADIUS与Diameter,或者TACACS+与Diameter之间的协议转换。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage8第1章协议概述第2章消息结构第3章常用命令第4章基本流程第5章码流解析HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage9第2章消息结构2.1消息头2.2消息体HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage10消息头Version:目前全部填写1;MessageLength:填写包含消息头的整个消息的长度;CommandFlag:R:请求消息填写为1,响应消息填写为0;P:本消息是否可以被转发,Diameter基本协议命令字CER\DPR\DWR不能被转发;E:通常通过设置E位来说明这是一个错误消息。但该位不可在请求消息中设置;T:本消息是否是重发消息;Command-Code:消息命令字,响应消息和对应的请求消息的命令字是一样的;Diameter协议的基本命令字包括CER\CEA(257),DWR\DWA(280),DPR\DPA(282);Diameter应用协议命令字包括CCR\CCA(272);Application-ID:消息涉及的应用ID。例如:Diameter基本协议之中定义的Application-ID包括:DiameterCommonMessages(0),NASREQ(1),Mobile-IP(2),DiameterBaseAccounting(3),Relay(0xffffffff);DCCA(4);Hop-by-Hop:逐跳标识用于判断请求与应答的对应关系;,End-to-End:端到端标识主要用于重复消息的检查。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage11消息体Diameter消息的消息体部分以AVP(Attribute-Value-Pair)为单位,Diameter把与一条消息相关的的各种信息用一个个的AVP封装起来,然后逐个头尾衔接。--AVP头--AVPCode:AVP的类别,用于标识AVP。例如Original-HostAVP的Code值为264;AVPFlags:V:本AVP头之中是否出现Vendor-ID字段;M:本AVP是否属于必需AVP,就一个特定的Diameter命令而言,有一些AVP是必须出现的,例如Original-Host和Original-RealmAVP在任何Diameter消息之中都是必须出现的;P:本AVP的数据部分是否经过了加密;AVPLength:AVP包含的八位组数量;Vendor-ID:可选,标识生成本AVP值的设备的供应商;--AVP数据--Data:记录具体的数据值,具体数据的类型是由AVPCode决定的。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage12AVP数据类型OctetString:可变长字符串Integer32:32bit长的整数Integer64:64bit长的整数Unsigned32:32bit长的无符号整数Unsigned64:64bit长的无符号整数Float32:32bit长的浮点数Float64:64bit长的浮点数Grouped:一组数据类型的组合Address:以OctetString为基础,前两个字节为ddressType,从第三个字节开始表示地址。Time:以OctetString为基础,表示从1900年1月1日0时起的秒数,到2036年02月7日6点28分16秒截止。UTF8String:使用UTF-8传输格式。可变长度需要标具体使用情况。DiameterIdentity:唯一表示DCC节点,用于重复连接和路由环路检测。DCC节点的FQDN。Enumerated:枚举类型。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage13AVP数据类型Grouped:一组数据类型的组合AVPLength(3octets)AVPCode(4octets)VMPrrrrr(*)(1octet)Vendor-ID(4octets-opt)avp1avp2avp3avp4…….AVPLengthAVPCodeVMPrrrrrVendor-IDdataAVPLengthAVPCodeVMPrrrrrVendor-IDAVPLengthAVPCodeVMPVendor-IDdataAVPLengthAVPCodeVMPVendor-IDdataHUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage14第1章协议概述第2章消息结构第3章常用命令第4章基本流程第5章码流解析HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage15常用命令命令名命令代码缩略语说明Credit-Control-Request272CCR信用控制请求和响应Credit-Control-Answer272CCARe-Auth-Request258RAR重新鉴权/授权请求和响应,该命令可以由任何服务器发送给提供会话服务的接入设备,来请求对用户进行重新认证/授权。Re-Auth-Answer258RAACapabilities-Exchange-Request257CER能力交换请求消息和响应CapabilitiesExchangeAnswer257CEADevice-Watchdog-Request280DWR设备监控请求和响应(心跳消息),用于进行链路异常检测,以降低消息被发送到无法响应的对端的可能性。Device-Watchdog-Answer280DWADisconnect-Peer-Request282DPR拆除对等端连接请求和响应,将此消息发送至对等端,提示对方自己将关闭传输连接。Disconnect-Peer-Anwser282DPAAbort-Session-Request274ASR中断会话请求和响应,它由任何服务器向提供接入服务的接入设备发送,来请求中断指定的会话。Abort-Session-Answer274ASAHUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage16DWR和DWA设备监控请求Device-Watchdog-Request(DWR),命令码为280,命令标记‘R’比特置位,当两个对等端之间没有流量交互时,发送至对等端。一旦检测到传输差错,则该消息不允许发送至备选对等端。DWR实际上就是握手请求。Device-Watchdog-RequestDWR::=DiameterHeader:280,REQ{Origin-Host}{Origin-Realm}[Origin-State-Id]HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage17DWR和DWA设备监控应答消息Device-Watchdog-Answer(DWA),命令码为280,命令标记‘R’比特位清除,回复Device-Watchdog-Request消息时发送。。DWA实际上就是握手应答。Device-Watchdog-AnswerDWA::=DiameterHeader:280{Result-Code}{Origin-Host}{Origin-Realm}[Error-Message]*[Failed-AVP][Original-State-Id]符号表示必选而且位置必须是在消息的开头{}符号表示必选,[]符号表示可选,*[]符号表示可重复的可选项。HUAWEITECHNOLOGIESCO.,LTD.HUAWEIConfidentialPage18CCR和CCA信