为什么IPv6不支持固定IP和直接使用主机名作为地址?
IPv4快枯竭了,于是提出了IPv6方案,使用了6字节网络地址。
1. 这样看来,每台主机都可以固定唯一地址,或者干脆用MAC地址作为IP好了,这样不但实现了固定IP,也免去了分派IP的机构;
2. 既然地址都6个字节,搞个变长地址也不是问题啊,例如可以1~32字节,这样就可以直接使用主机名作为网络地址了。这样也免去了那个让人操心的DNS了。
这样,不就省去两张表了吗?可是,IPv6为什么没有这么做?
首先纠正一个问题中的一个错误,IPv6地址是128二进制位,或者16字节,而不是6个字节。题主可能对IPv6了解的较少,所以产生了很多误解。
主机获得IPv6地址的方法,相比IPv4更加多样化,可以Stateless Auto-Configuration, 也可以Stateful DHCPv6, 也可以手工配置。 问题来了,IPv6地址是如何生成的?
无论采用以上三种方法的哪一种,这都是一个无法回避的问题,128位长长的二进制位是如何出炉的? 通常在IPv6网络的每一个网段里,都会至少有一个大神的存在,这个大神名字叫“Router”。其它连接在大神管辖下的主机,也有一个好听的名字“Host”。
Router会周期性地发布一个消息“Router Advertisement”,用于宣示自己的存在,主要的用途有:
- Prefix
- 用于Host跨网段通信的网关出口
- 指导Host如何配置IPv6地址
- DNS Server 等参数
Prefix= 2001:1::/64
配置方式, SLAAC(Stateless Address Auto-Configuration)
DNS Server = 2001:8:8:8::8
如果这个IPv6 地址是一个全球IPv6地址,还需要设置“G/L”状态位为“1”。
G/L位在哪里?
从左到右数,0,1,2,3,4,5,6,第6位即为G/L位,将其置为“1”。那么“00 01 02 FF FE 03 04 05”将变成“02 01 02 FF FE 03 0405”。这个黄色加亮的后缀字符串,有一个响亮的名字“EUI-64”。
主机的IPv6= Prefix 字符串连接 Suffix= 2001:1:: 0201:02FF:FE03:0405/64
主机有了IP地址、默认网关、DNS服务器,就可以上网冲浪了。
IPv6地址泄露个人隐私
当用户上网冲浪时,服务器可以立马推导出客户端的主机MAC = 00 01 02 03 04 05, 无论主机加入哪个大神管辖的IPv6, 后缀是永恒不变的,这就为跟踪用户提供了便利。如果你很Care自己的个人隐私,你肯定不接受这样的IP地址生成方式,对吗?
这些忧虑,其实互联网专家们已经帮助我们考虑好了,可以是随机化Hash地址、临时(Temporary)地址、CGA安全地址等等。