IPv6时代即将来临,这是一个新的时代,需要我们在很多方面作出改变,《闲谈IPv6》系列文章准备抽出几篇,专门来描述这些个IP协议本身的变化,以及我们需要作出什么改变来应对这些变化。
IPv6强网络而弱主机
这个是非常重要的,我也是一直在强调这一点。
在IPv4时代,你很容易将一个IP地址对应到一台主机,比如给出一个IP地址100.123.201.34,我们脑海里很容易会有 它被配置在某个地方的某一台设备上 的印象。如果我们给出一个私有段的固定前缀192.168.188.123/24,不用说我就能知道这个网络里有最多253台设备,这个.123只是其中一台,假设我能通过某种方式进入到这个内网,我很容易就可以对全网进行一次暴力扫描…
但是IPv6时代,不一样了。
IPv6地址包括两个部分,其中高64位是网络位,而低64位则为主机位,也叫做标识符,IPv6地址分配机制只管高64位的分配,低64位的标识符则由主机自己来保证唯一性。标识符的生成算法包括但不限于:
EUI-64规则根据MAC地址生成,用于一般局域网或者物联网
低碰撞的随机数算法随机生成,用于生成临时地址实现隐私扩展
人工配置保证唯一,用于配置一个服务器集群
anycast地址,全0,本来就可以多路访问
…
当然了,IPv6新手估计还不太习惯这种方式,他们一般都会像管理IPv4网络那样去管理IPv6网络,比如说它们会对一个64位长度的IPv6前缀的低64继续进行子网分割,比方说他们会用下面的网段指示一个IPv4的C类子网:
2034:1:123::0a01:1200/126
留253台主机嘛…
完全可以这么配,但是标准却非常不建议这么乱搞。还是那句话,IPv6并不仅仅是把地址空间从32位扩展到了128位这么简单。
我们来说说IPv6的网络标识,主机标识相分离带来了什么改变。
IPv6地址很难被跟踪溯源
IPv6地址又很容易被跟踪溯源
完全相矛盾的说法,但是这就是真相!
为什么很难被溯源?因为给出一个IPv6地址,你根本就不知道它的主机标识符是如何生成的,你甚至不知道它的主机标识符是不是真的被用作了标识主机而不是编码了别的信息,比如用于子网划分。
如果运营商给了你一个64位前缀的段,你看到一个IP地址,你只能知道这个IP地址是264 2^{64}2
64
个地址中的一个,仅此而已。如果你自己在这个空间中随机生成了几个标识符作为临时IPv6地址去连接一台固定的服务器,那么当这个临时地址过期后,它就永远地消失了。
你用同一台设备生成不同的主机标识符去连接服务器,服务器会知道这是同一台机器吗?不会。
另一方面,如果你使用EUI-64生成主机标识符,即便你改变了你的物理位置,你的网络标识符发生了改变,只要你依然使用EUI-64生成主机标识符,由于MAC地址的全球唯一性,依然可以定位到你的设备。
也正是因为这个原因,才有了IPv6的隐私扩展,实现了一种使用临时地址访问服务器的方式。
64位主机标识符空间比整个IPv4的地址空间都要大得多,这种指数级的地址空间扩展背影下,是你完全想像不到的新玩法。思维方式必须改变。
不是有人说过吗,如果所有的IPv4地址可以装入一个BlackBerry,那么需要地球这么大的存储介质才能存完IPv6地址。
想象一下,如果IPv6地址也像IPv4那样管理全部128个比特位,那么为了存储这些管理信息和元数据,我们真的找不到地球这么大的存储介质啊!这又是一个 电梯比办公室还占地方 的例子。
所以,思维方式必须改变。当我们看到一个IPv6地址的时候,我们必须同时看到这两部分的信息。我们必须自己接管IPv6地址部分管理,这是理解和使用EUI-64,隐私扩展,anycast的关键。
组播替代广播
要说为什么,很简单,因为在IPv6网段广播的代价太大了!
按照IPv6的编址规则,全世界所有的主机都可以被放在同一个::/64的子网中。运营商确实可能会给你一个::/64的段,虽然你不可能拥有264 2^{64}2
64
台主机,但至少你可以将 足够多 数量的主机塞进去!到底是多少,反正是个天文数字。在概念上,如果底层是一个广播式的网络,你就有可能有能力用广播去做一些事情,比如解析MAC地址。
IPv6本来就是为拥有海量物件的物联网设计的,说实话它真的不太适合用人惯常的思路去理解其某一个特性。
IPv4和以太网都是为人设计的,它们天然地走在一起,承载的其实都是人使用的电脑,基本上这个电脑的数量和在同样的区域内可以承载的人的数量是一致的,至少数量级是一致的。
在一个以百米论的空间中,以平均舒适的环境来算,去除建筑物,家具等占据的空间,大概会有百级别的人会同时使用这个空间,电脑的数量大概也就是这个数量级,而我们的以太网双绞线信号有效传输范围同样恰好也是这个距离,对于其承载的IPv4网络,这大概也就是个C段或者几个C段,我就说20位前缀长度足够了吧,可以容纳212−2 2^{12}-22
12
−2台主机。
OK,这就是了,百米论的范围内的 交换式以太网 在不影响传输质量的前提下完全有能力承载百余台主机使用广播来解析MAC地址!这就是为什么IPv4的ARP可以使用广播的原因。
其实,在界定这些个恰好的数字之前以及之后,以太网配合IPv4也是经过了若干次的进化,我们先看看这些恰好的数字:
做同一类事情的人的活动范围:100米-500米
以太网10BaseT/100BaseT的传输距离:大概100米-500米
百米方圆不影响舒适度前提下容纳的人数:50人-200人
人数和主机数量的对应关系:1人一般拥有1台主机办