IPv6-您做错了



关于IPv6有很多误解和神话。通常,托管服务提供商会误解如何使用它,并思考IPv4世界中过时的方法。例如,托管商拥有800亿个IPv6地址,而不是按照建议的那样分配完整的/ 64网络,从而将地址单独出售给客户端。

碰巧,托管者将IPv6地址分配给同一/ 64网络中的不同客户端。同时,大型服务(例如Google)将/ 64范围内的所有地址视为一个客户端。结果,顾客可能由于队友的活动而受苦。

IPv6地址的可用性使您可以将完整的外部地址分配给内部资源,例如容器或VPN客户端。为此,主机必须为客户端提供单独的路由网络。不幸的是,几乎没有人能做到这一点。

在本文中,我们将分析IPv6提供程序使用中的主要错误。

故事情节:RFC 3177


在2001年,关于地址分配的建议建议(对重言式来说很抱歉,这很重要)强调:

  • / 48一般
  • / 64,如果在其后面则只有一个子网
  • / 128(如果只有一台设备)

进攻性文件RFC 2119(其指导说明适用各种级别的强制性遵从性指令)将“建议”定义如下:
“应”或“建议”一词表示在某些情况下可能有合理的理由不以这种方式采取行动,但是,选择了不同的行为方式必须做出充分了解后果的平衡决策。
那时可能没有人对后果有一个完全的了解,也许没有定义“某些情况”,但是每个人都遵循建议。

通常,在撰写本文时,IPv6流量非常罕见,并且大部分情况下是在好奇的爱好者的机构和个人网络中发现的。一些实际的问题开始积累和分析,但是花费了很多时间。
重新思考始于2005年。最后,这些建议在2011年被弃用。

问题意识:RFC 6177


新的寻址策略明确指出/ 48只是一个愿望,不是一个要求。没有给出具体数字的指示,但是,表明/ 64或更短的数字在正常条件下有效。

向最终消费者推荐区块/ 48发行量的主要逻辑追求了三个目标。

首先,分配的地址空间必须足够用于消费者目的,并且必须易于扩展,且不会出现杠铃蹲下的情况。是的,这就是书面内容,只有英文版本-跳铁圈。切换到IPv6的重要原因之一是将现有目标大小从“单个地址”更改为“多个子网”。

其次,提供者的变更应尽量减少。如果在转移到新的地址空间时可以保存旧的子网地址方案,那么这将节省大量工作:

第三,分配块/ 48应该满足发展中用户对地址空间需求的增长。

尽管满足了所有这些条件,但显而易见,建议/ 48有点多余。

销/ 64作为发行单位


除了分配顺序外,还有其他几点。事实证明,如果网络前缀不是/ 64,IPv6的许多功能将无法使用。即,它们不起作用:

  • 邻居发现(ND)
  • 安全邻居发现(SEND)
  • 移动IPv6的某些部分
  • 通过IPv6中介进行站点多宿主
  • 许多不同的小东西

另外一个因素是,许多正在设计的技术正好依赖于这样的网络前缀。

编写新建议的原因不仅在于破坏新发现标准的威胁。怀疑有效性的两种观点也很受欢迎。
首先,许多设备通过拐杖和脚踏车以编程方式实现IPv6路由,因此还没有做好向其全面过渡的准备。因此,延迟可能增加很多倍,即使不是一个数量级。/ 64子网的默认定义将大大减少这些延迟。

其次,切换到新标准始终是技术支持和系统管理员的痛苦。单个/ 64前缀应该可以将这种痛苦减少到可接受的值。

前线局势


正如早在2001年就已经发生过的那样,建议/ 64被许多大型互联网公司视为标准。一方面,这很好,但另一方面却不是很好。

对于许多评级系统,例如,对于垃圾邮件识别,来自一个块的所有地址都将被视为属于一个垃圾邮件发送者。从理论上讲,这应该使用户的生活更轻松,实际上恰恰相反。

通常,提供者不必理会诸如学习通用惯例之类的事情。可以根据任何原理发布地址,至少可以根据星座来发布地址。

存在几个典型的问题,所有这些问题一方面是由于提供者违反了建议,另一方面是由于其他一些组织严格遵守了这些建议。
从一个块向多个用户发布地址可能会导致一个事实,即所有地址都被视为一个实际用户,例如组织网络中的计算机。

如果这个街区的几个人开始同时寻找猫,则Google可能会决定该僵尸网络将发送搜索骗局或其他不太理想的请求。从他的角度来看,这全是一个用户。逻辑结果是验证码越来越复杂。

如您所知,这是对假设骗局最无害的答案。
相反的情况是向一个用户发出来自不同块的地址。如果这些屏蔽的用户属于某人的黑名单,那么诚实用户的地址将与他们一同消失。特别有趣的故事:您的某些地址被一个广告联盟禁止,某些地址被另一个广告联盟禁止。

此外,其他不愉快的惊喜也是可能的。例如,您收到了/ 64块供您使用,但这是一个动态块,作为动态地址-今天2001:DA8:1D01:FA13 :: / 64,明天2001:DA8:1D01:FC15:// 64。每天都有新冒险!
有很大的机会来解决这些问题以及附件中其他弯曲弯曲的耙子的各种组合。

从我们的服务器发出IPv6


如果我们有5百万个IP地址,那么为什么不给VPN客户端提供真实的IP地址,例如,以便它们在没有NAT的情况下进入Internet并可以接受来自世界的传入连接。听起来不错,但实际上却并非如此。这将需要通过分配给服务器接口 IP地址路由单独的IPv6网络

假设为服务器分配了一个地址2a01:baba::c0fee:dead/64,则VPN客户端将需要一个单独的网络,例如2a01:baba:fafa:0f0f::/64通过该地址进行路由2a01:baba::c0fee:dead/64

不幸的是,几乎没有托管服务提供商能够将这些网络发布给客户端的工具,这就是为什么您必须使用ND Proxy之类的拐杖的原因

结论


阅读IETF建议不是最有趣的活动,但它非常有用。在漫长的冬夜里充实他们显然是不值得的,但是忽略阅读对您来说很重要的部分也是不受欢迎的。

选择提供商时,请确保他同意这一观点。

您必须了解,错误的地址分配方法不会损害提供者,并且对于大多数合同来说,它甚至不能成为补偿的基础。
但是,尽管您自己还不怀疑,但这可能对您来说是一个关键因素。


All Articles