10.1、IPv6基础介绍
- 前言
- 随着Internet规模的扩大,IPv4地址空间已经消耗殆尽。针对IPv4的地址短缺问题,曾先后出现过CIDR和NAT等临时性解决方案,但是CIDR和NAT都有各自的弊端,并不能作为IPv4地址短缺问题的彻底解决方案。另外,安全性、Qos(服务质量)、简便配置等要求也表明需要一个新的协议来根本解决目前IPv4面临的问题
- IETF在20世纪90年代提出了下一代互联网协议-IPv6,IPv6支持几乎无限的地址空间。IPv6使用了全新的地址配置方式,使得配置更加简单。IPv6还采用了全新的报文格式,提高了报文处理的效率、安全性,也能更好地支持Qos
- IPv6地址
- IPv4地址空间已经消耗殆尽,近乎无限的地址空间是IPv6的最大优势
- IPv4地址长度是32比特,地址数量大概在43亿左右
- IPv4地址也不少,一共有43亿个地址,为什么不够用?主要是前期进行分配规划时不合理
- eg:进行测试时,使用的是127网段,整个网段都用来测试,对于网络地址规划就相当浪费,不合理。所以IPv4地址就被慢慢消耗殆尽了
- IPv4地址也不少,一共有43亿个地址,为什么不够用?主要是前期进行分配规划时不合理
- IPv6地址长度是128比特,地址数量号称地球上每一个沙子都能分配到一个IP地址
- IPv4地址长度是32比特,地址数量大概在43亿左右
- IPv4地址空间已经消耗殆尽,近乎无限的地址空间是IPv6的最大优势
- IPv6基本报头
- IPv6的基本报头在IPv4的基础上,增加了流标签域,去除了一些冗余字段,使报文头的处理更为简单、高效
- IPv6的基本报头是在IPv4报头的基础上,进行增减
- 减少部分
- ID
- 分片
- 增加内容
- 流标签域
- 减少部分
- IPv6基本报头
- Version
- 版本号
- v6版本
- 版本号
- Traffic Class
- 流的类别
- 相当于IPv4的Qos,主要是用于Qos优先级分类
- 流的类别
- Flow Label
- 流标签
- IPv6增加了一个流标签域,主要是结合源MAC、目的MAC去确定一个实时流量。对于确定流量的速率相比于IPv4会更加高效
- 对于IPv4,采用的是五元组确定实时流量
- 对于IPv6,采用的是三元组确定实时流量
- IPv6增加了一个流标签域,主要是结合源MAC、目的MAC去确定一个实时流量。对于确定流量的速率相比于IPv4会更加高效
- 流标签
- Payload Length
- 载负荷
- 有效负载的长度,不包括IP报头
- 载负荷
- Next Header
- 下一个报头
- 定义了根在IPv6的第一个扩展报头的类型
- IPv6的基本报头的类型是比较少的,相比于IPv4的基本报头少很多
- 减少的部分
- 分片的作用
- 位于扩展报头
- 分片的作用
- 如果扩展报头不需要这些功能,基本报头就可以了。基本报头的数值是比较精简的,在发送数据时有效的减少了CPU的运算
- 减少的部分
- IPv6的基本报头的类型是比较少的,相比于IPv4的基本报头少很多
- 定义了根在IPv6的第一个扩展报头的类型
- 下一个报头
- Hop limit
- 类似于TTL值
- 应用于跳数限制
- 类似于TTL值
- Source Address
- 源地址
- Destination Address
- 目的地址
- Version
- IPv6扩展报头
- IPv6扩展报头是跟在IPv6基本报头后面的可选报头,可以有一个或多个
- Eg
- 目的选项扩展报头
- 路由扩展报头
- 分片扩展报头
- 认证扩展报头
- Eg
- 如图所示的扩展报头是分片扩展报头
- 扩展报头后面可以选择一个或多个跟在基本报头后面
- IPv6扩展报头是跟在IPv6基本报头后面的可选报头,可以有一个或多个
- IPv6地址格式
- IPv6地址长度为128比特,每16比特划分为一段,每段由4个十六进制数表示,并用冒号隔开
- IPv6地址包括网络前缀和接口表示两部分,类似于网络号和主机号
- 网络前缀
- 标识IPv6的网络
- 接口表示
- 标识接口
- 网络前缀
- IPv6地址压缩格式
- 每一组中的前导“0”都可以省略
- Eg
- 1、001
- 20、020
- Eg
- 地址中包含的连续全为0的组,可以用双冒号“::”来代替
- 双冒号只能出现一次,否则不能还原成正常的格式
- 每一组中的前导“0”都可以省略
- IPv6地址分类
- IPv6地址分为单播地址、任播地址、组播地址三种类型
- 全球单播地址
- 2000::/3
- /3
- 表示前面三个比特是固定的
- /3
- 2000::/3
- ::/128
- 相当于0.0.0.0
- ::1/128
- 类似于IPv4的127网段
- 全球单播地址
- IPv6地址没有广播地址,IPv6主要是使用NDP邻居发现去寻址
- IPv6地址分为单播地址、任播地址、组播地址三种类型
- IPv6单播地址
- 全球单播地址带有固定前缀,类似于IPv4中的公网地址
- 链路本地单播地址前缀为FE80::/10
- 该网段是用于链路本地的地址,当PC使用DHCP自动生成地址时,本地是没有服务器。此时交换机就会为主机分发一个地址,这个地址就是169.224.x.x/16网段
- 这个地址是可以进行通信的,只不过只有本地意义,即只能本网段通信,不能跨网段通信
- 类似于IPv4的169.224.x.x/16
- 该网段是用于链路本地的地址,当PC使用DHCP自动生成地址时,本地是没有服务器。此时交换机就会为主机分发一个地址,这个地址就是169.224.x.x/16网段
- IPv6组播地址
- 所有IPv6组播地址都以FF开始
- 组播地址前8个比特是固定的,所以都是FF
- FF02::1
- 类似于224.0.01
- FF02::2
- 类似于224.0.0.2
- IPv6为需要使用组播发送数据的协议预留了一些组播组
- 所有IPv6组播地址都以FF开始
- IPv6的任播地址
- IPv6的任播地址是用来标识一组网络接口的,可以给多个主机配置相同服务时提供相同的地址
- Eg
- 网络中对于服务器之间,服务器使用的是相同的IPv6地址。
- 如果服务器提供的业务是一样的,平常主机进行访问可以采用就近原则访问服务器
- 区域X访问上方服务器
- 区域Y访问下方服务器
- 如果有一天链路出现问题,相关区域访问的服务器就可以切换的另一台服务器进行访问,提供了备份的作用
- 如果服务器提供的业务是一样的,平常主机进行访问可以采用就近原则访问服务器
- 网络中对于服务器之间,服务器使用的是相同的IPv6地址。
- 提供同样服务的情况下使用相同的任播地址
- Eg
- IPv6的任播地址是用来标识一组网络接口的,可以给多个主机配置相同服务时提供相同的地址
- IPv6无状态地址自动配置
- IPv6无状态地址自动分配
- 主要是在没有DHCP服务器的情况下自动配置IPv6地址
- 强调
- 使用的协议
- ICMP
- 使用的协议
- 当主机和路由器启动时,网络节点向相连的路由器发送RS,请求地址前缀信息
- 路由器回复一个路由器通告RA数据报,通过发送路由器通告RA,回复地址前缀信息
- RA报文包含的参数
- Lifetime
- Current Hop
- 下一跳
- Prefix
- 前缀信息
- 当主机收到前缀信息,可以通过前缀信息加上自己的MAC地址获取自己的IPv6地址。
- IPv6地址就是通过前缀加上接口标识组成的
- RA报文包含的参数
- IPv6无状态地址自动分配
- EUI-64规范
- 将FFFE插入MAC地址的前24位于后24位之间,并将第7位的值取反
- 主机A如何获得接口标识?
- 采用EUI-64规范,根据MAC地址获得自己的接口标识
- 主机A是由48比特的MAC地址,接口标识有64bit。
- 将以太网MAC地址的第七个比特进行反转,然后将前24bit和后24bit之间插入一段序列,这段序列是FFFE,一共是16个比特。此时拥有了一组64位比特为一组的接口标识。
- 接口标识加上路由器标识的前缀,就可以组成主机A的IPv6的地址
- IPv6无状态地址DAD检查
- 当为接口配置IPv6地址时,DAD用来在本地链路范围内检测将要使用的IPv6地址是否唯一
- 当分配到无状态地址时,会进行DAD检查。类似于免费ARP检查IPv6地址是否唯一,是否可变
- 当为接口配置IPv6地址时,DAD用来在本地链路范围内检测将要使用的IPv6地址是否唯一
- 总结
- 2001:0DB8:0000:0000:0000:0000:032A:2D70,此IPv6地址压缩到最短是多少?
- 压缩第一个规则,去掉首位0
- 1、2001:DB8:0:0:0:0:32A:2D70
- 压缩第二个规则,双冒号代替0
- 2、2001:DB8::32A:2D70
- 压缩第一个规则,去掉首位0
- IPv6主机无状态地址自动配置的过程是什么?
- 1、主机和路由器启动以后,路由器会向主机发送一个RS报文
- 2、路由器会回送一个RA报文
- RA报文
- 含有一个前缀
- RA报文
- 3、主机接收到网络前缀之后,根据自己的MAC地址,并通过EUI-64规范获取接口ID
- 4、获得了网络前缀和接口ID后,主机就可以获取自己的IPv6地址
- 2001:0DB8:0000:0000:0000:0000:032A:2D70,此IPv6地址压缩到最短是多少?