2001:0db8:0000:0000:0000:0000:1428:57ab,这是一个典型的IPv6地址,第一印象如你所见,很长。在制定这个规范的时候,人们并没有提供十进制表达形式,而是改采16进制,可能是怕十进制太长记不住吧,但其实16进制也好不到哪里去。IPv4时代的网管往往可以记住地址,到了v6的时代,可能我们会看见网管都随身带着本小本子,好像木匠师傅那样,不过是用来记录地址的(插一句,任何时候总有例外,笔者的一个同事可以不用花费很大功夫的记住十条以上的v6地址,实在是恐怖的记忆力)。IPv4时代,你可以手动设定你的地址,也可以要求你的DHCP服务器动态分配一个给你,在IPv6里面你可以分别把link local address 和 global address想象成上述两种形式,但是请不要这么想,因为他们完全是不同的,我这么说只是方便类比。
link local address: fe8::/10这个地址是相对固定的(后半段来自MAC),可以用来标识你的机器的,但不能global routing,也就是说只在你这个sub net里起作用。很显然的,这样一个地址是用作网络配置的不二人选,比如放在routing table里面。
Global address: 这个是主角,我们最前一个例子就是一个global address,一般应用程序都应该使用这个地址,前半段network prefix,后半段来自MAC,它也具有唯一性。
Site local address: 顾名思义,只在一个site里起作用,也就是说在一个相对隔离的网络里是可以routing的,出去了就不行,但是我们不用理它,因为它已经被废除了。而替代者Unique local IPv6 unicast addresses ,我还没有看到哪个系统支持,所以也不用管。