IPv6前言

IP以其简单、方便操作,迅速占领了网络通信的领域,最终实现了网络通信的统一,可惜设计者并未预料到IP膨胀速度如此之快,因此设计了IPv6,作为第二代IP协议横空出世。虽然IPv6技术理念十分优秀,但是IPv6推进的进度十分缓慢,目前仍处于IPv6过渡阶段,这个阶段是最蛋痛的部分,比纯IPv4/v6都要麻烦,甚至让网络变得更加麻烦。期望未来能够实现IPv6-only的环境,路漫漫其修远兮,吾将上下而求索~

IPv6篇参考如下《TCP/IP路由技术卷一》、《RFC 2460》、曹氏宏的博客等

IPv6优势

突出优势 / 刚需 :更大的地址空间,128位地址长度,足以满足未来长时间不用为IP地址不足担忧。

原因:

IPV6的门牌架构_IP

目前已经满足60多亿人的使用需求,

IPV6的门牌架构_网络协议_02

的地址长度可以自我感受一下。

其他优势

IPv6

IPv4

简单为美,报头定长。IPv6报头固定长度位40 Byte,格式简单,路由器开销小。

报头变长。Option选项加入,IPv4报头长度在20~60

Byte之间,路由过程中,要求中途所有路由器读取

Option内容,开销变大。


扩展报头,未来可期。其他功能移到扩展报头,且遵守TLV原则。

难以扩展。额外功能放入Option选项中,让IP报头十分

臃肿,难以扩展。

即插即用,配置简洁。配合DHCP、ICMP等协议,配置方便。

配置因素过多。手动和DHCP自动配置,但是地址数量

有限,要考虑地址冲突问题。

安全可靠,贴身使用。原生理念,天然自带IPSec,保证主机到主机的通信安全(原生理念哈)

尽力而为,有条件可靠。后期发展,IPv4也可以使用

IPSec。

服务保障,流标签出现。增加了20bit的Flow Label提供更好服务。

DSCP设计。服务质量也有保证,只是位数不多。

IPv6设计理念,就是为了解决IPv4瓶颈,以及IPv4在现实应用中遇到的问题。比如:曹的博客中写出来的MIP的问题。IPv6的设计是具有前瞻性和完美的,但是,要撼动IPv4筑好的基石更加困难,因为人们总是可以用加法(其他技术),来解决问题。

IPv6

IPv6地址

 IPv6地址书写格式

  • 128位,二进制,机器读取
  • 32位,16进制,冒号分十六进制,人/机器读取

标准IPv6地址

2001:0410:0000:1234:FB00:1400:5000:45FF

3ffe:0000:0000:0000:1010:2a2a:0000:0001

fe80:0000:0000:0000:0000:0000:0000:0009

IPv6地址格式并不复杂,问题是太长,也容易出错,因此本着简单的活交给机器原则,出现了以下三种地址压缩格式

  1. 出现连续多段0时,利用"::",仅能使用一次

fe80:0000:0000:0000:0000:0000:0000:0009

压缩后:fe80::0009

3ffe:0000:0000:0000:1010:0000:0000:0001

错误压缩:3ffe::1010::0001,原因:“::”的使用,隐藏了0的位数,多个符号出现就有多种可能。

正确压缩:3ffe::1010:0000:0000:0001 或 3ffe:0000:0000:0000:1010::0001

     2. 省略每一段中前导(非0数字)前的0,中间的0不可省略

0000:0000:0000:0000:0000:0000:0000:0000(这个特殊一点)

压缩后:0:0:0:0:0:0:0:0,也可以(::)

3ffe:0000:0000:0000:1010:0000:0000:0001

压缩后:3ffe:0:0:0:1010:0:0:1

     3. 结合1和2压缩

0000:0000:0000:0000:0000:0000:0000:0001(相当于IPv4的127.0.0.1)

首先按照1:::0001

接下来,按照2:::1

 IPv6三种地址

IPv6地址定义了三种地址:单播、组播、任播。取消了广播地址,增加了任播地址。

任播在IPv4也有体现,就是访问同一个IP地址,会访问最近的IP节点,比如:8.8.8.8谷歌的DNS服务器,全球分布,在中国访问会找中国内地址为8.8.8.8的服务器。

广播被组播替代,具体原因如下:

广播:消耗CPU资源,占用带宽。对于不想接收广播报文的主机,需要读取报文全部内容才会丢弃,可操作性差。

组播:可操作性强,可定义接收成员组。对于未订阅组播消息的主机,接收到组播信息,网卡根据IP头部就可以直接丢弃。比如:接口OSPF功能未开启,收到hello包直接丢弃。

 IPv6也如同IPv4一般,对地址有所规划,规划表如下《TCP/IP路由卷一》

IPv6地址类型的高位数字组合

地址类型

高位数字(二进制)

高位数字(十六进制)

未指定

00....0

::/128

环回地址

00....1

::1/128

组播地址

11111111

FF00::/8

链路本地单播地址

111111101000

FE80::/10

地区本地单播地址

(存在争议)

111111101100

FEC0::/10

全球单播地址

(当前分配)

001

2xxx::/4 或者 3xxx::/4

保留的类型

(未来全球单播地址的分配)

其他所有的

简要说一下,几个单播地址的作用,组播不展开描述,一个是目前不会,二是IPv4组播应用也不广泛,更何况IPv6.

链路本地单播地址:通用前缀 + 主机ID(EUI 6-4),作用范围仅链路本地,意思是,路由器一条链路两个对端;组网中处于同一个二层环境(vlan)的所有交换机端口。作用则是天然为各种协议做准备,且不担心地址冲突

全球单播地址:相当于公网地址,由于IPv6地址十分充足,目前2xxx::/4还没分配完,3的话可能要过很久才会使用。

IPV6的门牌架构_网络协议_03

 

  IPv6报头格式

 

IPV6的门牌架构_IPV6的门牌架构_04

 IPv6报头格式简单、方便,固定长度,功能基本和v4报头没有太大差别,但是还有几个注意点

  • Flow Label:在IPv4的八位DSCP的基础上,增加这个字段,为了更加提供更精细服务(可以根据源目IP、端口,进行精细服务)。用处:通过精细标签,CPU不用识别到TCP报文,仅根据标签提供精细服务,降低CPU开销。
  • 有效载荷:IPv6报头所承载的数据,除v6报头外包括扩展报头也包含在有效载荷中。
  • 跳数限制:就是TTL。 

总结

第一篇以简单为美为主,介绍IPv6的地址和简单性,下一篇讲述即插即用特性。