欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Diameter协议学习笔记一.pdf

    • 资源ID:84208784       资源大小:978.57KB        全文页数:14页
    • 资源格式: PDF        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Diameter协议学习笔记一.pdf

    Diameter 协议学习笔记一(协议介绍)一、摘要:Diameter 协议主要为应用程序提供认证、鉴权、计费框架,即 AAA,并支持本 地AAA 和漫游场景下的 AAA。二、介绍:AAA 协议、例如 TACACS、RADIUS 起初是为了提供 PPP 及终端接入,随着 Internet及新的接入技术的发展,包括无线、DSL、移动 IP,以太网路由、网络访 问服务器(NAS)在复杂和密集性方面有所增强,这对 AAA 协议提出了新的要 求。例如,网络访问对 AAA 协议提出的要求总结有以下这些:Failover(故障转移)RADIUS 协议没有定义 failover 机制,因此,failover 的行为随着程序的实现不同 而各异,为了提供一个明确定义的 failover 行为,Diameter支持应用层的应答,并 定义failover 的西装算法和偶联状态机。传输层安全 RADIUS 在定义了应用层的认证,但仅使用了响应包,RADEXT 定义了另外的认 证,但仅要求在 EAP session 中使用,且支持届性隐藏。RFC3162 为 RADIUS 定 义了 IPsec,但对其支持并没有做要求,Diameter 强制要求支持 IPSec,TLS 的支 持可选择。,可靠传输 RADIUS 运行在 UDP 上,且没有定义重传行为,所有,可靠性因实现不同而各 异。Diameter 运行在可靠的传输层(TCP,SCTP)上。代理支持 RADIUS 没有明确地规定支持 agent,包括 Proxies,Redirects,Relays。Diameter 明确地定义了代理的行为。服务器发起消息RADIUS 中对丁服务器发起消息的支持是可选的,这就使用一些如主动断链、或 者重新认证或重新鉴权等特性实现困难。服务器发起消息在 Diameter 中强制要求 支持。可审核性 RADIUS 没有定义数据对象安全机制,结果,不受信任的代理可能修改届性或都 包头,并且不会被检测出来,结合对能力协商机制的缺失,无法预期结果会发生什 么。Diameter 也没有定义数据对象安全机制,但支持能力协商。*转换支持 Diameter 使用的通用协议数据单元(PDU)与 RADIUS 不同,但支持向前兼容 RADIUS,所以两种协议可以部署在同一网络中。*能力协商 RADIUS 不支持错误消息、能力协商、及表示届性强制/非强制的标志位。因此 RADIUS的客户端和服务端不担心对方的能力,它们可能不会成功地协商一个相互 接受的服务,或者在一些情况下,需要知道哪些服务对端已经实现,以上几点 Diameter 均支持。对端发现及配置 RADIUS 要求人工配置服务端或客户端的名称或地址,相应地增加了秘密的共 享,带来管理和安全上的负担。通过 DNS,Diameter 可以动态发现对端,并通过 传输层安全来保证。*漫游支持 RADIUS 不提供对 proxyr 的明确支持,缺少可审核性、传输层安全,使得在漫游 场景下容易引发安全问题,Diameter 支持域内漫游、消息路由、可审核性、传输 层安全特性,可提供可安全和可靠的漫游。术语:AAA 认证、鉴权、计费 Accounting(计费)为能力计划制定、审计、账单、费用分配等目的而进行资源使用的信息的收集动 作。Accounting Record(计费记录)记录某个用户在整个会话期间资源消费的情况,Authentication(认证)校验一个实体一致性的动作。Authorization(鉴权)决定一个请求实体是否允许访问某项资源。AVP(届性值对)Diameter 消息由一个报文头后跟一个或多个 Attribute-Value-Pairs(AVPs),一个 AVP 包含一个头用丁协议细节数据(例如路由信息)。Broker(代理)代理是一个用丁 AAA 架构中的商业术语,可以是 relay,proxy,或者 redirect agent。Diameter Agent(Diameter 代理)指一个提供 relay、proxy、redirect 或翻译服务的 diameter 结点。Diameter Client(Diameter 客户端)为一个处丁网络边缘的,提供访问控制的设备。如 NAS。Diameter Node(Diameter 节点)为一个实现了 diameter 协议的主机进程,其行为为客户端、代理、服务端之一。Diameter Peer(Diameter 对端)为一个具有直连连接的 diameter 节点 Diameter Security Exchange(diameter 安全交换)为一个进程,两个 diameter 节点可以通过它建立端到端的安全。Diameter Server(diameter 服务端)用丁处理指定域中认证、鉴权、计费请求。End-to-End Security(端到端安全)TLS 和 IPSec 提供逐跳的安全,当 relays 或 proxy 很复杂时,逐跳的安全不能保 证全部的 diameter 用户会话,端到端安全为两个 diameter 节点间的安全,或者 Agent问的,这种安全保证了整个 dimeter 传送路径上的安全。Home Realm(归届域)为一个维护帐户关系的管理域。Interim accounting(临时计费)一个临时计费消息提供一个用户会话的使用快照,通常为一个用户会话在设备重 启或者网络问题出现时提供部分的计费。Local Realm(本地域)一个提供服务的管理域。Multi-Sessin(多会话)一个多会话表示多个会话的逻辑连接,多会话使用 Acct-Multi-Session-Id来跟 Network Access Identifier(网络接入标识)即 NAI,用来在 diameter 协议中提取一个用户的标识及域。用丁在认证中识别用 户,域用来消息路由。Proxy Agent or Proxy(代理)除传输请求和响应外,代理制定与资源有关的策略,通常用来完成 NAS 设备状 态的跟踪,代理在收到一个服务端的响应前不会对客户端的请求进行应答。当策略 被违反时,它们可能会生成一个拒绝消息。因此,代理需要理解通过它们传输的消 息的语义,它们可能不支持所有的 diameter 应用。Realm(域)在 NAI 中跟在符号之后的字符申,NAI 的域要求为唯一的,且为 DNS 域的分 段,用丁判断消息是否满足本地处理的条件,或者被路由或重定向。Real-time Accounting(实时计费)它包含在一个限定的时间窗内处理资源使用的信息,时间限制通常用来限制风 险。Relay Agent or Relay(中继代理或转播)转播请求和响应基丁路由相关的 AVPs 和路由表,中继不会制定策略,他们不会 检查或更改非路由 AVPs,因此,中继从不产生消息,不需要理解消息的语义或者 非路由AVPs,可能会处理八种 diameter 应用或消息类型,因此,中继依据路由和 域来做决定,并且不保存 NAS 资源使用的状态或会话。Redirect Agent(重定向代理)与其在客户端和服务端间传递消息,重定向代理涉及客户端和服务端,并允许它 们直接通信,所以重定向代理不出现在传输路径中,它们从不修改客户端和服务端 传输的任何 AVPs,也不产生消息,可以处理任何消息类型,尽管它们可能仅配置 为重定向特定类型的消息,与 Proxy 代理相比,重定向代理不保存会话或 NAS 资 源相关的状态。Security Association(安全偶联)一个安全的偶联是指两个端点之间的 diameter 会话,此会话允许端点完整且可信 地通信,包括中继和/或 Proxy o Session(会话)会话是指一个事件相关的活动。每个应用应该为会话的开始和结束提供指导,所 有具有相同会话标识的 diameter 包被认为同一个会话的一部分。Sub-session(子会话)一个子会话表示一个明确的服务(例如 Qos),这些服务可能同时或连续发生(例 如同时产生的语音和同一会话中传输的数据)。此类会话由 Accounting-Sub-Session-Id 来跟踪。*Transaction state(传输状态)Diameter 协议要求代理来维护传输状态,用丁 failover。传输状态暗指一个请 求,逐跳标识被保存,且原来存储对应应答接收时的初始值字段被本地唯一标识符 替代,当拒绝一个应答时请求的状态被释放。Translation Agent(传输代理)是指为一个具有状态的 dimaeter 节点,用丁在 diameter 和其它的 AAA 协议(如 RADIUS)问进行翻译。Translation Connection(传输连接)一个传输连接是指直接存在丁两个 diameter 对端间的 TCP 或 SCTP 连接,或者 说端到端连接。Upstream(上行)用来标识一个特定的 diameter 消息从接入设备到归届服务器的传送方向。User(用户)产生请求或使用某些资源的实体,支持 diameter 客户端产生一个请求。链接和会话的区别:链接为传输层概念,会话为应用层的概念,通过 AVP Session-Id 来标识,两者 之前没有联系。如下图:+-+-+-+|Client|Relay|Server|+-+-+-+peer connection A peer connection B User session x Figure 1:Diameter connections and sessions*对端表 用丁消息传递和路由表全使用,包括以下信息:1.Host 标识:包括 Origin-Host AVP,在 CER/CEA 消息中使用。2.StatusT:对端实体的状态。3.Static or Dynamic:指对端是静态配置的还是动态发现。4.Expiration time:指使用动态发现机制时刷新超时的时长。5.TLS Enablee:与对端通信时是否使用 TLS。基丁域名的路由表 1.域名:用丁查找路由表时使用的主键。2.应用程序标识:使用一个 Vendor id和一个 applicaiont id标识,其为路由表的 第二主键。3.Local Action:决定消息如何处理,有以下几个选项:LOCAL:本地处理,不需要路由到下一个服务器。RELAY:路由到下一跳,注意不修改任何非路由的 AVP。PROXY:路由到下一跳,注意可能会在消息中添加新的 AVP。REDIRECT:具有一个源 diameter 服务器的标识,且将消息返回给发送 者。4.服务器标识:必须出现在对端表中,当 Local Action 为 RELAY 或 PROXY 时,此字段标识消息被路由到的地址,当为 REDIRECT 时,表示消息应该重定向到 的一个或多个服务器。5.Static or Dynamic:路由信息是静态配置还是动态发现。6.Expiration time:与对端表中的含义相同。另外,路由表必须包含一条默认路由。Diameter 消息应用层的路由 1.创建和发送 Request 消息:1)产生一个 Request 消息时,必须遵守下列规则:设置头部的 Command codq 设置头部的R位;设置头部的 End-to-End 为本地的唯一值;Origin-Host 和 Origin-Realm AVPs 必须携带,用来标识消息的源地 址;Destination-Host 和 Destination-Realm AVPs 需根据以下规则设置;a)不能被 Proxy 的消息一定不能带 Destination-Realm and Destination-Host AVPs;b)如果消息是发往某个 realm 而不是具体的 host:,则只携带 Destination-Realm AVP;c)如果消息是发往某个具体的 host,则需要同时携带 Destination-Realm and Destination-Host AVP 如果消息有可能被转发,则消息中还必须携带下列 AVP 之一:an Acct-Application-Id AVP,an Auth-Application-Id AVP or a Vendor-Specific-Application-Id AVP;2)当发送一个 Request 消息时,无论是源主机发送还是 Agent 转发,都需 要执行下列操作:a)设置头部的 Hop-by-Hop 为本地的唯一值;b)将该消息放入 Pending Request?肖息队歹 0;2.收到 Request 消息:1)当一个 Diameter 节点收到一个 Request 消息后,有如下四种可能的处理方 式:a)如果满足如下条件,则本地处理:Destination-Host AVP 包含了本地 host 的标识或者 Destination-Host AVP 不存在,Destination-Realm AVP 经过在路由表 中查询被配置为本地处理,或者 Destination-Host 和 Destination-Realm 都不存在;b)如果 Destination-Host AVP 存在丁本地的 Peer table 中,则执行 Request Forwarding:c)如果没有本地处理也没有进行 Request forwarding,则根据 Destination-Realm AVP 和 Auth-Application-Id 或 Acct-Application-Id 或 Vendor-Specific-Application-Id 查找 Realm Routing Table,执行 Request Routing;d)返回错误 DIAMETER_UNABLE_TO_DELIVER;注意:这里区分了 Request forwarding 和 Request Routing 本文其它地方提 到的“转发”都是泛指消息非本地处理的情况;2)Request 消息在被 Relay 或者 Proxy 的时候,Relay Agent 和 Proxy Agent 需 要做如下工作:a)在转发出去的 Request 消息中插入 Route-Record AVP,里面包含发送该 Request*肖息的主机标识;b)保存和该 Request*肖息相关的:Protocol,IP Address,Port,Hop-by-Hop 标识;保存这些信息是为了收到与该 Reqeuesg 肖息对应的 Answer 消息后能够将 Answer 消息正确的转发出去;3.创建 Answer 消息:当一个 Request 消息被本地处理后,必须按照如下规则创建并发送 Answer 消息:从 Request 消息中拷贝 Hop-by-Hop 填入 Answer 消息;将本地主机标识作为 Origin-Host AVP;Destination-Host 和 Destination-Realm AVPs 不允许出现在 Answer 消 息中;加上 Result-Code AVP 指示成功与否.如果 Reqeust 消息中包含了 Session-Id,那么 Answer 消息中也应该包 含该值;在 Request 消息中的任何 Proxy-Info AVPs 都应原封不动的拷贝到 Answer 消息中;P位需要和 Request 消息中保持一致;End-to-End 需要和 Request 消息中保持一致;收到 Answer 消息:当收到一个 Answer 消息时需要如下操作:检查其 Hop-by-Hop,从 Pending Reques 队歹 U 中找到与其一致的 Reqeust 消息,然后将 Reqeust 消息从 Pending Reques 佻歹 U 中删除;如果是 Agent 收到 Answer 消息,Agent 需要将 Hop-by-Hop 替换为先 前保存的 Reqeust 中的 Hop-by-Hop,然后再将 Answer 消息转发出 Diameter 基础协议摘要 Diameter 是新一代 AAA 协议,可以承载与 TCP 或者 SCTF议之上,被广泛应用丁 4.下图是 Diameter 节点 经由 Relay Agent 发送一个 Request 消息给 并收到 Answer 消息的示意图,该 图主要为了说明 Hop-by-Hop 和 End-to-End 两个标识的作用:abc.example,com Kyz.ccamplE.net IMS,LTE 网络中。RFC358 耽义了 Diameter 的基础协议,各种应用可以在此基础 上对其进行扩展(主要是定义新的 Application ID,Command 和 AVP基础协议中包 括一个基本的 Accounting 功能,如果需要 Authentication 或者 Authorization 通常需 要进行对基础协议扩展。1.基本概念:Connection:是传输层的概念,负责在两端直接传输 Diameter 消息;Session 是应用层的概念,可以用 Session-id 这 AVP 来标识;下图展示了 Connection 与 Session 的 区别;+-+-+-+|Client|Relay|Server|+-+-+-+peer connection A peer connection B User session x Destination Host 用丁标识一台运行 Diameter 应用的主机,命名方式类似 DNS 格式,但并不是域名,只是一个标识符而已,一台运行 Diameter 应用 的主机可以支持一个或者多个 Diameter 应用;Destination Realm 用丁标识一组运行 Diameter 应用的主机,可以将多台 Host划归为一个 Realm 中;Peer Table:用丁消息路由的数据配置,Peer table 中的主机都是能和本地 主机之间通信的(也就是说中问无需经过消息转发),格式如下表:Host identity StatusT R-Open Static or Dynamic statically Expiration time 0 R-Open dynamically 10 Realm-Based Routing Table:用丁消息路由的数据配置,格式如下表:Realm Name Application Identifier Local Action Server Identifier Static or Dynamic Expiration time example 16777250 RELAY statically 0 example 16777272 RELA dynamically 10 2.Diameter Agents:Relay Agents 对消息进行转发,只增加或者删除路由信息,而不会修改 任何应用层信息;在 CER/CEA 进行能力交互时,需要返回自己支持的 Application ID 为 Relay Application Identifier;使用 Relay Agents 的好处是简 化网络的复杂性,不需要对所有 Diameter 节点都进行复杂的配置,比如只 需配置节点让 Diameter 消息转发到 Relay Agents,然后在 Relay Agents进 行比较全面的路由配置即可。Proxy Agents Proxy Agents 也负责转发消息,与 Relay Agent 不同的是,它需要理解应用层的信息,进而维护 Transaction 的状态;在 CER/CEA 进行 能力交互时,需要返回自己支持的所有 Application ID;*Redirect Agents 收到 Diameter 消息后不进行转发,而是回复一个应答消 息给发送者,应答消息中包含一个或者多个地址,告诉发送者应该将消息 发往这些地址;Translation Agents 完成 Radius 和 Diameter 协议之间的转换;3.消息格式:MAC header IP header SCTP|TCPheader Diameter header Data:1)Diameter header:Version:Diameter 的版本号,目前为 1;Message length 包含头部在内的消息长度,也就是头部+所有 AVP 的 长度之和;Flags:R(equest)如果置位表示这是一个 Request 消息;P(roxiable):如果被置位说明该消息可以被转发,否则必须本地处理;E(rror):如果置位,说明产生了一个协议错误,只能出现在 Answer 消息 中;T:如果被置位,说明该消息有可能是一个被重传的消息;r:保留位;Code:消息命令码,用来标识各种 Diameter 消息,由 IANA 负责统一分 配;Application ID:用来表示不同的 Diameter 应用,由 IANA 负责统一分 Hop by Hop ID:用来匹配 Request 和 Answer 消息,在一个指定的 Connection 上的任何时间都必须是唯一的;该值在 Diameter 消息转发时 会被 Agent 修改;End to End ID:用来识别重复消息;该值在本地的一段时间内必须是 唯一的,传输过程中一直保持不变;目标主机会根据该值和 Original Host AVP来判读是否是重复消息;2)AVP header:AVP code:用来标识一个 AVP,由 IANA 来统一分配;AVP flags:V,Vendor specific:如果置位说明 Vendor ID 存在;M,Mandatory:如果置位说明该 AVP 是必须的;P:如果置位说明需要保证该 AVP 端到端的安全性;r:reserved AVP length:AVP 长度;Vendor ID:可选的,如果 AVP flags 中的 V 被置位,说明该域存在;该值也是由 IANA 分配的;4.Diameter 和连接相关的三对基本消息:Diamete 通过传输层 TCP/SCT 理立连接后,传输的第一个消息就是 CER/CEA 通过该消息的交互了解对端都支持哪些应用,看是否有共同的应 用;如果对端是Relay Agent 则认为肯定存在共同应用;狄知对方支持你 哪些应用后,发送消息的时候就不会发送对方不认识的消息,对方对收到的 不认识的消息也不会处理。此外双方的 IP 地址也会在 CER/CEAW 息中交 换。CER/CE 湛不能被 Proxy,Relay 或者是 Redirection 的,所以说 CER/CEA 只能是直连节点之间的交换,如果节点 A经过 Relay Agent 发送消息到节点 B,那么需要建立两个连接,进行两次 CER/CEA勺交互。当需要断开连接 时,主动方需要发起 DPR 消息给对端指示断开传输层连接。在连接期间,双方需要互发 DWR/DWA(Watching Dog)消息,用来检测对方是否处于 Active 状态.5.如何看规范中的 Diameter 命令的 ABNF 定义:具体参见协议的 3.2,这里用一个例子大概总结一下:Example-Request:=/该 AVP 必须存在一个,且位置固定(User-Name /该 AVP 必须存在一个 Destination-Host /该 AVP 可存在一个或者不存在 1*Origin-Host /该 AVP 可存在一个或者多个*AVP /该 AVP 可存在零个或者多个

    注意事项

    本文(Diameter协议学习笔记一.pdf)为本站会员(深夜****等你...)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开