在过去的几年里,IPv6已经逐渐慢慢地成为主流,但许多IT专业人士在面临IPv6时还手足无措,的确,IPv6和IPv4存在很大的不同,本文为此而写,希望能帮助你消除IPv6恐惧症。
1、IPv6地址是128位十六进制数
IPv4地址是有4个数字位组(总共32位)组成的,IPv6地址的长度时128位,而且是由16进制字符组成的。在IPv4中,每个位组由0-255的十进制数字组成,位组之间由英文的句号隔开,IPv6地址由8个为组组成,每个位组由4个字符的16进制数字组成。
2、很容易识别链路本地单播地址
IPv6为不同的地址类型保留了特殊的地址头,最明显的一个例子就是链路本地单播地址都是以PE80开头的,多播地址都是以FF0x开头,这里的x是一个占位符,可以用数字1-8替换它。
3、支持地址缩写
因为IPv6的地址比较长,往往会包含很多0,如果某个位组的字符全部是0,则这些0可以缩写为一个0,例如,下面的地址:
FE80:CD00:0000:0CDE:1257:0000:211E:729C
可以缩写为
FE80:CD00:0:CDE:1257:0:211E:729C
4、可省略连续的0
如果连续多个位组的字符全部是0,则可以省略掉所有得0,例如,下面的地址:
FE80:CD00:0000:0000:0000:0000:211E:729C
除了可以按第3条介绍的方法缩写外,还可以直接省略掉连续的0,用两个英文冒号代替,操作系统看到这样的IPv6地址后,自然会知道它们之间的字符全是0。因此上面的地址可以简写为
FE80:CD00::211E:729C
5、IPv6的环回地址
在IPv4中,我们知道环回地址是指向本机的一个特殊地址,即我们熟悉的127.0.0.1,IPv6也不例外,同样设计了环回地址,如下:
0000:0000:0000:0000:0000:0000:0000:0001
参考第4条的省略写法,IPv6的环回地址就成了
::1
这看上去是不是不像是一个有效的IP地址啊。
6、不需要传统的子网掩码
在IPv4中,每个IP地址必须要搭配一个子网掩码才能使用,IPv6也使用了子网的概念,但子网ID是直接嵌入到地址中的。在IPv6中,前48位表示网络前缀,紧接着的16位是子网ID,最后64位才是接口标识,即接口ID或设备ID。如果需要的话,预留给设备ID的位可以借用来表示额外的子网掩码,但通常是不需要的,因为16位子网和64位设备ID可以提供多达65536个子网。
7、IPv6仍然需要DNS
在IPv4中,主机记录(即A记录)将IP地址映射到主机名,IPv6仍然要使用DNS技术,但IPv6不再使用主机记录,相反,IPv6使用AAAA资源记录,ip6.arpa用于反向主机名的解析。
8、可以跨IPv4网络实现IPv6隧道通信
导致IPv6迟迟得不到有效推进的一个原因就是和IPv4不完全兼容,因此出现了在IPv4网络上走IPv6通信的隧道技术,一个是Teredo,另一个是6to4,虽然它们的工作方法有点不一样,但基本思想都是将IPv6数据包封装成IPv4数据包进行传输,但通信的两端都需要具有封包和解包的能力。
9、你可能已经在使用IPv6了
从Windows Vista开始,微软默认就安装了IPv6驱动,并默认启用了IPv6协议,因为这一切都是自动配置的,你可能还不知情,但只有操作系统支持IPv6还不够,所有交换机和路由器都必须支持,此外,还有一些设计得很差的应用程序将IPv4地址硬编码到程序中了,它们都是阻碍IPv6普及的绊脚石。
10、Windows并没有完整支持IPv6
虽然微软在支持IPv6上表现得很积极,但Windows却并没有完整地支持IPv6,例如,在Windows中,我们以往可以使用UNC(通用命名约定)访问网络共享文件夹(如\\127.0.0.1\C$),但现在却不能使用IPv6这样做,因为Windows看到IPv6地址中的冒号时,它会把它当做驱动器盘符对待。
为了解决这个问题,微软为IPv6地址转换建立了一个特殊的域,如果你在UNC路径中使用IPv6地址,你必须使用破折号代替冒号,并在地址的末尾加上.ipv6.literal.net后缀,例如FE80-AB00–200D-617B.ipv6.literal.net。