当前位置: 首页 > 科技观察

IPv6:我为什么要弥补IPv4犯下的错误

时间:2023-03-12 12:08:58 科技观察

这十年,IPv6本该得到很大的发展,但实际上这种好事并没有到来。因此,大多数人对IPv6有一些不了解:它是什么、如何使用以及为什么存在?IPv4和IPv6的区别IPv4做错了什么?自1981年RFC791标准发布以来,我们一直在使用IPv4。那时候,计算机又大又贵的情况并不少见,IPv4号称可以提供40亿个IP地址。在当时,这个数字是非常大的。不幸的是,这么多IP地址没有得到充分利用,地址之间存在差距。例如,一家公司可能有254(28-2)个地址,但只使用了其中的25个,剩下的229个留空以备将来需要。因此,由于网络路由规则的限制,这些空闲地址无法服务于真正需要它们的用户。最终的结果是,一个在1981年看起来很大的数字,在2014年看起来很小。互联网工程任务组(IETF)在1990年代初期就指出了这个问题,并提供了两种解决方案:无类型域间路由(CIDR)和私有域间路由IP地址。在CIDR之前,您只能从三种网络地址长度中进行选择:24位(总共16,777,214个可用地址)、20位(总共1,048,574个可用地址)和16位(总共65,534个可用地址)。随着CIDR的出现,您可以将网络划分为多个子网。比如你需要5个IP地址,你的ISP会为你提供主机地址长度为3位的子网,也就是说你最多可以得到6个地址(LCTT:不考虑子网网络号,3位主机地址长度可以表示0到7的8个地址,但是0号和7号有特殊用途,不能被用户使用,所以最多可以得到6个地址)。这种方法允许ISP尽可能有效地分配IP地址。“私有地址”方案的作用是可以自己创建一个网络,里面的主机可以访问外网的主机,但是外网的主机很难访问到内网的主机您创建的,因为您的网络是私有的,其他人看不到。您可以创建一个非常大的网络,因为您可以使用16,777,214个主机地址,并且可以将此网络划分为更小的子网以便于管理。也许您现在正在使用私人地址。查看您自己的IP地址,如果它在这些范围内:10.0.0.0–10.255.255.255、172.16.0.0–172.31.255.255或192.168.0.0–192.168.255.255,那么您使用的是私有地址。这两种解决方案有效地延缓了“IP地址用完”的灾难很长一段时间,但毕竟是权宜之计,现在我们面临最终的判断。IPv4的另一个问题是该协议的报头长度是可变的。如果数据的路由是通过软件实现的,这个问题就好说了。但是现在路由器的功能都是由硬件提供的,硬件很难处理变长的报文头。大型路由器需要处理来自世界各地的大量数据包。这时候路由器的负载就很大了。所以很明显,我们需要固定消息头的长度。在分配IP地址时,还有一个问题。互联网是美国人发明的(LCTT:这个邪恶的资本主义国家占有大量的IP地址)。其他国家只能获得IP地址的片段。我们需要重新定制一个架构,让连续的IP地址在地域上分布,这样路由表就可以做得更小(LCTT:想想看,网速肯定更快)。还有一个问题,你可能听起来不太相信,那就是IPv4很难配置,也不容易改变。您可能不会遇到此问题,因为您的路由器会为您完成此操作,您不必担心。但是您的ISP在这方面遇到了困难。下一代互联网需要考虑上述所有问题。IPv6及其优势IETF在1995年12月公布了下一代IP地址标准,名称是IPv6,为什么不是IPv5呢?→_→由于某些错误的原因,另一个项目使用了编号“Version5”。IPv6的优点如下:128位地址长度(共3.402823669×103个地址)其架构下的地址是逻辑聚合的消息头的长度是固定的支持自动配置和修改您的网络。让我们一一分解这些特性:地址人们在谈论IPv6时首先注意到的是它有更多的地址。为什么这么多?因为设计者考虑到地址不能被充分利用,所以必须提供足够的地址给用户挥霍,以达到一些特殊的目的。所以如果你想搭建自己的IPv6网络,你的ISP可以给你分配一个64位主机地址长度的网络(可以分配1.844674407×101?主机),你想怎么玩就怎么玩。聚合具有如此多的地址,可以将它们稀疏地分配给主机,从而更有效地路由数据包。算一笔账,你的ISP得到一个地址长度为80位的网络空间,其中16位是ISP的子网地址,剩下的64位分配给你作为主机地址。这样,您的ISP可以分配65,534个子网。然而,这些地址分配并不是一成不变的。如果ISP想要有更多的小子网,是可以做到的(当然有钱的ISP可能需要另外80位的网络空间)。最好的48位地址是相互独立的,也就是说,虽然ISP和ISP之间可能共享同一个80位的网络空间,但这两个空间是相互隔离的。好处是一个网络空间的地址会聚在一起。固定消息头长度IPv4消息头的长度是可变的,而IPv6消息头的长度固定为40字节。IPv4会因为额外的参数导致报文头变长。在IPv6中,如果有额外的参数,这些信息将被放在消息头旁边的一个地方,不会被路由器处理。当报文到达目的地时,这些额外的参数将被软件提取出来。IPv6报文头有一个部分叫做“流”,它是一个20位的伪随机数,用来简化路由器对数据包的路由过程。如果数据包中有“流”,路由器可以根据这个值作为索引查找路由表,而不用慢慢遍历整个路由表来查询路由路径。这一优势使IPv6更易于路由。在自动IPv6配置中,当主机启动时,它会检查本地网络是否有其他主机使用自己的IP地址。如果该地址未被使用,则查询本地IPv6路由器,如果找到,则向其请求IPv6地址。然后主机可以连接到Internet——它有自己的IP地址和默认路由器。如果默认路由器出现故障,主机将寻找其他路由器作为备用路由器。这个功能在IPv4协议中是很难实现的。同样,如果路由器想改变自己的地址,自己改就好了。主机会自动搜索路由器并自动更新路由器地址。路由器会同时保存新旧地址,直到所有主机都将自己的路由器地址更新为新地址。IPv6自动配置还不是一个完整的解决方案。要有效地使用Internet,主机还需要其他东西:域名服务器、时间同步服务器,或者可能是文件服务器。于是dhcp6出现了,提供和dhcp一样的服务,唯一不同的是dhcp6机器可以以可路由状态启动,一个dhcp进程可以为大量的网络提供服务。唯一的大问题是,如果IPv6真的比IPv4好那么多,为什么它还没有被广泛使用(谷歌在2014年5月估计IPv6的市场份额为4%)?最基本的原因之一是“先有鸡还是先有蛋”。服务提供商希望他们的服务器为尽可能多的客户提供服务,这意味着他们必须部署一个IPv4地址。当然,他们可以同时使用IPv4和IPv6地址,但很少有客户会使用IPv6,因此您需要对软件进行一些小改动以适应IPv6。另一个让人头疼的是,很多家庭路由器根本不支持IPv6。另外,ISP也不愿意支持IPv6。我问过我的ISP这个问题,答案是:如果客户明确表示他们想要部署它,他们只会使用IPv6。然后我问现在有多少人有这个需求,回答是:一共1个,包括我。与这一现实形成鲜明对比的是,所有主要操作系统:Windows、OSX、Linux多年来都默认支持IPv6。这些操作系统甚至提供软件给IPv6数据包披上IPv4的外皮,以欺骗那些会丢弃IPv6数据包的主机,从而达到数据传输的目的。总结IPv4已经为我们服务了很长时间。但它的缺陷将在不久的将来遇到难以克服的困难。IPv6通过改变地址分配规则,简化数据包的路由过程,简化VPN加入网络时的配置过程,可以彻底解决这个问题。问题在于,由于更改成本太高,公众采用和使用IPv6的速度很慢。好消息是所有操作系统都支持IPv6,所以当你有一天想要做出改变时,你的计算机只需要改变一点点就可以切换到新的架构。