IPv6
在IPv6中,路由器公告(Router Advertis+·ement,RA)消息中的M位和O位用于指示主机如何获取其IP地址和其他配置参数。具体来说:
M位(Managed Address Configuration Flag):
M位为1:表示主机应使用DHCPv6来获取其IPv6地址。此时,主机会发送DHCPv6请求以获取一个或多个IPv6地址。
M位为0:表示主机不需要使用DHCPv6来获取其IPv6地址,主机可以通过无状态地址自动配置(SLAAC)自行生成IPv6地址。
O位(Other Configuration Flag):
O位为1:表示主机应使用DHCPv6来获取其他配置参数(例如DNS服务器、NTP服务器等),即使不使用DHCPv6来获取其IPv6地址。
O位为0:表示主机不需要使用DHCPv6来获取其他配置参数。
综上所述,M位和O位的组合指示了主机如何获取其IP地址和其他配置参数:
M=0, O=0:主机使用SLAAC进行地址自动配置,并且不使用DHCPv6获取其他配置参数。
M=0, O=1:主机使用SLAAC进行地址自动配置,但使用DHCPv6获取其他配置参数。
M=1, O=0:主机使用DHCPv6获取其IPv6地址,但不使用DHCPv6获取其他配置参数。
M=1, O=1:主机使用DHCPv6获取其IPv6地址和其他配置参数。
通过这些标志位,网络管理员可以灵活地控制主机的IP地址和其他网络配置的获取方式。

在IPv6中,报文不能像IPv4那样由路由器在转发过程中进行分段(fragmentation)。相反,IPv6要求发送方在发送之前通过路径MTU发现(PMTU Discovery)来确定路径中的最小MTU值,并且根据这个值进行报文分段。
当IPv6报文的大小超出路径MTU(PMTU)时,发送方需要使用IPv6的分段扩展头(Fragment Extension Header)对报文进行分段。以下是关于IPv6报文中哪些部分可以分段的详细信息:
数据部分:IPv6报文的有效负载(payload),即从上层协议传递下来的数据部分,可以被分段。有效负载包括上层协议数据以及任何其他的IPv6扩展头(除了分段扩展头)。
分段扩展头:在进行分段时,会在每一个片段中添加一个分段扩展头(Fragment Extension Header),该头部包含了分段信息,如片段标识、片段偏移、最后片段标志等。这个头部帮助接收方在收到所有片段后重组原始报文。
不可分段部分:IPv6报文的基本头(IPv6 Header)和其他位于分段扩展头之前的扩展头是不可分段的。这些头部必须包含在每一个片段中,并且不能被拆分。例如,IPv6基本头和 Hop-by-Hop选项头(Hop-by-Hop Options Header)都不能被分段。
总结来说,在IPv6报文中,只有有效负载部分(即数据部分)可以进行分段,而基本头和某些扩展头则需要在每个片段中完整保留,不能被分段。
在IPv6报文分段过程中,上层协议报头(如TCP、UDP、ICMPv6等)属于有效负载的一部分,因此它可以被分割,但这样做并不推荐,也不常见。
通常情况下,分段会尽量保留上层协议报头完整,并将其包含在第一个分段中。这是因为上层协议报头通常包含重要的控制信息,接收方需要这些信息来正确处理数据。如果上层协议报头被分割到多个片段中,那么接收方在接收到所有片段并重组之前无法完全解析这些控制信息,可能导致通信延迟或失败。
因此,在实践中,为了确保上层协议报头的完整性,IPv6报文的第一个片段通常包括了IPv6基本头、所有不可分段的扩展头,以及完整的上层协议报头。只有在此之后的数据部分(payload)才会被分割到后续的片段中。
IPv6组播信息在网络中的转发是有一定范围限制的,并不是随意广播的。具体来说,IPv6组播信息必须在确定的组播范围内进行转发。每个IPv6组播组都有一个对应的组播范围(Scope),用来定义组播信息应该传播的网络范围。
每个IPv6组播组对应的IPv6组播信息都必须在确定的组播范围内进行转发,确保组播流量仅在指定范围内传播,而不会影响到不相关的网络部分。
IPv4没有安全件设计,而IPv6中支持到的安全
一、IPv6 基础认知
1. 诞生背景与核心优势
核心动因:IPv4 的 32 位地址空间仅约 43 亿个地址,无法满足物联网、云计算等场景的海量设备接入需求,且缺乏原生安全机制。
关键优势:
地址空间巨大:128 位地址总数达 3.4×10³⁸个,可实现 “万物互联”;
头部简化:固定 40 字节基本包头,减少路由器处理开销,提升转发效率;
原生安全:内置 IPsec 协议,提供加密、认证和防重放攻击能力;
自动配置:支持无状态自动配置,简化设备入网流程。
2. 地址格式与表示规则
基本格式:128 位地址分为 8 组 4 位十六进制数,组间用冒号分隔,如2001:0db8:85a3:0000:0000:8a2e:0370:7334/64,斜杠后数字表示网络前缀长度。
压缩规则:
每组前导零可省略(如0db8简化为db8);
连续全零组用::替代,且整个地址仅能出现一次(如2001:db8:85a3::8a2e:370:7334)。
3. 地址类型及特性
IPv6地址通常分为两部分(特别是在无状态地址自动配置 SLAAC 中):

接口ID(Interface ID)
定义:接口ID是IPv6地址中用于标识一个链路上特定接口的部分,相当于IPv4中的“主机部分”。
长度:通常是 64位(在EUI-64格式或现代SLAAC中)。
作用:用于在本地链路中唯一标识一个接口。
生成方式:
常见使用 EUI-64 格式 从MAC地址生成(例如,将48位MAC地址中间插入
FFFE并翻转U/L位)。也可以是随机生成的(如隐私扩展中使用)。
手动配置
位置:是IPv6地址的后64位(在/64前缀的网络中)。
IPv6链路本地地址(前缀fe80::/10)的生成方式包括两种:
自动生成:通过 SLAAC(无状态地址自动配置)协议,常用EUI-64 规则快速生成接口标识符(将 MAC 地址的第 7 位翻转,中间插入
ff:fe,扩展为 64 位),最终组成完整链路本地地址;手工配置:手动指定
fe80::/10前缀的地址。
4. 特殊地址
环回地址:::1/128,用于设备自身通信测试,类似 IPv4 的127.0.0.1;
未指定地址:::/128,仅作源地址(如设备初始化时),路由器不转发。
二、核心技术机制
1. 地址配置方式
2. 地址解析与邻居发现(NDP)
替代协议:完全取代 IPv4 的 ARP 协议,基于 ICMPv6 实现。
核心流程:
邻居请求(NS,Type135):设备需解析目标地址时,发送 NS 报文,目标为 “被请求节点组播地址”(FF02::1:FF+ 目标 IPv6 后 24 位);
邻居通告(NA,Type136):目标设备收到 NS 后,回复含自身 MAC 地址的 NA 报文,完成解析。
重复地址检测(DAD):接口配置地址后,发送源为::的 NS 报文,若未收到 NA 回复则确认地址唯一,可正常使用。
3. 包头结构
基本包头(40 字节固定):含版本(固定为 6)、流量类别(QoS 优先级)、流标签(标识同一数据流)、跳数限制等字段,无校验和字段(由传输层负责);
扩展包头:按需添加,支持路由、加密、分片等功能,如 IPsec 相关的认证头部(AH)、封装安全载荷(ESP)。
三、过渡与安全技术
1. IPv4 向 IPv6 过渡技术
2. 安全特性
IPsec 内置支持:IPv6 原生集成 IPsec,提供数据完整性、机密性和身份认证,无需额外部署;
源地址验证(SAVA):通过多重监控防御仿冒源地址攻击,提升网络安全性。
四、应用场景与关键对比
1. 典型应用场景
物联网(IoT):为海量传感器、智能设备分配独立地址,支撑设备管理与通信;
数据中心:简化路由架构,提升虚拟化环境下的网络扩展性和转发效率;
智慧城市:对接城市大脑、智能家居等场景,实现设备互联互通。
2. 与 IPv4 核心差异对比