地址结构与表示
-
长度与格式:IPv6 地址长度为 128 位(16 字节),采用 8 组由冒号分隔的 4 位十六进制数表示,例如
2001:0db8:85a3:0000:0000:8a2e:0370:7334。 -
缩写规则:每组前导零可省略;连续的全零组可用双冒号
::替代,但一个地址中双冒号只能出现一次。 -
结构划分:通常前 64 位为网络前缀(Routing Prefix + Subnet ID),后 64 位为接口标识符(Interface ID)。
核心通信机制变更
-
取消广播(No Broadcast):IPv6 完全废除了 IPv4 的广播机制,所有单播外的广播行为均转为 多播(Multicast) 和 任播(Anycast),大幅降低局域网噪声。
-
邻居发现协议(NDP, Neighbor Discovery Protocol):基于 ICMPv6 运行,替代了 IPv4 中的 ARP(地址解析)、ICMP 重定向和路由器发现机制。核心消息包含:
-
RS(Router Solicitation):主机主动向所有路由器多播地址
ff02::2发送,请求网络配置。 -
RA(Router Advertisement):路由器周期性或针对 RS 向所有节点多播地址
ff02::1发送,通告前缀、网关、生存期及配置标志位。 -
NS(Neighbor Solicitation) 与 NA(Neighbor Advertisement):替代 ARP 请求与应答,用于 IP 到 MAC 的解析及重复地址检测(DAD, Duplicate Address Detection)。
-
地址分类
-
链路本地地址(Link-Local Address, LLA):前缀固定为
fe80::/10(通常表现为fe80::/64)。网卡启用 IPv6 后会自动生成一个 LLA,仅在当前二层广播域内有效,不可路由,用于局域网内邻居发现及作为默认网关地址。 -
全球单播地址(Global Unicast Address, GUA):前缀通常为
2000::/3,相当于 IPv4 的公网 IP。 -
唯一本地地址(Unique Local Address, ULA):前缀为
fc00::/7(目前实际使用fd00::/8),相当于 IPv4 的私网 IP(如192.168.0.0/16),但无 NAT 依赖。 -
多播地址(Multicast):前缀为
ff00::/8。
地址自动配置与网络参数分发
IPv6 的终端配置不再唯一依赖传统 DHCP 服务器,而是由 RA 报文中的标志位(主要是 M 标志和 O 标志)引导终端采用不同方式获取配置:
-
SLAAC(Stateless Address Auto Configuration,无状态地址自动配置)
-
机制:终端接收到路由器发送的 RA 报文后,提取其中的 64 位网络前缀,结合自身的 64 位接口标识符(早期通过 EUI-64 根据 MAC 地址生成,现代系统多采用 RFC 7217 随机稳定算法或隐私扩展)拼接成完整的 128 位 GUA 地址。
[! RFC 7217 ]
-
生成规则:通过
Hash(网络前缀/网络接口/网卡 secret key)生成后 64 位接口 ID。 -
稳定性:在同一个局域网或同一 Wi-Fi 下保持固定不变;但当设备连接到另一个不同的局域网时,生成的 LLA 会随之改变,兼顾局域网内寻址稳定性与跨网络追踪防护。
-
应用现状:macOS、iOS、Windows 以及现代 Linux(NetworkManager/systemd-networkd 默认配置)的主流标准。
-
-
特点:网络中无需中心服务器维护租约状态,路由器仅广播前缀,终端自主计算地址并通过 DAD 检测冲突后即可通信。
-
-
RDNSS(Recursive DNS Server)
-
背景:早期的 SLAAC 标准(RFC 4862)仅能下发网络前缀和默认网关,无法下发 DNS 服务器地址,导致纯 SLAAC 环境下主机无法解析域名。
-
机制:RFC 8106 为 RA 报文引入了 RDNSS 选项,允许路由器在 RA 广播中直接附带递归 DNS 服务器的 IPv6 地址与 DNSSL(DNS Search List),使终端在完全无状态的模式下即可完成完整的网络连接与域名解析配置。
-
-
DHCPv6(Dynamic Host Configuration Protocol for IPv6)
-
无状态 DHCPv6(Stateless DHCPv6):当 RA 中的 O(Other Configuration)标志位 置 1 时触发。终端通过 SLAAC 自行生成 IP 地址和网关,仅向 DHCPv6 服务器请求 DNS、NTP 等扩展网络参数。
-
有状态 DHCPv6(Stateful DHCPv6):当 RA 中的 M(Managed Address Configuration)标志位 置 1 时触发。类似于 IPv4 的传统 DHCP,终端的 IPv6 单播地址和全部网络参数均由 DHCPv6 服务器统一分配并维护租约状态。
-
注意点:DHCPv6 报文中不包含默认网关选项,IPv6 的默认网关永远通过 RA 报文中的源链路本地地址(LLA)获取。
-
IPv4 与 IPv6 关键概念对照
-
地址解析:IPv4 的 ARP 映射至 IPv6 的 ICMPv6 邻居请求/通告(NS/NA)。
-
私有地址:IPv4 的 RFC 1918 私网地址映射至 IPv6 的 ULA(
fd00::/8),但 IPv6 设计理念鼓励端到端公网直连(GUA),通常配合防火墙状态检测替代传统 NAT。 -
链路本地自动分配:IPv4 的 APIPA(
169.254.0.0/16)在 IPv4 中仅作为故障兜底,而 IPv6 的 Link-Local(fe80::/64)是协议栈运行的基础核心组件。 -
网络配置模式:IPv4 依赖「静态配置 / DHCP」;IPv6 支持「纯 SLAAC + RDNSS」、「SLAAC + 无状态 DHCPv6」以及「有状态 DHCPv6」。
多播(Multicast,组播)
-
通信模型:一对多(One-to-Many)。数据包从单一源节点发出,网络设备负责在分支节点复制流量,仅分发给加入了特定组播组的多个目标节点。
-
IPv4 vs IPv6 差异:
-
IPv4 中组播为可选扩展特性(地址段
224.0.0.0/4),底层局域网控制依赖 IGMP。 -
IPv6 取消了广播,底层基础设施协议(如 NDP 邻居发现、路由器通告)全面依赖多播实现。地址段固定为
ff00::/8,通过 MLD(Multicast Listener Discovery,基于 ICMPv6)进行组管理。
-
-
IPv6 关键多播地址:
-
ff02::1:链路本地所有节点(All-Nodes,功能类似于二层广播替代)。 -
ff02::2:链路本地所有路由器(All-Routers)。 -
ff02::1:ffxx:xxxx:被请求节点多播地址(Solicited-Node Multicast Address),用于替代 IPv4 ARP 的精准地址解析与 DAD 检测,避免唤醒链路上所有主机。
-
-
典型场景:
- 局域网服务发现(mDNS/SSDP):设备向本地组播地址发送查询或通告,让同一网段内的打印机、投屏或智能家居等终端在无需中心 DNS/DHCP 服务器的情况下快速相互发现与建立连接。
- IPTV 视频直播流分发:服务器仅向上游发送单份视频流,交换机与路由器在分叉节点按需复制并下发给加入对应组播频道的机顶盒,大幅降低骨干网和服务器的带宽负载。
- 路由协议邻居保活(如 OSPF):路由器周期性向特定组播地址(如
224.0.0.5或ff02::5)发送 Hello 报文,用于在无需预先配置对端 IP 的情况下自动发现直连邻居并维持链路可达状态。
任播(Anycast)
-
通信模型:一对最近之一(One-to-Nearest)。多个分布在不同地理位置的物理服务器配置完全相同的 IP 地址,并通过路由协议(局域网内用 OSPF/IS-IS,广域网用 BGP)向网络宣告这一相同前缀。
-
寻址机制:发送端发送普通单播数据包,底层路由系统依据路由度量(Metric、AS-Path 等拓扑距离)将数据包交付给「逻辑拓扑上最近」的一个节点。发送方和应用层无感知,底层网络路由器完成自动路由分流与容灾切换(某节点宕机撤销宣告后,流量自动收敛到次近节点)。
-
地址空间特征:
-
任播没有专门的独立保留地址段。
-
在 IPv6 中,任播地址与普通的单播地址(如 GUA)在语法上完全一致,仅在服务器网卡绑定和路由器路由发布时标记为任播模式。
-
-
协议与状态约束:由于 BGP 路由震荡或网络拓扑变化可能导致后续数据包被路由至不同物理节点,任播天然适配无状态(Stateless)协议或短连接交互(如 UDP、DNS 查询),长连接 TCP 需配合特定的会话保持或全局负载均衡机制。
-
典型场景:公共 DNS 解析服务(如
1.1.1.1、8.8.8.8、2001:4860:4860::8888)、DNS 根域名服务器集群、CDN 边缘接入节点、DDoS 高防清洗网络。
对比总结
-
目标对象数量:多播交付给所有加入该组的目标;任播仅交付给单个拓扑最优的目标。
-
地址表现形式:多播使用专用前缀(IPv6 为
ff00::/8);任播与常规单播共享同一地址空间。 -
网络决策依据:多播基于终端主机的「组加入/离开」控制状态构建分发树;任播基于网络路由器的「路由拓扑选路」将流量导向最近节点。