众所周知,32位的IPv4地址已经基本耗尽(这里的耗尽只是说的分配完了,实际上有相当一部分并没有投入到使用中
各大互联网已经支持IPv6
终端支持情况
当前大部分操作系统和硬件都比较好地支持IPv6了,简单列举如下:
Windows:windows 7、windows 8.x、windows 10,默认开启IPv6;Linux:内核2.6.x、内核3.x、内核4.x已经支持IPv6(需要手动开启);iOS:IOS9开始已经支持IPv6 Only,2016年苹果已经强制要求app必须支持IPv6;Android也已经支持IPv6(但是不支持DHCPv6)来看看我们手机的IPv6的情况
从上述截图中我们可以看到,当前大部分支持IPv6的网络环境中都是双栈环境,即同时支持IPv4和IPv6,也就是当我们连接运营商LTE网络的时候,它一般会分配一个IPv4地址和一个IPv6地址(全球单播地址,相当于ipv4里面的公网地址)。双栈环境下,用户自动选择使用什么IPv6或者IPv4协议去连接远端服务,如果服务端域名支持IPv6(域名解析中存在AAAA记录),客户端则会优先使用IPv6协议去连接服务端(特殊情况下除外);当服务端域名只支持IPv4(DNS解析中只有A记录),客户端则会使用IPv4协议去连接服务端,完成请求。
IPv6协议简介
IPv6地址表示方法
Pv6地址由八组、每组四位16进制数字组成,每组之间由":"来分隔,看个简单的例子:
2001:cdba:0000:0000:0000:0000:3257:9652,每个:前后都是4位16进制的数字,共分隔成8组)
根据简写规则,上述地址可以简写成如下表示:
1.省略前导零,上述ip地址可以表示为:
2001:cdba:0:0:0:0:3257:9652(4个0简写成1个0)
2.通过使用双冒号(::)代替一系列零来指定Ipv6地址,上述地址可以表示为:
2001:cdba::3257:9652(:0:0:0:0:简写成::,即省略所有的0,需要注意(一个IP地址中只可使用一次双冒号)
IPv6地址分类
IPv6地址是单个或一组接口的128位标识符。在IPv4中,ip地址分为A、B、C、D、E五类,而IPv6突破了IPv4类别划分,主要划分为三种地址类型:单播地址、组播地址和任意播地址,各类地址的介绍如下:
单播(Unicast)地址:单播地址作为一个单一的接口标识符。IPv6数据包发送到一个单播地址被传递到由该地址标识的接口。对应于IPv4的普通公网和私网地址;多播(MultiCast)地址:多播地址作为一组标识符,多播地址的行为/接口可能属于不同的节点集合。IPv6数据包发送到多播地址被传递到多个接口;任播(AnyCast)地址:一组接口(一般属于不同节点)的标识符。发往任播地址的包被送给该地址标识的接口之一(路由协议度量距离最近的)。IPv6相关网络工具
dig、ping6、telnet、mtr、traceroute6、ip&route
具体IPv6协议见http://support.huawei.com/hedex/pages/EDOC10000256133118G231/08/EDOC10000256133118G231/08/resources/fea_des/topics/fea_ipv6_00014.html