有迹象表明,经常延迟或失败的IPv6部署的项目,如差DNS规划,测试不足,未预料到的应用程序的行为,并在外围设备支持较差IPv6支持,管理或安全系统贡献了几罪魁祸首。当发现原来的IPv6地址的设计是不够的许多部署项目遭受临时暂停 - 在少数情况下,该地址的设计不得不返工一次以上。
更糟糕的是,IPv6地址的设计足以让项目停止,但也会让网络在未来几年承受昂贵的运营困难。
地址设计应该从一开始就考虑IPv6部署的规划阶段。本文讨论了创建IPv6地址设计时应该考虑的一些因素。
这不是IPv4
大多数网络架构师还太年轻,还记得当IPv4地址空间不被认为是有限的资源。我们都在IPv4地址的设计浪费任何迹象敏感,并接近新的设计期待仔细分析每个网络段和符合要求只提供足够的地址。可变长子网掩码(VLSM)是必不可少的,精心雕刻出足够的空间子网,而试图在每个子网,以确保足够的主机地址。
放弃那些保守的设计规范是执行IPv6地址设计中最困难的部分之一。举个例子,把IPv6网络的每个子网都变成a /64,包括点对点链接的常见问题。这样做的好处是在您的subnet中实现了一刀切的一致性,消除了VLSM带来的麻烦。但它总是让人发痒:想到拥有一个1.8446744074 x 10的子网19可用的地址并且只使用其中的两个——并且知道您永远都不会需要超过两个——似乎是令人难以置信的浪费。
而且它是浪费。但是分配给大多数网络的IPv6地址空间是如此巨大,你可以承受惊人的浪费,以换取一致性、简单性、规模和效率。如果前缀是/32,可以是4。3欧元/64子网——IPv4的所有地址所对应的子网数量。将传统的IPv4地址保护实践应用到IPv6设计中,有点像花200美元找到节省2美元的方法。
要找什么
尽管您可以不考虑地址浪费的问题,但是应该评估现有的IPv4地址管理。这个问题有两个方面。一方面,您越能将IPv6寻址集成到熟悉的实践中,您的操作人员的生活就越轻松。另一方面,如果您现有的地址管理实践不充分,这是进行更改的最佳时机。
根据我自己的经验,我的许多客户(如果不是大多数的话)都乐于放弃他们认为不充分、低效或几乎不存在的IPv4地址管理工作流。
除了地址管理实践外,还必须分析对IP地址进行过滤的任何策略。这些策略包括路由、摘要和安全策略。同样,您的分析应该平衡哪些是熟悉的、有用的,哪些是长期需要改进的。
如果你是众多仍然使用电子表格管理你的IP地址的网络运营商之一,现在是考虑购买IP地址管理软件的好时机。除了在一个单元格内将十进制转换为十六进制的简单公式外,Excel不支持十六进制。十六进制数字必须作为文本输入,并且添加长十六进制数字序列很乏味,而且容易出错。为了给我的客户开发IPv6地址设计,我花了很多个漫长的夜晚无意识地输入数以千计的十六进制数字到单元中。
一个好的IPAM包不仅使IPv4和IPv6地址管理更容易和更安全,它还集成了DNS和DHCP管理。
设计为简单起见
即使有一个很好的IPAM应用,工程和运营人员仍然要寻找并试图让那些丑陋的IPv6地址的意义每一天。将更方便您的地址来解释,更可以减少常规错误。
首先映射出可供您使用的地址空间的位。你会有一些分配的前缀——通常是29、32、48或56位,取决于你的网络的大小——它们总是相同的。最后64位,接口id,通常应该保持单独除了某些类的地址,如环回。分配的前缀和接口id之间的空间是您必须使用的位。
显然,56位前缀和接口id之间的8位比32位前缀和接口id之间的32位灵活性差得多。但是,如果您有一个56位的前缀,那么您就拥有了一个小的网络,并且除了简单的子网号之外,几乎不需要其他意义。
在映射可工作空间的位时,按十六进制数字(每位数4位)对其进行分组。然后决定你需要在你的地址中有什么“含义”以便于解释。含义可能包括地理位置(如地区、城市、POP、办公室)、逻辑拓扑(如OSPF区域或简单子网号)、类型指定或客户/用户ID。
然后尝试将定义的含义与十六进制数字相匹配,而不是与单个位相匹配。这是保持您的设计简单的关键:如果您的人员能够解释一个或多个十六进制数字的含义,而不必解释到位水平的地址,既节省了时间,也减少了风险。
例如,假设您的网络构建成九个区域,最大的地区有100个办事处,而最大的办公室有75个子网。你可能会指定一个十六进制数字作为一个地区ID(一个十六进制数字是4位,给你16点区的ID),两个连续的数字作为Office ID(两个十六进制数字是8位,让您每区256个办公室ID),并将两个数字作为一个子网ID(256子网每办公室的ID)。这样的设计将需要以最小的一个/ 44前缀;A / 40将会给你多余的空间。
你的工程师将很快学会专注于只是个十六进制数字有意义手头的任务 - 分配的前缀,而接口-ID之间的数字。因此,不是试图采取在32位十六进制数字(128位),它们仅在看,例如,下面的一个/ 32前缀8个位数,6位数字后/ 40,4位数字后/ 48,或2位数后/ 56。
在需要更多设计复杂性的较大网络中,低阶比特的格式可能会根据高阶比特定义的“含义”而有所不同。在上面的示例中,假设除了9个区域外,还有两个数据中心,每个数据中心都有2000个子网。2020欧洲杯预赛区域ID E和F可以标识数据中心,在这些ID后面可以有一个四位数的子网ID,2020欧洲杯预赛而不是两位数的办公室ID和两位数的子网ID(每个数据中心有65,536个子网)。
但不要在你的设计中加入太多的“意义”带走。有没有必要层次的十层添加到您的地址,如果设计四层都足以告诉他们需要知道地址您的工程师的一切。这导致了另一种方式来让事情变得简单:零的使用中的字串地址尽可能。2001:DB8:2405:C :: 27是一个更容易阅读和地址记录超过2001:DB8:2405:83FC:72A6:3452:19ED:4727。如果第一个地址给你足够的信息来管理您的网络,为什么要使用第二?
设计规模
“规模”和“可伸缩性”可能是网络设计词汇中最被滥用的两个词;我确实为把那些完美的好词变成刺耳的流行语做出了贡献。然而,无论我们讨论的是协议、设备、逻辑拓扑还是地址,伸缩性的概念对于良好的设计都是至关重要的。你不想要一些不能适应增长的东西。
有关IPv6令人惊奇的是,你常常可以负担得起在某些方面是浪费的,比以往任何时候都将被使用的地址大得多的数来创建子网,同时允许在子网级以上的增长空间。
我提到过/40前缀将给我们的简单(公认的简单)示例设计空间。我还说,您应该尽可能使用零空间来缩短整个地址。零空间应该被指定为“保留”,并在设计中以这样一种方式分布,即多个字段可以在需要时扩展到其中。
示例设计需要5个十六进制数字(20位)来提供区域、办公室和子网id。如果有/40前缀,则有6个十六进制数字(24位)可用。而不是11个日十六进制数字区域ID, 12日和13日写上办公室的号码,14号日和15日位子网ID,而16日数字保留,保留区域ID和办公室之间的数字ID。除了让办公室和子网ID落到更整洁的边界,4比特的位置保留数字区域和办公室之间的ID给你应该你需要灵活性:该地区或办公室IDs可以成长为空间如果你低估了未来的经济增长,或者你可以使用空间添加另一层的层次结构应该未来需求决定。
面向未来的设计
对于任何网络设计来说,一个挑战是在不清楚未来会发生什么的情况下,尝试预测未来的需求。“预料意料之外的事”似乎是一种徒劳无益的练习,有时确实如此。但是,如果您很好地利用了保留的、分布良好的空间,那么您就更有可能通过在现有设计中简单地扩展定义来满足未来的需求,而不是像以前那样不必做一个完全重新设计。
大多数IPv6分配的大工作空间也可以帮助你“未来证明”你的地址设计。通常,您可以在指定的前缀后面预留整个空间,以便在不放弃现有格式的情况下添加不同的格式。
另一个需要考虑的因素是,在未来的某个时候 - 没有人可以肯定地说,当,但我认为这将是早于大多数人的预期 - 的IPv4将变得过时。加速IPv4的废弃的催化剂将是代价,风险和网络运行IP的两个版本的难度。唯一的方向前进是到IPv6,所以在某些时候网络运营商将作出认真努力,推动IPv4的出他们的网络。
鉴于这种假设,不要让IPv4地址的元素在IPv6的设计,除非有这样做的一个强有力的理由。例如,一些工程师将一个装置的IPv6环回地址的后32位指定为相同设备的IPv4回送地址。但是,这是否真的有什么好处?毕竟,IPv4的比特将以十六进制编码,并通过操作人员不容易识别:由于IPv6地址2001:DB8:1305:7C :: C0A8:53E5,是显而易见的是,最后32位是IPv4地址192.168.83.229?
以“融汇” IPv4地址到您的IPv6地址的努力看起来落后于IPv4,而不是着眼于IPv4的自由的未来。如果IPv4是最终从您的网络中删除,一个不好的设计可以锁定你进入容纳过时的寻址系统。
对于设计效率
你的路由,汇总和安全政策的初步分析,帮助您创建最大化的任何设备的效率地址设计不负有心人上的IPv6报文的源或目的地址必须过滤。如果过滤器必须扫描以及到地址找到触发位“命中”,你的过滤规则列表可以长期增长。您的IPv6前缀中考虑到潜在的地址数量,以及该名单可能成为巨大的无法管理。
因此,尽可能多地尝试设计您的地址,以便过滤器的任何“感兴趣的位”都出现在地址的前面(前缀部分或接口id部分),以便它们可以表示尽可能多的独立地址。
什么关于界面-ID?
您的网络中的大多数接口id都是64位的,除了点对点接口地址之外,还有可能的(可能存在争议的)例外情况。如果要在您的网络中的任何地方使用无状态地址自动配置(SLAAC),那么为了使SLAAC工作,这些段中的接口id保持64位是特别重要的。但是,如果您是通过DHCPv6或静态方式分配地址,这是另一个使用大量保留的零位并简化地址的机会。例如,您可以只指定最后12位可分配,并将前52位全部设置为零。这样每个子网就有4,096个地址——这还不够吗?
12位或16位也给了你的房间,包括您接口-ID分配中的一些随机化,减少把自己暴露在端口扫描试图通过以最低的接口的ID开始,比上一季度增长努力找到一个子网的工作设备。