03 IPv6 与邻居路由机制与实现详解

03 IPv6 与邻居路由机制与实现详解

1. 目录特点

net/ipv6/~107 文件)。顶层 net/Makefileobj-y += ipv6/ 使 IPv6 底座常编入内核,具体特性仍由 CONFIG_IPV6 及各子选项控制。

2. 地址与接口配置

模块 作用
addrconf.c SLAAC、静态地址、ipv6_add_addr
addrlabel.c 源地址选择标签
anycast.c 任播

RTNETLINKRTM_NEWADDR(AF_INET6)对接 ip -6 addr

3. 邻居发现 ND

ndisc.c 实现 RFC 4861

  • Router Solicitation/Advertisement;
  • Neighbor Solicitation/Advertisement(替代 ARP);
  • Redirect。

挂在 neighbour 子系统 上,协议号 NDISC

4. 路由 fib6

文件 作用
ip6_fib.c FIB6 表
route.c ip6_route_outputfib6_lookup
ip6_flowlabel.c 流标签

策略路由ip -6 rule)与 ipv4 对称。

5. 扩展头与分片

  • exthdrs.c — Hop-by-Hop、Routing、Destination;
  • reassembly.c — 分片重组;
  • seg6.c / rpl.c 等 — 可选 SRv6、RPL(配置依赖)。

6. 传输层

TCPv6UDPv6ICMPv6RAWv6 与 ipv4 共享大量 tcp_ipv4.c/tcp_ipv6.c 划分(实际文件在 ipv6 与 net/ipv4 协同)。

inet6_connection_sock 处理双栈 socket。

7. Netfilter IPv6

net/ipv6/netfilter/ip6tablesnf_defrag_ipv6NAT66 等。

8. RK3588

  • 嵌入式产品 可关闭 IPv6 减体积;
  • 双栈产品需 ND + dhcpv6 或 SLAAC;
  • Thunder Boot 无直接 net/ipv6 补丁(通用栈)。

专文:rk3588-kernel-6.1-net-ipv6分析_zh.md

9. 小结

IPv6 在 RK3588 上与 ipv4 共享 core/dev;差异在 ND 替代 ARP128 位地址路由

文章互动

阅读 --

留言

0 条留言

正在加载留言…