IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置

NA消息用单播还是多播的判断理由

  • 单播回复(Unicast):
    • 如果客户端发送 RS 消息时,使用的是一个全局地址或链路本地地址作为源地址,则 RA 消息会单播回复到客户端的源地址。
    • 这种方式减少了网络中的广播流量,仅回复给请求的客户端。
  • 多播回复(Multicast):
    • 如果 RS 消息的源地址为未指定地址(::,通常出现在刚启动或接口初始化时),则 RA 消息会通过多播发送到所有节点多播组地址(ff02::1)。
    • 这是因为路由器不知道具体哪个客户端发送了 RS 消息,或者 RS 可能针对多个客户端需求。
  • 相关说明在RFC4861

NA消息 RTR,SOL,OVR标志位

RTR 标志位(Router Flag)

表示发送 NA 消息的节点是否是一个路由器。

  • 取值:
    • 1:发送此 NA 消息的节点是路由器。
    • 0:发送此 NA 消息的节点不是路由器。
  • 作用:
    • 如果 RTR=1,接收方可能将其记录为路由器,用于默认网关等功能。
    • 如果 RTR=0,接收方会认为发送方只是一个普通主机。
  • 设置规则:
    • 路由器在发送 NA 消息时,通常会将 RTR 设置为 1。
    • 普通主机在发送 NA 消息时,RTR 应设置为 0。
  • 配置影响:
    • 需要在路由器启用 IPv6 转发功能(net.ipv6.conf.all.forwarding=1)并通过邻居发现协议正确声明自己为路由器。

SOL 标志位(Solicited Flag)

表示该 NA 消息是否是对特定的 Neighbor Solicitation (NS) 消息的响应。

  • 取值:
    • 1:该 NA 消息是响应一个特定的 NS 消息(即 solicited NA)。
    • 0:该 NA 消息是一个 unsolicited NA 消息。
  • 作用:
    • Solicited NA 消息: 用于更新邻居缓存表。
    • Unsolicited NA 消息: 用于广播特定地址的所有权声明,防止地址冲突。
  • 典型场景:
    • 如果节点接收到对自己地址的 NS 消息,会发送带 SOL=1 的 NA 消息作为响应。
    • 如果节点主动通知网络其地址的变化,会发送带 SOL=0 的 NA 消息。
    • 如果是对 NS 消息的直接响应,SOL=1。如果是广播性质的地址声明,SOL=0。

OVR 标志位(Override Flag)

决定接收节点是否应该覆盖其现有的邻居缓存表条目。

  • 取值:
    • 1:接收节点应更新现有的邻居缓存条目。
    • 0:接收节点不应覆盖现有的缓存条目。
  • 作用:
    控制邻居缓存表的更新策略:
    • OVR=1:表示发送方地址信息应被接收方用于更新邻居缓存表。
    • OVR=0:接收方仅在当前条目为 "stale" 状态时更新缓存表。
  • 设置规则:
    一般情况下,节点会在以下场景下设置 OVR 标志:
    • 地址信息确实发生变化,需要通知邻居更新。
    • 确保邻居缓存条目不会因为错误的消息覆盖有效条目。

ndppd代理和linux kernel发送na

  • 如果 net.ipv6.conf.all.forwarding=1,系统内核会自动为启用的接口处理 NS 消息,并发送 NA 消息。
  • ndppd 的目的是接管系统内核的部分 NDP 功能,特别是在 Proxy NDP 场景下。如果未正确配置,ndppd 和系统内核可能同时响应同一个 NS 消息,导致发送两条 NA 消息。网络抓包时,可以看到同一接口上对一个 NS 消息发出两条 NA 消息,可能来自内核和 ndppd。两条 NA 消息可能携带不一致的标志(如 Rtr 或 Ovr),或声明的链路层地址不同。

ndppd和linux kernel设置是否发送na

linux kernel控制发送na的参数,比如设置为1的demo如下:

shell 复制代码
sysctl -w net.ipv6.conf.<interface>.proxy_ndp=1

ndppd的demo:

shell 复制代码
interface eth1 {
  proxy eth0 {
    router yes
  }
}
相关推荐
小武~7 分钟前
嵌入式Linux安全启动全解析:从原理到实战
linux·网络·安全
橘子1329 分钟前
Linux网络(二)——socket编程
linux·网络
报错小能手29 分钟前
计算机网络自顶向下方法24——运输层 可靠数据传输 超时间隔加倍 快速重传 是回退n步还是选择重传
网络·计算机网络·php
nassi_43 分钟前
文件属性获取与目录IO操作详解
linux·服务器·网络
2401_841495642 小时前
【计算机网络】计算机网络体系结构与参考模型
网络·计算机网络·ip·tcp·osi·分层结构·协议数据单元
QT 小鲜肉2 小时前
【QT/C++】Qt网络编程进阶:TCP网络编程的基本原理和实际应用(超详细)
c语言·开发语言·网络·c++·qt·学习·tcp/ip
大隐隐于野10 小时前
tcp 丢包分析
linux·服务器·网络
qqxhb12 小时前
系统架构设计师备考第64天——网络构建关键技术
网络·系统架构·mtbf·mttr·冗余硬件·软件热备·快速检测
哈乐16 小时前
网工应用题:配置命令补全类题目
服务器·前端·网络
梁正雄16 小时前
19、docker跨主机网络 Overlay\Underlay
网络·docker·容器