跳到主要内容

3. Problems Encountered with the Flexible Model (灵活模型遇到的问题)

3. Problems Encountered with the Flexible Model (灵活模型遇到的问题)

3.1 Searching (搜索)

3.1.1 General Summary (一般概述)

如果通过 UNIX 系统进行 IPv6 地址的搜索, 通常是区分大小写的, 并且允许使用正则表达式的扩展选项会很方便。然而, 当今互联网上的许多应用程序不提供此功能。在此类系统中搜索 IPv6 地址时, 系统工程师将不得不尝试每一种可能性来搜索地址。这会产生严重影响, 尤其是在尝试在企业网络上部署 IPv6 时。

3.1.2 Searching Spreadsheets and Text Files (搜索电子表格和文本文件)

GUI 系统上的电子表格应用程序和文本编辑器很少具有使用正则表达式搜索文本的能力。此外, 有许多非工程师 (他们不了解大小写敏感性和正则表达式的使用) 使用这些应用程序来管理 IP 地址。这在 IPv4 中运作得相当好, 因为 IPv4 中的文本表示灵活性很小。当他们决定使用双栈时, 没有动力鼓励这些非工程师更改他们的工具或学习正则表达式。如果电子表格中的条目是 2001:db8::1:0:0:1, 但搜索是作为 2001:db8:0:0:1::1 进行的, 这将显示不匹配的结果。一个会导致问题的示例是, 当进行搜索以从池中分配新地址时, 正在进行检查以查看它是否未被使用。这可能会给终端主机或最终用户带来问题。这种类型的地址管理在企业网络和 ISP 中非常常见。

3.1.3 Searching with Whois (使用 Whois 搜索)

"whois" 实用程序今天被广泛使用。当将记录设置到数据库时, 人们可能会检查输出以查看条目是否正确。如果实体被记录为 2001:db8::/48, 但 whois 输出显示为 2001:0db8:0000::/48, 大多数非工程师会认为他们的输入是错误的, 并可能会重试几次或打个令人沮丧的电话给数据库主机管理员。如果需要在不同系统上注册相同的前缀, 并且每个系统显示不同的文本表示, 这会让人们更加困惑。虽然本文档侧重于地址而不是前缀, 但值得提及前缀问题, 因为地址和前缀遇到的问题大致相同。

3.1.4 Searching for an Address in a Network Diagram (在网络图中搜索地址)

网络图和蓝图通常显示分配给系统设备的 IP 地址。在故障排除时, 可能需要通过图表搜索以找到故障点 (例如, 如果 traceroute 在 2001:db8::1 处停止, 人们会在图表中搜索该地址)。这是企业网络和管理服务中经常使用的技术。同样, 不同风格的文本表示将导致耗时的搜索, 从而导致故障时更长的平均恢复时间 (MTTR)。

3.2 Parsing and Modifying (解析和修改)

3.2.1 General Summary (一般概述)

由于所有可能的文本表示方法, 每个应用程序必须包含一个模块、对象、链接等到一个函数, 该函数将以这样的方式解析 IPv6 地址, 无论如何表示, 它们都将表示相同的地址。许多为企业客户集成复杂计算机系统的系统工程师会发现他们最喜欢的工具没有此功能, 或者会遇到困难, 例如必须为客户重写他们的宏或脚本。

3.2.2 Logging (日志记录)

如果应用程序输出完整表示地址的日志摘要 (例如 2001:0db8:0000:0000:1111:2222:3333:4444), 与 IPv4 输出相比, 输出将非常难以阅读。必须解析和重新格式化地址以使其对人类阅读有用。有时, 关键系统的日志记录是通过将相同的流量镜像到两个不同的系统来完成的。必须注意, 无论日志输出是什么, 都应该解析日志, 使它们等效。

3.2.3 Auditing: Case 1 (审计: 情况 1)

当审计路由器或任何其他网络设备机器配置时, 有许多方法可以比较节点的配置信息。有时审计只是通过比较每天所做的更改来完成。在这种情况下, 如果配置被更改, 使得 2001:db8::1 被更改为 2001:0db8:0000:0000:0000:0000:0000:0001, 只是因为新工程师觉得这样更好, 简单的 diff 将显示配置了不同的地址。如果这是在大规模网络上完成的, 人们将专注于 '为什么要加上额外的零' 而不是进行任何真正的审计。许多工具只是不考虑地址表示规则的简单 diff。

3.2.4 Auditing: Case 2 (审计: 情况 2)

节点配置将与管理 IP 地址的信息系统进行匹配。如果输出表示法不同, 则需要实现一个脚本来解决这个问题。SNMP GET 操作的结果转换为文本并与人类编写的文本地址进行比较, 在第一次尝试时极不可能匹配。

3.2.5 Verification (验证)

某些协议要求验证某些数据字段。这方面的一个示例是 X.509 证书。如果证书中的 IPv6 地址字段通过将其转换为文本并与其他地址进行简单的文本比较而被错误地验证, 由于文本表示方法的差异, 证书可能会被错误地显示为无效。

3.2.6 Unexpected Modifying (意外修改)

有时, 系统会获取一个地址并为方便起见对其进行修改。例如, 系统可能会输入 2001:0db8:0::1 并输出 2001:db8::1。如果输入零是有原因的, 结果可能会有些出乎意料。

3.3 Operating (运营)

3.3.1 General Summary (一般概述)

当操作员将系统的 IPv6 地址设置为 2001:db8:0:0:1:0:0:1 时, 系统可能会获取该地址并将配置结果显示为 2001:DB8::1:0:0:1。熟悉 IPv6 地址表示的人会知道设置了正确的地址, 但并非每个人都可能理解这一点。

3.3.2 Customer Calls (客户来电)

当客户致电询问疑似故障时, 应谨慎处理 IPv6 地址表示。并非所有客户都是工程师, 他们在 IPv6 技术方面也没有类似的技能水平。网络运营中心将不得不采取额外的步骤来人工解析地址, 以避免向客户解释 2001:db8:0:1::1 与 2001:db8::1:0:0:0:1 相同。这是 IPv4 中永远不会发生的事情, 因为 IPv4 地址不能被缩写。

3.3.3 Abuse (滥用)

网络滥用报告通常包括滥用的 IP 地址。这种 '报告' 可以采用灵活模型的任何形式或形式。处理网络滥用的团队必须能够区分 2001:db8::1:0:1 和 2001:db8:1::0:1。"::" 放置的错误将导致严重情况。处理这些事件的系统应该能够处理任何类型的输入并以正确的方式解析它。此外, 事件是通过电话报告的。不必报告字母是大写还是小写。但是, 当字母拼写为大写时, 人们倾向于指定它是大写的, 这是不必要的信息。

3.4 Other Minor Problems (其他小问题)

3.4.1 Changing Platforms (更改平台)

当工程师决定更改正在运行的服务的平台时, 由于 IPv6 地址文本表示的差异, 相同的代码可能无法按预期工作。通常, 平台的更改 (例如, Unix 到 Windows, Cisco 到 Juniper) 无论如何都会导致代码的重大更改, 但地址表示的灵活性会增加工作量。

3.4.2 Preference in Documentation (文档中的偏好)

由多个作者编辑的文档可能会变得更难阅读。

3.4.3 Legibility (易读性)

大写字母 D 和 0 经常会被误读。大写字母 B 和 8 也可能被误读。