具有 CIDR 的 IP 地址分配架构

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 本文提供了一种在 Internet 中分配 IP 地址的架构和方案。该架构和计划旨在在引导互联网朝着 [1] 中概述的地址分配和聚合策略方面发挥重要作用。

640.gif


RFC1518:An Architecture for IP Address Allocation with CIDR,September 1993


本备忘录的状态


此 RFC 为 Internet 社区指定了 Internet 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态和现状请参考当前版本的《互联网官方协议标准》。本备忘录的分发不受限制。


1、 介绍


本文提供了一种在 Internet 中分配 IP 地址的架构和方案。该架构和计划旨在在引导互联网朝着 [1] 中概述的地址分配和聚合策略方面发挥重要作用。


IP 地址空间是一种稀缺的共享资源,必须为了社区的利益进行管理。该资源的管理者充当其保管人。他们对社区有责任为了共同利益来管理它。


2、 范围


全球互联网可以被建模为通过传输和交换设施互连的主机集合。对主机集合以及构成全球互联网网络资源的传输和交换设施的控制不是同质的,而是分布在多个管理机构之间。单一管理控制下的资源形成一个域。在本文的其余部分,“域”和“路由域”将交替使用。与其他域共享其资源的域称为网络服务提供商(或简称提供商)。利用其他域资源的域称为网络服务订阅者(或简称订阅者)。一个给定的域可以同时充当提供商和订阅者。


在讨论 Internet 内的 IP 地址分配时,有两个方面值得关注。第一个是获取和分配 IP 地址的管理要求;第二个是此类分配的技术方面,主要与路由域内(域内路由)和路由域之间(域间路由)的路由有关。本文重点讨论技术问题。


在当前的 Internet 中,许多路由域(例如公司和园区网络)仅连接到一个或少数仔细控制的接入点中的传输网络(例如区域)。前者充当订阅者,而后者充当提供商。


本白皮书中提供的架构和建议旨在立即部署。本文并未专门解决长期研究问题,例如复杂的基于策略的路由需求。


不考虑需要对当前拓扑进行实质性更改或限制的解决方案。


本文中的架构和建议主要面向 Internet 中 IP 地址分配的大规模划分。涵盖的主题包括:


- 在IP地址中编码一些拓扑信息以显着减少路由协议开销的好处;

- 预期需要在互联网寻址中增加层次结构以支持网络增长;

- 推荐的 Internet 拓扑实体(即服务提供商和服务订阅者)与 IP 地址和路由组件之间的映射;

- 建议在服务提供商(例如,骨干网、区域)和服务订阅者(例如,站点)之间分配 IP 地址;

- 由互联网注册管理机构分配 IP 地址;

- 选择连接到多个服务提供商(例如,骨干网或区域网络)的叶路由域中 IP 地址的高阶部分。


需要注意的是,IP 地址分配的其他方面,包括技术和管理,都没有在本文中讨论。未涵盖或仅表面提及的主题包括:


- 识别互联网中的特定管理域;

- 向第三方(例如已分配特定 IP 地址或部分 IP 地址空间的实体)公开注册信息的政策或机制;

- 路由域(尤其是站点)应如何组织其内部拓扑或分配部分 IP 地址空间;讨论了拓扑和地址之间的关系,但没有讨论决定特定拓扑或内部寻址计划的方法;和

- 分配主机 IP 地址的程序。


3、 背景


本节提供了一些背景信息,有助于理解 IP 地址分配中涉及的问题。提供了对 IP 路由的简要讨论。


IP 将路由问题分为三个部分:


- 端系统和路由器(ARP)之间的路由交换,

- 同一路由域中的路由器之间的路由交换(内部路由),以及

- 路由域之间的路由(外部路由)。


4、 IP 地址和路由


就本文而言,IP 前缀是一个 IP 地址和该地址中最左边连续有效位的一些指示。在本文中,IP 地址前缀将表示为 <IP-address IP-mask> 元组,这样对元组的 IP-address 和 IP-mask 组件的按位逻辑与运算会产生最左边的连续有效位序列IP 地址前缀。例如,值为 <193.1.0.0 255.255.0.0> 的元组表示具有 16 个最左边连续有效位的 IP 地址前缀。


在确定 IP 地址分配的管理策略时,了解技术后果很重要。使用分层路由的目的是实现某种级别的路由数据简化或汇总,以减少支持路由所消耗的 CPU、内存和传输带宽。


虽然路由数据简化的概念可以应用于各种类型的路由信息,但本文侧重于一种特定类型,即可达性信息。可达性信息描述了可达目的地的集合。可达性信息的简化表明根据拓扑路由结构分配 IP 地址。然而,行政分配属于组织或政治边界。这些可能与拓扑边界不一致,因此两者的要求可能会发生冲突。有必要在这两种需求之间找到平衡。


路由数据简化发生在分层排列的拓扑路由结构之间的边界处。层次结构中较低的元素向其父元素报告汇总路由信息。


在路由域边界处,IP 地址信息与其他路由域交换(静态或动态)。如果路由域内的 IP 地址都来自不连续的 IP 地址空间(不允许简化),则边界信息由所有 IP 地址的枚举列表组成。


或者,如果路由域从单个 IP 地址前缀中提取域内所有主机的 IP 地址,边界路由信息可以汇总到单个 IP 地址前缀中。这允许大量数据减少并允许更好的缩放(与上一段中讨论的非协调寻址相比)。


如果路由域以或多或少的随机(即非分层)方案互连,则很可能不会发生路由数据的进一步简化。由于路由域没有定义的层次关系,管理员将无法出于数据简化的目的从某些公共前缀中分配域内的 IP 地址。结果将是大量的域间路由;所有路由域都需要他们路由到的所有其他路由域的明确知识。这可以很好地适用于中小型互联网。然而,这并不能扩展到非常大的互联网。例如,我们预计仅在北美就有数万或数十万个路由域的 Internet 将来会增长。这需要更高程度的可达性信息简化,超出了在“路由域”级别可以实现的程度。


然而,在 Internet 中,通过利用现有的分层互连性,应该可以显着限制路由信息的数量和复杂性,如第 5 节所述。因此,一组路由域有机会分别从分配给另一个路由域的较短前缀中分配一个地址前缀,该路由域的功能是互连路由域组。路由域组的每个成员现在都有它的(稍长的)前缀,它从中分配它的地址。


最直接的情况是当有一组路由域都连接到单个服务提供商域(例如,区域网络),并且使用该提供商处理所有外部(域间)流量时。可以给提供商一个小的前缀,然后提供商给它互连的每个路由域提供稍长的前缀(基于提供商的前缀)。这允许提供商在通知其他路由域它可以到达的地址时,将大量路由域的可达性信息缩写为单个前缀。因此,这种方式可以允许大量的路由信息分层缩写,从而可以大大提高域间路由的可扩展性。


显然,这种方法是递归的,可以通过多次迭代进行。假设 IP 地址保持在总长度和结构约束范围内,层次结构中任何“级别”的路由域都可以使用它们的前缀作为后续子分配的基础。


此时,我们观察到层次结构每个较低级别的节点数量呈指数增长。因此,当可达性信息聚合发生在层次结构的叶子附近时,可达性信息简化的最大收益(为了层次结构的所有更高级别的利益)发生;每升一级,收益就会显着下降。因此,收益递减规律表明,在某些时候,数据简化不再产生显着的收益。与路由域的数量相比,确定数据简化不再有益的点需要仔细考虑在层次结构的每个级别(在给定的时间段内)预计出现的路由域的数量和地址前缀,可以通过动态域间路由协议方便有效地处理。


4.1、 效率与分散控制


如果 Internet 计划支持分散地址管理 [4],则必须在 IP 地址的高效路由需求和分散地址管理需求之间寻求平衡。[3] 中描述的提案提供了如何满足这两个需求的示例。


IP 地址前缀 <198.0.0.0 254.0.0.0> 提供管理权力下放。此前缀标识为北美分配的部分 IP 地址空间。该前缀的低阶部分允许沿拓扑边界分配 IP 地址以支持增加的数据简化。北美地区的客户使用位于其服务提供商 IP 地址空间之下的部分 IP 地址空间。在路由域内,子网和主机的地址是从分配给域的唯一 IP 前缀中分配的。


5、 Internet 中的 IP 地址管理和路由


基本的 Internet 路由组件是服务提供商(例如,骨干网、区域网络)和服务用户(例如,站点或园区)。这些组件大部分是分层排列的。从这些组件到 IP 路由组件的自然映射是提供商和订阅者充当路由域。


或者,订阅者(例如,站点)可以选择作为由服务提供商形成的域的一部分进行操作。我们假设某些(如果不是大多数)站点更愿意作为其提供商的路由域的一部分运行。此类站点可以通过内部路由协议路由泄漏或通过外部路由协议与其提供商交换路由信息。就本次讨论而言,该选择并不重要。该站点仍会从提供商的地址空间中分配一个前缀,并且提供商会将其自己的前缀通告到域间路由中。


给定这样的映射,应该在哪里进行地址管理和分配以同时满足行政分散和数据简化?考虑了以下可能性:


- 在路由域内的某个部分,

- 在叶路由域,

- 在中转路由域 (transit routing domain,TRD),以及

- 在大陆边界。


路由域内的一个点对应一个子网。如果一个域由多个子网组成,它们通过路由器互连。叶路由域对应站点,主要目的是提供域内路由服务。部署中转路由域以承载中转(即域间)流量;主干和提供商是 TRD。


路由信息传输和操作的最大负担位于路由层次结构的顶部,路由信息往往在此堆积。例如,在 Internet 中,提供商必须管理可通过提供商访问的所有网络的网络号码集。发往其他提供商的流量通常路由到主干(也充当提供商)。但是,主干网必须知道所有连接的提供商及其相关网络的网络编号。


通常,在路由层次结构的给定级别简化路由信息的优势在层次结构的较高级别上更大。执行简化的管理没有直接的好处,因为它必须在每个附加的拓扑路由结构上单独维护路由信息。


例如,假设给定站点试图决定是直接从分配给北美的 IP 地址空间还是从分配给其服务提供商的 IP 地址空间中获取 IP 地址前缀。如果只考虑自身利益,网站本身和附属提供商几乎没有理由选择一种方法或另一种方法。该站点必须使用一个或另一个前缀;前缀的来源对站点内的路由效率影响不大。提供商必须维护关于每个附加站点的信息以便路由,而不管站点前缀中的任何共性。


但是,当提供商将路由信息分发给其他提供商(例如,骨干网或 TRD)时会有所不同。在第一种情况下,提供商不能将站点的地址聚合到它自己的前缀中;地址必须在路由交换中明确列出,从而给必须交换和维护此信息的其他提供商带来额外负担。


在第二种情况下,每个其他提供商(例如,骨干网或 TRD)看到提供商的单个地址前缀,其中包含新站点。这避免了交换额外的路由信息来识别新站点的地址前缀。因此,优势主要归于维护有关该站点和提供商的路由信息的其他提供商。


可以将供应商/消费者模型应用于此问题:较高级别(例如,骨干网)是路由服务的提供商,而较低级别(例如,TRD)是这些服务的消费者。服务的收费基于提供服务的成本。管理用于路由到附加拓扑实体的大型地址表的开销会增加此成本。


然而,互联网不是市场经济。相反,有效的运作是建立在合作的基础上的。下面讨论的建议描述了管理 IP 地址空间的简单易行的方法,使整个社区受益。


5.1、 域内 IP 地址的管理


如果各个子网从无数不相关的 IP 地址空间获取它们的 IP 地址,那么除了现有域内路由协议中内置的内容之外,实际上没有数据简化。例如,假设在一个路由域内使用从三个不同的 IP 地址空间分配的三个独立的前缀,这些 IP 地址空间与三个不同的附加提供商相关联。


这对域间路由具有负面影响,特别是对需要维护到该域的路由的其他域。没有可用于表示这些 IP 地址的通用前缀,因此无法在路由域边界进行汇总。当此路由域向其他路由域通告地址时,必须使用三个单独前缀的枚举列表。


这种情况大致类似于目前 Internet 中路由信息的传播,其中每个域都可能分配有不连续的网络号。允许路由域内的子网从不相关的 IP 地址空间获取其 IP 地址的结果是 A/B/C 类网络级别的平面路由。叶路由域将通告的 IP 前缀的数量与附加网络号的数量有关;提供商的路由域将通告的前缀数量大约是附加到客户端叶路由域的网络号的数量;对于主干,这将在所有连接的提供程序中求和。这种情况在当前的互联网中是勉强可以接受的,随着互联网的发展,这将很快变得棘手。需要更大程度的分层信息减少以允许 Internet 的持续增长。


5.2、 叶路由域的管理


如前所述,最大程度的数据简化来自层次结构的最低级别。为每个叶路由域(即站点)提供来自其提供商前缀的前缀会导致简化的最大单一增加。从叶路由域的外部,域中可到达的所有地址的集合可以由单个前缀表示。此外,提供商前缀内可到达的所有目的地都可以由单个前缀表示。


例如,考虑一个单一的园区,它是一个叶路由域,目前需要 4 个不同的 IP 网络。在新的分配方案下,它们可能会被赋予一个前缀,该前缀提供相同数量的目标地址。此外,由于前缀是提供商前缀的子集,因此它们不会对路由层次结构的更高级别施加额外的负担。


子网和路由域之间的密切关系隐含在它们运行公共路由协议并受单一管理部门控制的事实中。路由域管理将域细分为子网。路由域代表子网和互联网其余部分之间的唯一路径。这种关系也扩展到包括公共 IP 寻址空间是合理的。因此,叶路由域内的子网应从分配给叶路由域的前缀中获取其 IP 地址。


5.3、 中转路由域的管理


考虑了两种中转路由域,直接提供商和间接提供商。直接提供商的大多数订阅者是仅作为服务订阅者的域(它们不承载传输流量)。间接提供商的大多数订阅者都是域,它们本身充当服务提供商。在目前的术语中,骨干网是间接提供商,而 TRD 是直接提供商。下面分别讨论每种情况。


5.3.1、 直接服务提供商


考虑直接服务提供商的路由域是否应该使用其 IP 地址空间将来自唯一前缀的 IP 地址分配给他们所服务的叶路由域是很有趣的。数据简化所带来的好处比叶路由域的情况要大,并且由此提供的额外数据简化程度在短期内可能是必要的。


作为说明,请考虑为 100 个客户提供服务的直接提供商的示例。如果每个客户端从 4 个独立的地址空间获取其地址,那么处理到这些客户端的路由所需的条目总数为 400(100 个客户端乘以 4 个提供商)。如果每个客户端从单个地址空间获取其地址,则条目总数将仅为 100。最后,如果所有客户端从同一地址空间获取其地址,则条目总数将仅为 1。


我们预计,在近期内,Internet 中路由域的数量将增长到无法基于路由域的连续区域进行路由的程度。因此,必须提供更大程度的信息简化。


根据提供给提供商的地址前缀,直接提供商可以将他们的部分地址空间(前缀)提供给叶域。这导致直接提供商向骨干网通告地址前缀数量的一小部分,如果他们枚举叶路由域的各个前缀,则这将是必要的。考虑到全球互联互通的预期规模,这意味着可观的节省。


叶路由域是否愿意接受源自直接提供商的前缀?在供应商/消费者模型中,直接供应商提供连接即服务,根据其运营成本定价。这包括从一个或多个间接提供商(例如,骨干网)获得服务的“价格”。通常,间接提供商希望处理尽可能少的地址前缀以保持低成本。在不作为典型市场运行的 Internet 环境中,叶路由域必须对提供商的资源限制(直接和间接)敏感。在域间路由中获得的效率显然保证了采用从提供商的 IP 地址空间派生的 IP 地址前缀。


这个场景的机制很简单。每个直接提供商都被赋予一小组唯一的 IP 地址前缀,其附加的叶路由域可以从中分配稍长的 IP 地址前缀。例如,假设 NIST 是一个叶路由域,其域间链路是通过 SURANet。如果为 SURANet 分配了唯一的 IP 地址前缀 <198.1.0.0 255.255.0.0>,NIST 可以使用唯一的 IP 前缀 <198.1.0.0 255.255.240.0>。


如果直接服务提供商通过多个连接点连接到另一个提供商(直接或间接),那么在某些情况下,直接提供商对连接点之间的耦合施加一定程度的控制可能是有利的和流向特定用户的流量。可以通过首先将所有订阅者分成组来促进这种控制,使得以组内所有订阅者为目的地的流量应该流经特定的连接点。分区完成后,提供商的地址空间将沿组边界进行细分。愿意接受从其直接提供商派生的前缀的叶路由域从与该域所属的组关联的提供商的地址空间细分中获得前缀。请注意,与每个细分相关的路由信息的直接提供商的通告必须谨慎进行,以确保此类通告不会导致与每个细分相关的单独可达性信息的全局分布,除非这种分布对于某些情况是有保证的。其他目的(例如,支持基于策略的路由的某些方面)。


5.3.2、 间接提供商(主干)


对于直接提供商从间接提供商(例如,骨干网)的 IP 空间中获取其地址空间的情况似乎并不充分。路由数据简化的好处相对较小。今天的直接供应商数量在几十个,数量级的增加不会对骨干网造成过度的负担。此外,随着时间的推移,可以预期直接供应商、直接连接到主干的叶路由域和直接连接到供应商的国际链路之间的直接互连将会增加。在这种情况下,直接和间接提供商之间的区别可能会变得模糊。


阻止从主干前缀分配 IP 地址的另一个因素是主干及其附属的提供商被认为是独立的。提供商可以从一个或多个骨干网获取他们的长途服务,或者如果在其他地方提供更具成本效益的服务,则可以切换骨干网。从骨干网派生 IP 地址与这种关系的性质不一致。


5.4、 多宿主路由域


第 5.3 节中的讨论建议了基于直接或间接提供商连接分配 IP 地址的方法。这允许为那些附加到单个 TRD 的路由域实现大量的信息减少。特别是,这样的路由域可以从直接提供商委派给它们的空间中选择它们的 IP 地址。这允许提供商在向其他提供商宣布其可以访问的地址时,使用单个地址前缀来描述与多个路由域对应的大量 IP 地址。


但是,对于附加到多个提供商的路由域,还有其他注意事项。例如,这种“多宿主”路由域可能包括连接到多个骨干网的单站点园区和公司、连接到同一国家不同位置的不同提供商的大型组织,或跨国组织连接到全球多个国家的骨干网。有多种可能的方法来处理这些多宿主路由域。


一种可能的解决方案是让每个多宿主组织独立于它所连接的提供商获取其 IP 地址空间。这允许每个多宿主组织将其 IP 分配基于单个前缀,从而汇总该组织内可通过单个前缀访问的所有 IP 地址的集合。这种方法的缺点是,由于该组织的 IP 地址与任何特定 TRD 的地址没有关系,因此该组织所连接的 TRD 将需要将该组织的前缀通告给其他提供商。其他供应商(可能在全球范围内)将需要在其路由表中为该组织维护一个明确的条目。


例如,假设一家非常大的北美公司“Mega Big International Incorporated”(MBII) 拥有一个完全互连的内部网络,并被分配了一个前缀作为北美前缀的一部分。在北美之外,可能在所有北美目的地的路由表中维护单个条目。但是,在北美,每个提供商都需要为 MBII 维护一个单独的地址条目。如果 MBII 实际上是一家国际公司,那么全世界的每个提供商可能有必要为 MBII 维护一个单独的条目(包括 MBII 没有附加到的主干)。显然,如果存在少量这样的多宿主路由域,这可能是可以接受的,但如果所有组织都选择这样的地址分配,就会给骨干网内的路由器带来不可接受的负载。该解决方案可能无法扩展到拥有数十万个多宿主组织的 Internet。


第二种可能的方法是为多宿主组织为每个到 TRD 的连接分配一个单独的 IP 地址空间,并根据最近的互连点为其域的某个子集分配一个前缀。例如,如果 MBII 连接到美国的两个提供商(一个东海岸,一个西海岸),以及三个连接到欧洲国家骨干网和一个在远东的连接,那么 MBII 可能会使用六个不同的地址前缀。MBII 的每个部分都将根据最近的连接分配一个地址前缀。


为了将流量从 MBII 外部路由到 MBII 内部的目的地,这种方法的工作原理类似于将 MBII 视为六个独立的组织。出于内部路由的目的,或者为了将流量从 MBII 内部路由到 MBII 外部的目的地,此方法的工作方式与第一种解决方案相同。


如果我们假设传入流量(来自 MBII 外部,目的地在 MBII 内)总是通过离目的地最近的点进入,那么每个与 MBII 有连接的 TRD 需要向其他 TRD 宣布到达的能力只有 MBII 的那些地址是从它自己的地址空间中取出的部分。这意味着不需要在 TRD 之间交换额外的路由信息,与第一种解决方案相比,TRD 维护的域间路由表的负载更小。因此,该解决方案可以更好地扩展到包含大量多宿主组织的超大型互联网。


第二种解决方案的一个问题是不会自动维护到多宿主组织的备份路由。对于第一个解决方案,每个 TRD 在宣布能够到达 MBII 时,指定它能够到达 MBII 内的所有主机。使用第二种解决方案,每个TRD根据自己的地址前缀宣布它可以到达所有主机,它只包括MBII内的一些主机。如果 MBII 和一个特定 TRD 之间的连接被切断,那么 MBII 中地址基于该 TRD 的主机将无法通过域间路由访问。通过维护路由表中的附加信息,可以在一定程度上减少此问题的影响,但这会降低第二种方法的扩展优势。


第二种解决方案还要求当外部连接发生变化时,内部地址也会发生变化。


还要注意,这种方法和以前的方法往往会导致数据包采用不同的路由。使用第一种方法,来自 MBII 外部、目的地为 MBII 内的数据包将倾向于通过最接近源的点进入(因此这将倾向于最大化 MBII 内部网络的负载)。使用第二种解决方案,来自外部的发往 MBII 内的数据包将倾向于通过最接近目的地的点进入(这将趋于最小化 MBII 内网络的负载,并最大化 TRD 上的负载)。


这些解决方案对政策也有不同的影响。例如,假设“X”国的法律规定,从 X 国内的源头到 X 国内的目的地的流量必须始终完全在该国内。对于第一种解决方案,无法根据目的地地址确定目的地是否在国内。使用第二种解决方案,可以将单独的地址分配给 X 国内的那些主机,从而允许遵循路由策略。类似地,假设“小公司”(Little Small Company,LSC) 有一个策略,它的数据包可能永远不会发送到位于 MBII 内的目的地。无论采用哪种解决方案,LSC 内的路由器都可以配置为丢弃目的地位于 MBII 地址空间内的任何流量。但是,对于第一个解决方案,这需要一个条目;对于第二个,它需要很多条目,实际上可能是不可能的。


还有其他可能的解决方案。第三种方法是根据每个多宿主组织与 TRD 的连接之一为每个多宿主组织分配一个地址前缀。多宿主组织所连接到的其他 TRD 为该组织维护一个路由表条目,但在将这条路由告知其他 TRD 方面具有极强的选择性。这种方法将产生一个单一的“默认”路由条目,所有的 TRD 都知道如何到达(因为大概所有的 TRD 将维护彼此的路由),同时在某些情况下提供更直接的路由。


至少在一种情况下,这第三种方法特别合适。假设一个组织的特殊利益集团已经部署了他们自己的骨干。例如,假设美国国家小部件制造商和研究人员建立了一个美国范围的骨干网,供制造小部件的公司和某些以其小部件研究工作而闻名的大学使用。我们可以预期,widget group 中的各个组织将把他们的内部网络作为单独的路由域运行,并且其中大部分也将附加到其他 TRD(因为大多数参与 widget 制造和研究的组织也将参与其中在其他活动中)。因此,我们可以预期widget 组中的许多或大多数组织是双宿主的,一个附件用于widget 关联的通信,另一个附件用于其他类型的通信。我们还假设小部件组中涉及的组织总数足够小,以便维护一个包含每个组织一个条目的路由表是合理的,但是它们分布在具有数百万个(主要不是小部件)的更大的互联网中。关联)路由域。


使用第三种方法,窗口小部件组中的每个多宿主组织将利用基于其到 TRD 的其他附件(与窗口小部件组无关的附件)的地址分配。小部件主干需要维护到与各种成员组织相关联的路由域的路由。类似地,widget group 的所有成员都需要维护一个通过widgetbackbone 到其他成员的路由表。然而,由于widget主干不会通知其他通用的全球TRD它可以到达哪些地址(因为主干不打算供其他外部组织使用),相对较大的路由前缀集只需要维护有限的数量的地方。分配给作为小部件组成员的各种组织的地址将提供经由每个成员到 TRD 的其他附件的“默认路由”,同时允许小部件组内的通信使用首选路径。


第四种解决方案涉及为恰好连接到两个(或更多)特定路由域的路由域分配特定的地址前缀。例如,假设有两个提供商“SouthNorthNet”和“NorthSouthNet”,它们有大量的共同客户(即,有大量的路由域附加到两者)。这些组织可以获得三个前缀,而不是获得两个地址前缀。那些连接到 NorthSouthNet 但未连接到 SouthNorthNet 的路由域获得基于前缀之一的地址分配。那些连接到 SouthNorthNet 但不连接到 NorthSouthNet 的路由域将获得基于第二个前缀的地址。最后,那些多宿主到这两个网络的路由域将获得基于第三个前缀的地址。然后,这两个 TRD 中的每一个都会向其他 TRD 通告两个前缀,一个前缀用于仅连接到它的叶路由域,一个前缀用于连接到两者的叶路由域。


当公共数据网络的使用变得更加普遍时,第四种解决方案可能很重要。特别是,在未来的某个时刻,所有路由域的很大一部分很可能会连接到公共数据网络。在这种情况下,几乎所有政府资助的网络(例如一些当前的区域)都可能有一组与公共网络大量重叠的客户。


因此,对于将 IP 地址分配给多宿主路由域的问题,存在多种可能的解决方案。这些解决方案中的每一个都有非常不同的优点和缺点。每个解决方案都对多宿主组织和 TRD(包括多宿主组织未附加到的那些组织)施加了不同的实际(即财务)成本。


此外,所描述的大多数解决方案还强调了每个 TRD 制定政策的必要性,即是否以及在什么条件下接受不基于其自身地址前缀的地址,以及如何处理此类非本地地址。例如,有些保守的策略可能是从任何附加的叶路由域接受非本地 IP 地址前缀,但不会通告给其他 TRD。在不太保守的策略中,TRD 可能会接受这样的非本地前缀,并同意与一组定义的其他 TRD 交换它们(这组可以是具有一些共同点的先验组,例如地理位置,或特定于请求叶路由域的协议的结果)。各种政策涉及 TRD 的实际成本,这可能会反映在这些政策中。


5.5、 专用链路


到此为止的讨论集中在 IP 地址和通过中转路由域的各个路由域之间的路由之间的关系,其中每个中转路由域互连大量路由域并提供或多或少的公共服务。


然而,也可能存在以这种方式互连两个路由域的许多链路,这些链路的使用可能仅限于仅在两个路由域之间承载流量。我们将此类链路称为“专用”链路。


例如,假设XYZ公司与MBII有很多业务。在这种情况下,XYZ和MBII可与运营商签订合同,以提供两家公司之间的专用链路,其中该链路可仅用于其源在两家公司中的一家公司内且其目的地在两家公司中的另一家公司内的分组。最后,假设点对点链路连接在 XYZ 公司内的单个路由器(路由器 X)和 MBII 内的单个路由器(路由器 M)之间。因此,有必要配置路由器 X 以了解通过此链路可以到达哪些地址(特别是在 MBII 中可以到达的所有地址)。同样,需要配置路由器 M 才能知道通过这条链路可以到达哪些地址(特别是在 XYZ 公司中可以到达的所有地址)。


这里要进行的重要观察是,出于 IP 地址分配的目的,可以忽略由于此类专用链路而产生的额外连接,并且不会对路由造成问题。这是因为与此类连接相关的路由信息不会在整个 Internet 中传播,因此不需要折叠到 TRD 的前缀中。


在我们的示例中,让我们假设 XYZ 公司有一个到一个区域的单一连接,因此使用了分配给该区域的空间中的 IP 地址空间。同样,假设 MBII 作为一家与六个不同提供商有联系的国际公司,选择了第 5.4 节中的第二种解决方案,因此获得了六个不同的地址分配。在这种情况下,XYZ公司内所有可达的地址都可以用一个地址前缀来描述(意味着路由器M只需要配置一个地址前缀来表示这条链路上可达的地址)。MBII中所有可达的地址都可以用六个地址前缀来描述(这意味着路由器X需要配置六个地址前缀来表示链路上可达的地址)。


在某些情况下,可能会允许此类专用链路为少数其他路由域(例如密切关联的组织)转发流量。这会稍微增加配置要求。但是,如果使用该链路的组织数量相对较少,那么这仍然不是一个大问题。


请注意,本文其他部分描述的路由和 IP 寻址之间的关系涉及由互连大量路由域的大型公共传输路由域引起的扩展问题。然而,对于IP地址分配而言,仅互连少量私有路由域的私有链路不构成问题,并且可以被忽略。例如,这意味着与“公共”骨干网有单一连接的单个叶子路由域,加上到其他叶子路由域的许多私有链路,可以被视为单宿主到骨干网IP地址分配的目的。我们希望这也是处理多宿主域的另一种方式。


5.6、 零归属路由域


当前,大量组织具有未连接到任何服务提供商的内部通信网络。但是,这些组织可能拥有许多用于与其他组织进行通信的专用链路。这些组织不参与全球路由,但对与他们建立了专用链路的组织的可达性感到满意。这些被称为零归属路由域。


零归属路由域可以被认为是具有私有链路的路由域的退化情况,如前一节所述,并且不会对域间路由造成问题。如上所述,通过私有链路交换的路由信息的分布非常有限,通常只到链路另一端的路由域。因此,除了通过专用链路交换的地址前缀中固有的那些之外,没有地址简化要求。


但是,零归属路由域使用有效的全球唯一 IP 地址很重要。假设零归属路由域通过私有链路连接到路由域。此外,该路由域参与订阅全球 IP 寻址计划的互联网。该域必须能够区分零归属路由域的 IP 地址和它可能需要路由到的任何其他 IP 地址。唯一可以保证的方法是零归属路由域是否使用全球唯一的 IP 地址。


5.7、 大陆聚合


在该寻址方案中还可以使用另一个层次结构,以进一步减少洲际路由所需的路由信息量。大陆聚合很有用,因为大陆边界为拓扑连接和行政边界提供了天然屏障。因此,它为域间路由信息的另一级聚合提供了自然边界。为了利用这一点,必须为每个大陆分配一个适当的地址空间子集。该大陆内的提供商(直接和间接)将从这个空间分配他们的地址。请注意,这有许多例外,其中服务提供商(直接或间接)跨越大陆部门。如上所述,可以类似于多宿主路由域来处理这些异常。


请注意,与提供商的情况相反,大陆路由信息的聚合可能不会在分配前缀的大陆上进行。洲际链路(尤其是跨洋链路)的成本非常高。如果在链路的“近”端执行聚合,则有关该大陆内不可达目的地的路由信息只能驻留在该大陆上。或者,如果大陆聚合是在洲际链路的“远”端完成,则“远”端可以执行聚合并将其注入大陆路由。这意味着作为大陆聚合的一部分但没有相应的更具体前缀的目的地可以在离开它们起源的大陆之前被拒绝。


例如,假设为欧洲分配了前缀 <194.0.0.0 254.0.0.0>,这样欧洲路由也包含更长的前缀 <194.1.0.0 255.255.0.0> 和 <194.2.0.0 255.255.0.0>。所有较长的欧洲前缀都可以通过跨大西洋连接到北美进行通告。然后,北美的路由器将聚合这些路由,并且仅将前缀 <194.0.0.0 255.0.0.0> 通告到北美路由中。发往 194.1.1.1 的数据包将穿越北美路由,但会遇到执行欧洲聚合的北美路由器。如果前缀 <194.1.0.0 255.255.0.0> 不可达,路由器将丢弃数据包并发送 ICMP Unreachable,而不使用跨大西洋链路。


5.8、 过渡问题


基于与 TRD 的连接性分配 IP 地址对于允许将域间路由扩展到包含数百万个路由域的互联网非常重要。然而,这种基于拓扑的地址分配意味着为了最大化通过这种分配获得的路由效率,拓扑的某些变化可能暗示地址的变化。


请注意,地址更改不需要立即发生。已更改服务提供商的域仍可通过其新服务提供商来通告其前缀。由于路由层次结构中的上层将根据最长前缀执行路由,因此保留了可达性,尽管路由信息的聚合和可扩展性已大大降低。因此,确实改变其拓扑结构的域应该尽快改变地址。此类更改的时机和机制必须是旧服务提供商、新提供商和域之间协议的结果。


这种允许地址更改的需求是路由数据简化的自然、不可避免的结果。路由数据简化的基本概念是地址与系统(即路由域、子网或端系统)所在的位置之间存在某种对应关系。因此,如果系统迁移,在某些情况下地址将不得不改变。如果可以在不更改地址的情况下更改路由域之间的连接,那么显然有必要单独跟踪该路由域的位置。


短期内,由于互联网的快速增长和商业化程度的提高,拓扑结构可能会相对波动。这意味着地址转换的规划非常重要。幸运的是,可以采取许多步骤来帮助减轻地址转换所需的工作。地址转换问题的完整描述超出了本文的范围。但是,本节包含一些过渡问题的简要概述。


另请注意,可能需要根据拓扑变化来转换地址,这意味着在最终确定地址分配计划之前预测未来的拓扑变化是很有价值的。例如,在路由域最初是单宿主的,但预计将来会变成多宿主的情况下,根据预期的未来拓扑分配 IP 地址可能是有利的。


通常,以瞬时“午夜更改地址”的方式转换分配给路由域的 IP 地址是不切实际的。相反,需要逐步过渡,其中旧地址和新地址都将在有限的时间内保持有效。在过渡期间,新旧地址都被路由域中的端系统接受,新旧地址都必须导致数据包正确路由到目的地。


在过渡期间,即使拓扑发生变化,使用旧地址的数据包也能正确转发,这一点很重要。这通过使用“最长匹配”域间路由来促进。


例如,假设 XYZ 公司以前仅连接到 NorthSouthNet 区域。因此,XYZ 公司前往 NorthSouthNet 管理部门,并根据分配给 NorthSouthNet 区域的 IP 地址前缀值获得 IP 地址前缀分配。但由于种种原因,XYZ公司决定终止与NorthSouthNet的关联,转而直接接入NewCommercialNet公共数据网络。因此,XYZ 公司现在在分配给 NewCommercialNet 的 IP 地址前缀下有一个新的地址分配。XYZ 公司的旧地址似乎暗示 XYZ 公司的流量应该路由到 NorthSouthNet,后者不再与 XYZ 公司有任何直接联系。


如果旧的TRD(NorthSouthNet)和新的TRD(NewCommercialNet)相邻且合作,那么这个过渡很容易完成。在这种情况下,使用旧地址分配路由到 XYZ 公司的数据包可以路由到 NorthSouthNet,后者将直接将它们转发到 NewCommercialNet,后者又将它们转发到 XYZ 公司。在这种情况下,只有 NorthSouthNet 和 NewCommercialNet 需要知道旧地址所指的目的地不再直接连接到 NorthSouthNet。


如果旧TRD和新TRD不相邻,那么情况就复杂一些,但仍然有几种可能的方法可以正确转发流量。


如果旧的 TRD 和新的 TRD 本身由其他合作中转路由域连接,那么这些中间域可能同意正确转发 XYZ 的流量。例如,假设 NorthSouthNet 和 NewCommercialNet 没有直接连接,但它们都直接连接到 BBNet 骨干网。在这种情况下,NorthSouthNet、NewCommercialNet 和 BBNet 主干的所有三个都需要为 XYZ 公司维护一个特殊条目,以便使用旧地址分配的到 XYZ 的流量将通过 NewCommercialNet 转发。但是,其他路由域不需要知道 XYZ 公司的新位置。


假设旧TRD和新TRD被一个非合作路由域隔开,或者被路由域的长路径隔开。在这种情况下,旧的 TRD 可以封装到 XYZ 公司的流量,以便将此类数据包传送到正确的骨干网。


此外,那些与 XYZ 公司有大量业务往来的地点可以在其路由表中添加一个特定条目,以确保将数据包以最佳方式路由到 XYZ。例如,假设另一个商业骨干“OldCommercialNet”有大量客户与XYZ Corporation 交换流量,并且这第三个TRD 直接连接到NorthSouthNet 和NewCommercialNet。在这种情况下,OldCommercialNet 将继续在其路由表中为目的地为 NorthSouthNet 的其他流量保留一个条目,但可以选择添加一个额外的(更具体的)条目以确保发送到 XYZ 公司旧地址的数据包被正确路由。


无论使用哪种方法来简化地址转换,目标都是将 XYZ 与其在整个全球互联网中保存的旧地址相关联的知识最终替换为新信息。预计这需要数周或数月并通过分布式目录系统完成是合理的。对目录的讨论以及其他地址转换技术(例如自动通知已更改地址的来源)超出了本文的范围。


另一个重大的过渡困难是建立适当的寻址机构。为了不延迟该寻址方案的部署,如果没有在适当级别创建权限,则上级权限可以代替下级权限分配地址。例如,假设大陆当局已经分配了一部分地址空间,并且该大陆上的服务提供商是明确的,但尚未建立他们的寻址权限。大陆当局可能会预见(可能来自提供商的信息)提供商最终会创建一个当局。然后大陆当局可以代表该提供商行事,直到该提供商准备好承担其寻址当局的职责。


最后,重要的是要强调的是,由于拓扑变化而导致的地址更改不是本文档的强制要求。如第 5.7 节所述,大陆级寻址层次结构旨在在地址不直接反映提供商和订阅者之间的连接性的情况下处理可达性信息的聚合。


5.9、 与策略路由的交互


我们假设任何域间路由协议都难以尝试聚合具有不同策略的多个目的地。同时,在不违反路由策略的情况下聚合路由信息的能力是必不可少的。因此,我们建议地址分配机构尝试分配地址,以便可以轻松形成具有相似策略的目的地的集合。


6、 建议


我们预计,在可预见的未来,当前互联网的指数增长将继续或加速。此外,我们预计互联网将迅速国际化。路由扩展能力取决于基于分层 IP 地址的数据简化的使用。由于 CIDR [1] 是在 Internet 中引入的,因此必须非常谨慎地选择 IP 地址的层次结构。


在可能的情况下,将运营成本保持在最低水平符合网络互联社区的最佳利益。在 IP 地址分配的情况下,这再次意味着必须鼓励路由数据简化。


为了使数据简化成为可能,IP 地址的分配必须以与 Internet 的实际物理拓扑一致的方式完成。例如,在组织和管理边界与实际网络拓扑不相关的情况下,不建议基于此类组织边界进行地址分配。


域内路由协议允许在域内维护信息简化。对于零宿主和单宿主路由域(预计将保持零宿主或单宿主),我们建议在单个路由域内分配的 IP 地址使用分配给该域的单个地址前缀。具体来说,这允许通过单个前缀完整描述单个域内可访问的所有 IP 地址集。


我们预计全球 Internet 上存在的路由域总数将足够大,以至于需要在路由域级别之外进行额外的分层数据简化级别。


在大多数情况下,网络拓扑与国界有着密切的关系。例如,一个国家内的网络连通程度往往大于国家之间的网络连通程度。因此,根据国界提出具体建议是适当的,但要理解可能存在需要修改这些一般建议的特定情况。


6.1、 地址分配计划的建议


我们预计私有路由域之间的公共互连将由一组不同的 TRD 提供,包括(但不一定限于):


- 骨干网络(Alternet、ANSnet、CIX、EBone、PSI、SprintLink);

- 一些区域或国家网络;和

- 许多商业公共数据网络。


这些网络不会以严格的等级方式互连(例如,区域之间预计会有直接连接,所有这些类型的网络都可能有直接的国际连接)。然而,预计此类 TRD 的总数(在可预见的未来)将保持足够小,以允许通过平面地址空间对这组 TRD 进行寻址。这些 TRD 将用于互连各种路由域,每个路由域都可能包含单个公司、公司的一部分、大学园区、政府机构或其他组织单位。


此外,一些专用公司可能会使用专用的专用 TRD 在他们自己的公司内进行通信。


我们预计绝大多数路由域将仅附加到一个 TRD。这将允许基于 TRD 的分层地址聚合。因此,我们强烈建议根据分配给各个 TRD 的地址前缀,分层分配地址。


为了支持路由的大陆聚合,我们建议完全在一个大陆内的 TRD 的所有地址都取自大陆前缀。


对于提议的地址分配方案,这意味着应将部分 IP 地址空间分配给每个 TRD(明确包括主干和区域)。对于那些连接到单个 TRD 的叶路由域,应该从分配给该 TRD 的地址空间中为它们分配一个前缀值。


对于没有附加到任何公开可用的 TRD 的路由域,对分层地址缩写的需求并不相同。因此,我们不对此类“隔离”路由域提出任何其他建议。如果此类域通过专用点对点链路连接到其他域,并且此类链路仅用于它们互连的两个域之间的路由,则此类链路也不会引起与地址缩写相关的其他技术问题,并且不需要具体的额外建议。


此外,为了允许将国家和大陆边界的 IP 地址聚合为尽可能少的前缀,我们进一步建议分配给路由域的 IP 地址应根据每个路由域与国家和大陆互联网骨干网的连接性进行分配。


6.2、 对多宿主路由域的建议


有几种可能的方式来处理这些多宿主路由域,如第 5.4 节所述。这些方法中的每一种都因域间路由以及域间路由必须维护的信息量而异。此外,首当其冲的组织因可能的解决方案而异。例如,解决方案在以下方面有所不同:


- TRD内路由器内使用的资源;

- TRD人员的行政费用;和

- 在叶路由域内配置基于策略的域间路由信息的难度。


此外,所使用的解决方案可能会影响数据包所遵循的实际路由,并且可能会在主路由出现故障时影响备份路由的可用性。


由于这些原因,不可能为所有情况强制要求一个单一的解决方案。相反,出于经济考虑,将需要针对不同路由域、服务提供商和主干网的各种解决方案。


6.3、 IP 地址管理建议


配套文件 [3] 为 IP 地址的管理提供了建议。


7、 致谢


作者要感谢 RFC 1237 [2]、Richard Colella、Ella Gardner 和 Ross Callon 的作者所做的大量贡献。本文档中的重要概念(以及大部分文本)直接取自他们的工作。


作者要感谢以下两个小组的成员所做的重大贡献,即联邦工程规划小组 (Federal Engineering Planning Group,FEPG) 和国际工程规划小组 (International Engineering Planning Group,IEPG)。该文件还反映了 1992 年 7 月在马萨诸塞州剑桥举行的 IETF Addressing BOF 中表达的许多概念。


我们还要感谢 Peter Ford(洛斯阿拉莫斯国家实验室)、Elise Gerich(MERIT)、Steve Kent(BBN)、Barry Leiner(ADS)、Jon Postel(ISI)、Bernhard Stockman(NORDUNET/SUNET)、Claudio Topolcic(CNRI) 和 Kannan Varadhan (OARnet) 的审查和建设性意见。


8、 参考文献


[1] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Supernetting: an Address Assignment and Aggregation Strategy", RFC 1338, BARRNet, cicso, Merit, OARnet, June 1992.
[2] Colella, R., Gardner, E, and R. Callon, "Guidelines for OSI NSAP Allocation in the Internet", RFC 1237, JuNIST, Mitre, DEC, July 1991.
[3] Gerich, E., "Guidelines for Management of IP Address Space", RFC 1466, Merit, May 1993.
[4] Cerf, V., "IAB Recommended Policy on Distributing Internet Identifier Assignment and IAB Recommended Policy Change to Internet "Connected" Status", RFC 1174, CNRI, August 1990.


9、 安全考虑


本备忘录不讨论安全问题。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
6月前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
负载均衡 网络协议 数据可视化
架构解密从分布式到微服务:分布式系统的基石:TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)是Internet 的基本协议,简单地说,由底层的IP和TCP组成。TCP/IP的开发工作始于20世纪70年代,该协议是用于互联网的第一套协议。TCP/IP结合 DNS、路由协议等一系列相关协议,最终实现了网络之间任意两点间的数据通信问题。我们来看看在访问百度首页时,数据包是如何从计算机传送到百度的服务器上的。
|
Web App开发 SQL 搜索推荐
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
本周架构视点:知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大规模降薪;网易云音乐起诉腾讯音乐;GitHub 弃用 io;ARM 安谋中国 430 多名员工联名签署公开信,反对软银夺权;Firefox:我们不会卖给亿万富翁
173 0
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
|
XML JSON 网络协议
一起谈.NET技术,JAVA与.NET的相互调用——TCP/IP相互调用基本架构
  TCP/IP套接字的概念   TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
836 0
|
XML JSON 网络协议
JAVA与.NET的相互调用——TCP/IP相互调用基本架构
  TCP/IP套接字的概念   TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
897 0
|
XML JSON 网络协议
JA“.NET技术”VA与.NET的相互调用——TCP/IP相互调用基本架构
  TCP/IP套接字的概念   TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
873 0
|
XML JSON 网络协议
JAVA与.NET的相互调用——TCP/IP相互调“.NET研究”用基本架构
  TCP/IP套接字的概念   TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
932 0
|
网络协议 iOS开发 网络架构