IPV6
为什么需要IPv6地址
1)IPv4地址枯竭,为了满足万物互联的发展,需要更大的地址空间。
2)设备可以自动获取IPv6地址,无需依赖DHCP服务器。
3)IPv6引入了IPsec,提高了通信的安全性。
4)更好的支持实时应用,如语音和视频传输。
5)减少NAT依赖:每个设备都可以拥有一个全球唯一的IP地址,减少了网络复杂性
IPV6的优势
IPV4:
公网地址枯竭
包头设计不合理
路由表过大,查表效率低
对ARP的依赖,导致广播泛滥
IPV6
“无线”地址
地址层次化分配
即插即用
简化的报文头部
IPV6安全特性
保证端到端通信完整性
对移动端的支持
增强的Qos特性
IPV6报文构成
网络前缀+接口标识
IPv6基本报头
IPv6基本报头也称之为固定报头。固定报头包含8个字段,总长度为40个字节
扩展报头
提供一些扩展的报文转发信息,如分段、加密等,该部分不是必需的
上层协议数据单元
一般由上层协议报文和他的有效载荷组成,该部分与IPV4的上层协议数据单元相似
IPV6的基本报头的8个字段分别为:
版本(Version):
流量类型(Traffic Class):该字段功能和IPv4中的服务类型功能类似,
表示IPv6数据报文的类或优先级。长度为8bit。
流标签(Flow Label):与IPv4相比,该字段是新增的。该字段长度为20bit。
可以通过源IPv6地址+流标签来唯一确定一条数据流
也可以通过目的IPv6地址+流标签来唯一确定一条数据流
载荷长度(Payload Length):该字段表示IPv6数据报有效载荷的长度。有效载荷是指紧跟IPv6报头的数据报 的其它部分。该字段长度为16bit,能表示最大长度为65535Byte的有效载荷
下一个报头(Next Header):8bit,类似IPv4中的协议字段,主要为表示上层协议数据单元中的协议类型
跳数限制(Hop Limit):8bit, 类似于IPv4中的TTL字段,主要是定义数据包经过的最大跳数,每经过一台设 备,该值减1,该值为0时,数据包会被丢弃
源IPv6地址:128bit,发送方地址
目的IPv6地址:128bit,接收方地址
IPV6地址格式
IPV6首选格式
IPV6地址一般用冒号分割成8段,每一段16bit,每一段使用四个十六进制数表示
IPv6压缩格式
例如:2001:0DB8:0000:0001:0000:0000:0000:45ff/64
在每段的16进制中,左边的0可以省略
在每段的16进制中,如果全为0,可以用1个0表示
例如:2001:DB8:0:1:0:0:0:45ff/64
连续的多个段都是0,可以直接用:: 表示,:: 只能出一次
例如:2001:DB8:0:1::45ff/64
IPv6内嵌IPv4地址的格式
地址的前96bit为IPv6地址格式,后32bit为IPv4地址格式。
IPv6部分可采用首选或压缩格式,IPv4部分采用点分十进制格式。
例如:0:0:0:0:0:0:100.1.1.1/64
例如:0:0:0:0:0:0:100.1.1.1/64
Pv6地址结构
一个IPv6地址可以分为:网络前缀+接口标识
网络前缀:nbit,相当于IPv4地址中的网络位。
接口标识:(128-n)bit,相当于IPv4地址中的主机位
IPV6地址分类
暂时无法在飞书文档外展示此内容
GUA:全球单播地址(可聚合全球单播地址)
该类地址全球唯一,用于互联网访问,相当于IPv4的公网地址
通常GUA的网络部分长度为64bit,接口表示也为64bit
前导字段 | 地址范围 | 第一个十六位组范围 |
001 | 2000::/3 | 2000-3FFF |
应用场景:广域网和互联网
ULA:唯一本地地址
是IPv6私网地址,只能够在内网中使用
该地址空间在IPv6公网中不可被路由,因此不能直接访问公网
虽然是私有地址,也是全球唯一的,即便泄露到公网中,也不会产生地址冲突
地址范围:FC00::/7。
FC00::/8预留,以后扩展用
前导字段 | 地址范围 | 第一个十六位组范围 |
1111 1100 | FC00::/8预留 | FC00-FDFF:全部 FC00-FCFF:保留 FD00-FDFF:使用 |
1111 1101 | FD00::/8 |
应用场景: 企业内网(大型政企内网, 国家单位内网使用)
LLA:链路本地地址:
名字:LLA(链路本地地址)
范围:FE80::/10 (FE80-FEBF)
作用:是IPv6中另一种应用范围受限制的地址类型。
LLA的有效范围是本地链路(只在一个网段上起作用)
前导字段 | 地址范围 | 第一个十六位组范围 |
1111 1110 10 | FE80::/10 | FE80-FEBF |
IPv6组播地址:
范围:FF00::/8 (FF00-FFFF)
作用:IPv6组播地址标识某个组,目的为组播地址的报文会被送到该组播组内的成员
任播地址(单播地址)
任何全球单播地址或者链路本地地址可以被配置为任播地址。
组播MAC地址
1)组播IPv6报文的目的IP为组播IPv6地址,目的MAC为组播MAC地址
2)组播MAC的前16bit为“33:33”,是专门为IPv6组播预留的MAC地址前缀
3)后32bit从组播IPv6地址的后32bit直接映射而来
被请求节点的组播地址
当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组
该地址主要用于邻居发现和地址重复检测功能,被请求节点组播地址的有效范围为本地链路范围
FF02::1所有节点组播地址,所有网络节点设备都可以收到该报文
FF02::2所有路由器组播地址,只有所有的路由器都可以收到该报文
路由器发现
用于主机发现本地链路上的路由器,从而获取网络配置信息的过程
RS路由器请求报文
RA路由器发送报文
在 IPV6中PC获取IP地址的方式
1、手动配置IP
2、DHCP自动分配
3、IPV6地址无状态自动分配
路由器发送RA报文有两种方式
1、触发式发送
2、每间隔200-600秒就会发送一个RA报文
路由器发现
1)路由器发现:IPv6主机寻找路由器及获取网络信息的过程
2)路由器发现的三个功能:
路由器发现 :让主机发现路由器,确定默认网关
前缀发现 :让主机发现IPv6网络前缀,自动配置IPv6地址
参数发现 :让主机发现跳数限制、地址配置方式等信息
3)路由器发现使用的报文
RS报文:路由器请求报文 (icmpv6的报文,类型:133)
作用: 用于发现路由器,确定默认网关,请求IPv6网络前缀信息
解析:RS报文抓包解析
源MAC:主机接口的单播MAC地址
目的MAC:组播MAC:3333-0000-0002
源IP: 主机接口的链路本地地址(单播IPv6地址)
目的IP:组播IPv6地址 FF02::2
RA报文: 路由器通告报文:(icmpv6的报文,类型:134)
作用:通告默认网关,IPv6网络前缀信息
解析:RA报文抓包解析
源MAC:路由器接口的单播MAC地址
目的MAC:组播MAC:3333-0000-0001
源IP: 路由器接口的链路本地地址(单播IPv6地址)
目的IP:组播IPv6地址 FF02::1
备注:
1)路由器会除了触发式的回应RA报文,也会周期性地发送RA报文
2)RA发送间隔是一个有范围的随机值,时间间隔是200-600秒
IPv6的MAC地址解析
1)IPv6的MAC地址解析通过ICMPv6(NS和NA报文)来实现
2)NS报文: 邻居请求报文 (icmpv6的报文,类型:135)
作用:解析邻居设备的 MAC 地址 和重复地址检测
解析:IPv6的MAC地址解析的抓包分析:
IPv6报头:
源MAC:路由器接口的单播MAC地址
目的MAC:组播MAC:3333-0000-0002
源IP:路由器接口的单播IPv6地址
目的IP:对端设备接口的IPv6单播地址的组播组地址
ICMPv6报头
目的IP:对端路由器接口的IPv6单播地址
源MAC: 本端路由器接口的MAC地址
3)NA报文 邻居通告报文 (icmpv6的报文,类型:136)
作用:给邻居设备通告自身的MAC地址
响应 NS 报文:收到 NS 报文后,会回应 NA 报文,提供本机MAC地址
主动通告:没有收到 NS 报文的情况下主动发送 NA 报文,例如在网络拓扑发生变化时
解析:IPv6的MAC地址解析的抓包分析:
IPv6报头:
源MAC:路由器接口的单播MAC地址,
目的MAC:对端路由器接口的单播MAC地址
源IP:路由器接口的单播IPv6地址
目的IP:对端路由器接口的单播IPv6地址
ICMPv6报头:
目的IP:本端路由器接口的IPv6地址
MAC: 本端路由器接口的MAC地址
IPV6地址解析
IPV6地址解析通过ICMPV6来实现
在三层完成地址解析优势
地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议
可以使用三层的安全机制避免地址解析攻击
使用组播方式发送请求报文,减少了二层网络的压力