IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。


IPv6

1.IPv4资源枯竭

  IPv4地址枯竭(英语:IPv4 address exhaustion),又称IPv4地址耗尽,为互联网通信协议第四版(IPv4)可使用的未核发地址完全用尽的状况。从1980年代晚期开始,已经开始意识到这个问题将会发生。IPv6的研发及部署,主要就是为了解决这个问题。
  现今的互联网络发展蓬勃,截至2018年1月,全球上网人数已达40.21亿,IPv4仅能提供约42.9亿个IP位置。虽然当前的网络地址转换及无类别域间路由等技术可延缓网络位置匮乏之现象,但为求解决根本问题,从1990年开始,互联网工程工作小组开始规划IPv4的下一代协议,除要解决即将遇到的IP地址短缺问题外,还要发展更多的扩展,为此IETF小组创建IPng,以让后续工作顺利进行。1994年,各IPng领域的代表们于多伦多举办的IETF会议中,正式提议IPv6发展计划,该提议直到同年的11月17日才被认可,并于1996年8月10日成为IETF的草案标准,最终IPv6在1998年12月由互联网工程工作小组以互联网标准规范(RFC 2460)的方式正式公布。

2.IPv6

2.1IPv6和IPV4的比较

  在Internet上,数据以分组的形式传输,IPv6定义了一种新的分组格式,目的是为了最小化路由器处理的消息标头。由于IPv4消息和IPv6消息标头有很大不同,因此这两种协议无法互操作。但是在大多数情况下,IPv6仅仅是对IPv4的一种保守扩展。除了嵌入了互联网地址的那些应用协议(如FTP和NTPv3,新地址格式可能会与当前协议的语法冲突)以外,大多数传输层和应用层协议几乎不怎么需要修改就可以在IPv6上运行。
无状态地址自动配置(SLAAC)
  当连接到IPv6网络上时,IPv6主机可以使用邻居发现协议对自身进行自动配置。当第一次连接到网络上时,主机发送一个链路本地路由器请求(solicitation)多播请求来获取配置参数。路由器使用包含Internet层配置参数的路由器宣告(advertisement)报文进行回应。在不适合使用IPv6无状态地址自动配置的场景下,网络可以使用有状态配置,如DHCPv6,或者使用静态方法手动配置。

2.2IPv6编码

  IPv6具有比IPv4大得多的编码地址空间。这是因为IPv6采用128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2^128(约3.4×1038)个地址,具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456 个,也可以说成16^32个,因为32位地址每位可以取16个不同的值。
  网络地址转换是当前减缓IPv4地址耗尽最有效的方式,而IPv6的地址消除了对它的依赖,被认为足够在可以预测的未来使用。就以地球人口70亿人计算,每人平均可分得约4.86×10^28(486117667×10^20)个IPv6地址。
  IPv6从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373和RFC 2374定义的IPv6地址有128位长;IPv6地址的表达形式一般采用32个十六进制数。
  在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。

2.3IPv6格式

  IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。例如:2001:0db8:86a3:08d3:1319:8a2e:0370:7344 是一个合法的IPv6地址。类似于IPv4的点分十进制,同样也存在点分十六进制的写法,将8组4位十六进制地址的冒号去除后,每位以点号“.”分组,例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344则记为2.0.0.1.0.d.b.8.8.5.a.3.0.8.d.3.1.3.1.9.8.a.2.e.0.3.7.0.7.3.4.4,其倒序写法用于ip6.arpa子域名记录IPv6地址与域名的映射。
  同时IPv6在某些条件下可以省略:

  • 每项数字前导的0可以省略,省略后前导数字仍是0则继续,例如下组IPv6是等价的。

     2001:0DB8:02de:0000:0000:0000:0000:0e13
     2001:DB8:2de:0000:0000:0000:0000:e13
     2001:DB8:2de:000:000:000:000:e13
     2001:DB8:2de:00:00:00:00:e13
     2001:DB8:2de:0:0:0:0:e13
  • 可以用双冒号“::”表示一组0或多组连续的0,但只能出现一次:
    1.如果四组数字都是零,可以被省略。遵照以上省略规则,下面这两组IPv6都是相等的。

     2001:DB8:2de:0:0:0:0:e13
     2001:DB8:2de::e13
     2001:0DB8:0000:0000:0000:0000:1428:57ab
     2001:0DB8:0000:0000:0000::1428:57ab
     2001:0DB8:0:0:0:0:1428:57ab
     2001:0DB8:0::0:1428:57ab
     2001:0DB8::1428:57ab

    2.2001::25de::cade 是非法的,因为双冒号出现了两次。它有可能是下种情形之一,造成无法推断。

     2001:0000:0000:0000:0000:25de:0000:cade
     2001:0000:0000:0000:25de:0000:0000:cade
     2001:0000:0000:25de:0000:0000:0000:cade
     2001:0000:25de:0000:0000:0000:0000:cade

    3.如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此::ffff:192.168.89.9 相等于::ffff:c0a8:5909。另外,::ffff:1.2.3.4 格式叫做IPv4映射地址。
      IPv4位址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:FFFF:874B:2B34 或者::FFFF:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::ffff:135.75.43.52。

2.4IPv6地址分类

IPv6地址可分为三种:

  单播(unicast)地址
  单播地址标示一个网络接口。协议会把送往地址的数据包送往给其接口。IPv6的单播地址可以有一个代表特殊地址名字的范畴,如链路本地地址(link local address)和唯一区域地址(ULA,unique local address)。单播地址包括可聚类的全球单播地址、链路本地地址等。
  任播(anycast)地址
  任播像是Unicast(单点传播)与Broadcast(多点广播)的综合。单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。
  而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址列表,但指定为Anycast的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。
以当前的应用为例,Anycast地址只能分配给中间设备(如路由器、三层交换机等),不能分配给终端设备(手机、电脑等),而且不能作为发送端的地址。
  多播(multicast)地址
  多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。多播地址由皆为一的字节起始,亦即:它们的前置为FF00::/8。其第二个字节的最后四个比特用以标明"范畴"。
一般有node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和global(0xE)。多播地址中的最低112位会组成多播组群标识符,不过因为传统方法是从MAC地址产生,故只有组群标识符中的最低32位有使用。定义过的组群标识符有用于所有节点的多播地址0x1和用于所有路由器的0x2。
  另一个多播组群的地址为"solicited-node多播地址",是由前置FF02::1:FF00:0/104和剩余的组群标识符(最低24位)所组成。这些地址允许经由邻居发现协议(NDP,Neighbor Discovery Protocol)来解译链接层地址,因而不用干扰到在区网内的所有节点。

2.5IPv6特殊地址

  IANA维护官方的IPv6地址空间列表。全局的单播地址的分配可在各个区域互联网注册管理机构或 GRH DFP 页面找到。
  IPv6中有些地址是有特殊含义的:
  未指定地址
  ::/128-所有比特皆为零的地址称作未指定地址。这个地址不可指定给某个网络接口,并且只有在主机尚未知道其来源IP时,才会用于软件中。路由器不可转送包含未指定地址的数据包。
链路本地地址
  ::1/128-是一种单播绕回地址。如果一个应用程序将数据包送到此地址,IPv6堆栈会转送这些数据包绕回到同样的虚拟接口(相当于IPv4中的127.0.0.1/8)。
  fe80::/10-这些链路本地地址指明,这些地址只在区域连线中是合法的,这有点类似于IPv4中的169.254.0.0/16。
  唯一区域位域
  fc00::/7-唯一区域地址(ULA,unique local address)只可在一群网站中绕送。这定义在RFC 4193中,是用来取代站点本地位域。这地址包含一个40比特的伪随机数,以减少当网站合并或数据包误传到网络时碰撞的风险。这些地址除了只能用于区域外,还具备全局性的范畴,这点违反了唯一区域位域所取代的站点本地地址的定义。
  多播地址
  ff00::/8-这个前置表明定义在"IP Version 6 Addressing Architecture"(RFC 4291)中的多播地址。其中,有些地址已用于指定特殊协议,如ff0X::101对应所有区域的NTP服务器(RFC 2375)。
  请求节点多播地址(Solicited-node multicast address)
  ff02::1:FFXX:XXXX-XX:XXXX为相对应的单播或任播地址中的三个最低的字节。
  IPv4转译地址
  ::ffff:x.x.x.x/96-用于IPv4映射地址。(参见以下的转换机制)。
  2001::/32-用于Teredo隧道。
  2002::/16-用于6to4。
  ORCHID
  2001:10::/28-ORCHID (Overlay Routable Cryptographic Hash Identifiers)(RFC 4843)。这些是不可遶送的IPv6地址,用于加密散列识别。
  文件
  2001:db8::/32-这前置用于文件(RFC 3849)。这些地址应用于IPV6地址的示例中,或描述网络架构。
  遭舍弃或删除的用法
  ::/96-这个前置曾用于IPv4兼容地址,现已删除。
  fec0::/10-这个站点本地前置指明这地址只在组织内合法。它已在2004年9月的RFC3879中舍弃,并且新系统不应该支持这类型的地址。

2.6IPv6数据包

  IPv6数据包由两个主要部分组成:头部和负载。
  包头是包的前64比特,并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20比特,QoS服务质量控制),分组长度(16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。后面是负载。MTU至少1280字节长,在常见的以太网环境中为1500字节。负载在标准模式下最大可为65535字节,如果扩展报头设置了"jumbo payload"选项,则长度值被置为0。
  IPv6曾有两个有着细微差别的版本;在 RFC 1883 中定义的原始版本(现在废弃)和 RFC 2460 中描述的现在提议的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。
  由于分片(Fragmentation)只在IPv6的主机中处理,而IPv6也要求实现“MTU路径发现”来避免数据包需要被中间设备分片,所以IPv4头涉及分片的字段从IPv6基本头移出至专用的分片扩展报头中。
  在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。

2.7IPv6域名系统

  IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录,类似地,IPv4表示为A记录(A record));反向解析在ip6.arpa(原先是ip6.int)下进行,在这里地址空间为半字节16进制数字格式。这种模式在RFC 3596给与了定义。
  AAAA模式是IPv6结构设计时的两种提议之一。另外一种正向解析为A6记录。也有一些其他的创新像二进制串标签和DNAME记录等。RFC 2874和它的一些引用中定义了这种模式。
  AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:

  1.A6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编号。
  2.使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。
  3.一种新的叫做比特标签的类型被引入,主要用于反向解析。

  2002年8月的RFC 3363中对AAAA模式给与了有效的标准化(在RFC 3364有对于两种模式优缺点的更深入的讨论)。

3.IPv6根服务器

  根服务器主要用来管理互联网的主目录,全世界IPv4根服务器只有13台,这13台IPv4根域名服务器名字分别为“A”至“M”,1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。虽然中国也有IPv4的根镜像服务器,但是这些根镜像服务器解析的结果最终还会汇总到根域名服务器上。
  “雪人计划”由中国下一代互联网工程中心(BII)领衔发起,联合WIDE机构(现国际互联网M根运营者)、互联网域名工程中心(ZDNS)等共同创立。2015年6月底前,将面向全球招募25个根服务器运营志愿单位,共同对IPv6根服务器运营、域名系统安全扩展密钥签名和密钥轮转等方面进行测试验证。“雪人计划”是合适的也是可行的,要真正实现全球互联网的多边共治还有很多工作要做。通过联合全球机构来做测试和试运营,扫清技术上的障碍,不仅可以争取更多支持者,还能推动在IETF(国际互联网工程任务组)内相应的标准化进展。于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6根服务器架设(总3台主根),其中1台主根和3台辅根部署在中国,打破了中国过去没有根服务器的困境。
  值得一提的是,“雪人计划”新增的25台IPv6根服务器的地位事实上要低于之前的13台IPv4根服务器,IPv4的根服务器对IPv6的根服务器依然拥有解释权,所以即便以后中国有了IPv6的根服务器,也并不意味着中国就能起到主导作用,而且基于“同一个世界,同一个互联网,同一个域名空间”的理念,“雪人计划”不会试图进行“域名空间分叉”。也就是说,“雪人计划”目前所做的所有测试都是基于目前IPv4的架构下的拓展,而并非“另起炉灶”重新建立一套新的域名管理系统和根服务器;换句话说,就“雪人计划”本身而言,并没有完全动摇美国在互联网中地位的根基。

4.江西电信家庭宽带

宽带提速
  家里是电信的老用户了,一直留着一台电话机,从以前的用电话线ADSL拨号上网到光改之后的光猫上网,经历了4次提速(2M-50M-100M-200M),后面改了电信的天翼畅享199融合套餐,也因为电信送的烽火HG261GS百兆光猫硬件限制,而换电信的千兆猫要加钱,然后在某宝买了个SA1456C,配套也上了360安全路由P4。现在看电信网站,也可以花2000积分提速到300兆了。
天翼畅享199融合套餐

  这次寒假回家闲着没事干摆弄光猫,发现这货支持IPv6,但是显示拨号失败,上网查了一下说是拿了公网IPv4就没有IPv6了,马上联系网厅的在线客服帮我改了公网和私网,发现私网状态下果然可以拿到IPv6地址,公网却不行,而我又需要IPv4公网IP,也怀疑是电信配置下发的问题,因为买的SA1456C是华为的界面,都是自己配置的,没有配置TR069,光猫的配置不受电信控制,可能存在电信的IPv6配置没下发的问题,于是换上了电信送的烽火光猫,联系宽带运维的师傅帮忙下发一遍配置(输入LOID只能认证设备和连接TR069,没有其他配置下发),用超级密码登上后台,发现还是没有IPv6,然后只能联系运维师傅说拿不到IPv6地址,访问不了校园网,让他帮忙看下是什么问题,他这边说在运维后台改了下配置,让我再试试,果然就可以了。然后用IPv6测了下速,发现还是有200兆的。

5.电信IPv6注意事项

  1.配置光猫IPv6的时候发现电信这边并没有下发IPv6的DNS地址,所以要自己配置一下,我选择了延迟最低的240c::6644和240c::6666。
  2.是否要禁用IPv6局域网ULA,如果你需要用IPv6进行内网通信,那么就启用它为设备配置IPv6的内网地址段,让你的链接不受制于ISP,因为绝大数情况下,家庭宽带的IPv6也是动态的。
  3.是否要禁用IPv6临时IP,个人建议不要禁用,因为临时地址有效期短,对外访问默认用临时地址,保护匿名,让你的IPv6地址不暴露。
  4.选择IPv6无状态地址还是有状态地址,若只需要上IPv6互联网,并不需要对外提供服务,可以采用无状态IP,若需要对外提供服务,则采用有状态IP,因为业务IP的突然变化容易导致业务中断。

文章目录