首页 > 其他分享 >TR-069第一期第六修正版-3

TR-069第一期第六修正版-3

时间:2022-10-18 10:36:48浏览次数:87  
标签:选项 ACS option 069 TR CPE 修正版 URL DHCP

3 程序与需求 Procedures and Requirements

本节连同本节中引用的附件,定义了 CPE WAN 管理协议的规范性要求。

本节还引用了构成 CPE WAN 管理协议一系列标准和其他规范。 除非另有规定,CPE 和 ACS 必须遵守这些参考规范的要求。

3.1 找到ACS

CPE WAN 管理协议定义了以下机制,CPE 可以使用这些机制来获得其关联的 ACS地址:

  1. CPE 可以在本地配置每个 CWMP Endpoint的 ACS 的 URL。例如,可以通过 LAN 端 CPE 自动配置协议来完成。如有必要,CPE 将使用 DNS 从 URL 的主机名部分解析 ACS 的 IP 地址。

    Kevin: 这里说明了 1,一个CPE里可以有多个TR终端,每个终端都可以配置ACS URL地址,这些地址可以不一样。2,可以在CPE侧配置ACS URL,注意不是默认ACS URL。3,ACS URL可以用域名。

  2. 作为 IP 层自动配置的一部分,接入网络上的 DHCP 服务器可以把ACS URL 配置到 DHCP 选项option( 参考[^17] [^25] [^38])。如有必要,CPE 将使用 DNS 从 URL 的主机名部分解析 ACS 的 IP 地址。在这种情况下,可以使用额外的 DHCP 选项来设置:

    Kevin: DHCP可以配置option,每个option可以是一个地址或其他说明。

    option 是 dhcp报文中的一个选项,该选项在dhcp报文中为可变长的字段,option选项中包含了部分租约信息、报文类型等。option选项中最多可以包括255个option,最少为1个option。

  • ProvisioningCode,可用于向 ACS 指明主要服务提供商和其他信息。
  • CWMPRetryMinimumWaitInterval,可用于设置 CWMP 会话重试最小等待间隔的初始值,具体定义如第 3.2.1.1 节所述。
  • CWMPRetryIntervalMultiplier,可用于设置CWMP 会话重试间隔乘数的初始值,具体定义如第3.2.1.1 节所述。

CPE 通过DHCPv4 选项 option 60、124或DHCPv6 option 16中是否包含全小写的字符串 “dslforum.org”来向DHCP服务器标识自己。 三个vendor-class-data选项分别是DHCPv4 Vendor Class Identifier(选项 60),DHCPv4 V-I Vendor Class Option(选项 124)或 DHCPv6 Vendor Class (option 16) 。

Kevin:注意这里有三个option。是在不同的DHCP 协议版本中使用的。不一定同时出现。

CPE 可以在 DHCPv4 参数请求列表(选项 55)中包含 DHCPv4 选项 43 或 125中的一个,以指明支持和请求选项 43 或选项 125。如果 CPE 不使用option选项 55,服务器可以假定它支持并请求选项 43(而不是选项 125)。类似地,CPE 可以在 DHCPv6 选项请求选项(选项 6)中包含 DHCPv6 选项 17。

Kevin: option选项 55是设置请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。

CPE可以通过 (DHCPv4 option 43 / DHCPv4 option 125 / DHCPv6 option 17) 中得到的值来设置下文表2中的参数。如果两个DHCPv4 option都收到了,那CPE必须使用在参数列表option 55中的。如果没有使用option 55,则使用option 43。如果DHCPv4和DHCPv6 option都收到了,优先使用DHCPv6的。DHCP option以选项option( 参考注释[^17] / [^25] / [^38])的格式被encode为单个或多个封装供应商特定选项列表。这个列表也可以包含其他供应商选项。

当DHCP中包含 IANA Enterprise Numbers时,例如: DHCPv4 options 124 / 125 和 DHCPv6 options 16 / 17,必须使用 Broadband Forum 的 IANA Enterprise Number 3561(十进制)。(和ADSL Forum一样。可以参考[^21],连接为http://www.iana.org/assignments/enterprise-numbers/enterprise-numbers)

如果CPE使用DHCP提供的ACS URL不访问到ACS,CPE必须使用DHCP重新获取ACS URL。如果在300秒内不能与解析出来的每个ACS URL建立TCP连接,CPE 必须认为ACS不可达。如果没有收到DHCP的回复,那CPE必选依据注释[^23] RFC 2131, Dynamic Host Configuration Protocol, http://www.ietf.org/rfc/rfc2131.txt和[^38] RFC 3315, Dynamic Host Configuration Protocol for IPv6 (DHCPv6), http://www.ietf.org/rfc/rfc3315.txt进行重试。

在以下情形,当CPE需要连接ACS时,必须使用DHCP:

  • 当CPE的“ManagementServer.URL”参数是空值,或者
  • 当CPE 无法联系到 ACS,并且CPE 原本(最近一次恢复出厂设置后的第一次成功)通过 DHCP 获得了它的 ACS URL。

如果 没有在CPE 中预先配置 ACS URL ,这将使 CPE 能够返回并使用 DHCP 来查找 ACS。 例如,可以解决CPE 上设置了错误的 ACS URL 的情况。 此行为并不是 ACS 故障转移机制。

CPE 必须记住每次出厂重置后它用来定位 ACS 的机制。 如果 CPE 没有使用 DHCP 来发现 ACS URL,那么它不应该回退到使用 DHCP 来发现 ACS。 如果 CPE 最初使用 DHCP 进行 ACS 发现,那么当它无法联系 ACS 时,它必须通过 DHCP 执行重新发现。 即便后面通过非 DHCP 机制设置了 ACS URL,最后一个要求仍然成立(仍需使用DHCP获取)。

表2-封装厂商定义选项

封装选项 DHCPv4 option 43 DHCPv4 option 125 DHCPv6 option 17 对应TR069的参数名
URL of the ACS 1 11 1 ManagementServer.URL
Provisioning code 2 12 2 DeviceInfo.ProvisioningCode
CWMP retry minimum wait interval 3 13 3 ManagementServer.CWMPRetryMinimumWaitInterval
CWMP retry interval multiplier 4 14 4 ManagementServer.CWMPRetryIntervalMultiplier

所有封装的选项值必须表示为字符串,并且必须是其对应参数的有效值。 指定的 URL 必须是绝对 URL。 封装的选项值不得以空值结尾。 如果 CPE 接收到一个以空结尾的封装选项值,CPE 必须接受提供的值,并且不得将空字符解释为值的一部分(忽略结尾空字符)。

  1. CPE 可以有一个默认的 ACS URL,如果没有其他 URL 可以用,CPE可以使用默认ACS URL。

ACS URL 必须采用有效的 HTTP 或 HTTPS URL [^6] 的形式。使用 HTTPS URL 表示 CPE 必须与 ACS 建立 SSL 或 TLS 连接。

一旦 CPE 通过 CWMP Endpoint与 ACS 建立连接,ACS 可以随时修改存储在 CPE 中的 ACS URL 参数(Management Server.URL,如 [27]、[34] 和 [^35] 中定义的)。一旦修改,CPE 必须使用修改后的 URL 来连接到 ACS 的所有后续连接。

当使用基于证书的身份验证时,CPE 使用 ACS URL 的“host”部分来验证来自 ACS 的证书。因为这依赖于 ACS URL 是否准确,所以该协议的整体安全性取决于 ACS URL 的安全性。

本地配置CPE上的 ACS URL需要严格遵守安全机制。 CPE 可以进一步限制仅允许 本地将 ACS URL设置为初始值,一旦成功建立到 ACS 的初始连接,则禁止本地配置,以便随后仅允许现有 ACS 更改此 URL。 CPE 应该防止尝试更改 ACS URL可以避免跨站点脚本攻击 [54] 和跨站点请求伪造攻击 [^55] 。

使用 DHCP 配置 ACS URL 应该仅限于服务提供商可以确保 DHCP 服务器和 CPE 之间的链路安全的情况下。由于 DHCP 本身不包含安全机制,因此应该提供其他确保这种安全性的方法。

ACS URL 可以包含 DNS 主机名或 IP 地址。当解析 ACS 主机名时,DNS 服务器可能会返回多个 IP 地址。在这种情况下,CPE 应该从列表中随机选择一个 IP 地址。当 CPE 无法到达 ACS 时,它应该从列表中随机选择另一个 IP 地址并尝试使用新的 IP 地址联系 ACS。如果多个 IP 地址代表不同的 ACS,此行为可确保 CPE 在不同 ACS 之间保持平衡。

CPE 不能缓存超过 DNS 服务器返回的生存时间 (TTL) 的 DNS 服务器响应,除非它无法联系 DNS 服务器进行更新。这种行为是 DNS RFC 1034 [^5] 所要求的,这为 DNS 服务器提供了更新陈旧数据的机会。

进一步建议实现CPE 与特定的ACS IP 地址关联。与给定 IP 地址关联意味着 只要CPE可以连接到此IP地址的 ACS,则CPE一直使用相同的 IP 地址。这将创建一个更稳定的系统,可以使 ACS 运行得更好。为了实现与IP的绑定,CPE 应将上次成功使用的 IP 地址以及它所在的IP 地址列表进行长期存储。CPE 应继续正常执行 DNS 查询,但只要可以联系 上ACS,并且只要 DNS 返回的 IP 地址列表不变,就应继续使用相同的 IP 地址。每当 IP 地址列表更改或无法联系 ACS 时,CPE 应选再选择新的 IP 地址。这为服务提供商提供了重新配置网络的机会。

端口 7547 已由 IANA 分配给 CPE WAN 管理协议(请参阅 [^20]Port Numbers, http://www.iana.org/assignments/port-numbers ),ACS 可以在其 URL 中使用此端口。

Kevin - 小结:获得ACS URL地址的优先级
  • 如果之前连接ACS成功过,也可能会有ACS指定CPE去连接新ACS的情况。则这种优先级最高。
  • 通过LAN端配置的ACS。
  • 以往连接成功过的,DHCP解析得到的ACS。
  • DHCP解析新得到的ACS。
  • CPE默认配置中的备选ACS。
  • Kevin - 小结:ACS URL地址发生改变的几种情况
  • ACS使用SetParameterValues方法修改CPE保存的ACS URL地址。
  • ACS URL地址使用域名方式时,DNS更新了ACS的IP地址。
  • 以往连接成功过的ACS无法再连接,CPE尝试发现新的ACS。
  • CPE发生恢复出厂设置。。
  • ACS使用download RPC方法,下发了配置文件config file。
  • 标签:选项,ACS,option,069,TR,CPE,修正版,URL,DHCP
    From: https://www.cnblogs.com/kevin4X/p/16801727.html

    相关文章

    • String内存泄漏
      内存泄漏:指为一个对象分配好内存之后,在对象已经不再使用时未及时的释放,倒是一直占据内存单元,使实际可用内存减少,就好像内存泄漏了一样。内存溢出:内存不够用了,比如在一个无......
    • Illustrator 2023 for mac(ai2023) 27.0
       illustrator2023上线了,支持macOS11及更高版本,借助这款AI2023矢量图形软件,您可以制作适用于印刷、Web、视频和移动设备的徽标、图标、绘图、版式和插图的矢量图设计,还......
    • String.format()的用法
      String.format()字符串常规类型格式化的两种重载方式format(Stringformat,Object…args)新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format......
    • Bootstrapd导航条使用
      要想在程序中集成Bootstrap,显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为Flask-Bootstrap的Flask扩展,简化集成的过程。安装:Flask-Bootstrap使用pip安......
    • Java 8 Stream详解
       【Java8系列】Stream详解,看这一篇就够啦https://blog.csdn.net/yy339452689/article/details/110956119......
    • AutoCAD Geometry库中的CurveCurveIntersector3d获取的交点坐标不正确
      ///<summary>///2022年10月17日Author:Myzw//////</summary>[CommandMethod("Test14")]publicvoidC_Test1......
    • Golang 中的 struct{}
      空接口類型基本類型大小struct{}大小地址被包含獨立作用mapchainstruct{}先看一個例子typeNilStructstruct{}typeManstruct{ NoneNilStru......
    • Stream流简单使用
      创建流/***创建流*/@TestpublicvoidtestOne(){List<Author>authorList=newArrayList<>();authorList.add(Author.buil......
    • 面经:什么是Transformer位置编码?
       Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员过去的几年里,Transformer大放异彩,在各个领域疯狂上分。它究竟是做什么,面试常考的Transformer位置编码暗藏什么玄机?本......
    • Codeforces Global Round 23 -D.Paths on the Tree
      题意给定一个树,树上每个节点i有一个权值s[i]。一共有k条从1(一定是根节点)开始的简单路径。设i点有c条路径通过,则其总权值为c*s.现在在限制:如果p[u]=i,p[v]=i,则abs(c[u]......