在IPv6中,ARP(地址解析协议)被替代为邻居发现协议(Neighbor Discovery Protocol,NDP)。NDP是IPv6网络中用于发现邻居节点(相邻设备)的协议,类似于IPv4中的ARP。但与ARP不同,NDP不仅提供了邻居解析的功能,还提供了路由器发现、地址自动配置、重定向消息等功能。
邻居发现(Neighbor Discovery):
- 作用: 确定IPv6网络中其他节点的链路层地址,以便在进行通信时将数据包发送到正确的目的地。
- 示例: 当IPv6主机 A 需要向主机 B 发送数据时,它首先使用邻居发现协议确定主机 B 的链路层地址(MAC地址),然后将数据包发送到该地址。
路由器发现(Router Discovery):
- 作用: 允许主机发现其连接到的IPv6网络上的路由器,以便获取IPv6路由信息。
- 示例: 当IPv6主机启动时,它使用路由器发现协议监听特定的路由器广播消息,以获取网络中可用路由器的信息。然后,主机可以选择一个或多个路由器作为默认网关。
地址自动配置(Address Autoconfiguration):
-
作用: 支持IPv6地址的自动配置,使得IPv6主机可以通过监听路由器的广播消息来获取自己的IPv6地址。
-
示例: 当IPv6主机加入一个网络时,它可以使用地址自动配置功能获取一个或多个IPv6地址。主机监听网络上的路由器发送的广播消息,以获得可用的IPv6地址前缀,然后根据前缀规则为自己分配一个唯一的IPv6地址。
注:
以下是地址自动配置的详细过程:
- 获取网络前缀: 当一个IPv6主机加入一个网络时,它首先会监听网络上路由器发送的路由器通告(Router Advertisement)消息。这些消息包含了网络的IPv6前缀信息,主机会从中获取可用的网络前缀。
- 生成全球唯一地址: 主机使用获取到的网络前缀以及自身的接口标识符(Interface Identifier)来生成一个IPv6地址。接口标识符可以通过多种方式生成,其中最常见的方式是基于主机的MAC地址,但也可以使用随机数或其他方法生成。
- 重复地址检测: 主机生成的IPv6地址可能会与网络上其他主机的地址冲突,因此主机会执行重复地址检测。它会发送一个重复地址检测请求(Duplicate Address Detection,DAD),确认生成的地址是否已经被其他主机使用。
- 通告地址: 如果重复地址检测通过,主机就会开始使用生成的IPv6地址,并发送一个通告(Neighbor Solicitation)消息,通知其他主机它的IPv6地址。
- 维护地址状态: 一旦主机成功获取到IPv6地址并开始使用,它会定期与网络上的路由器通信,以确保地址仍然是有效的。如果网络拓扑发生变化或地址不再可用,主机会根据情况进行地址重新配置。
重定向消息(Redirect Messages):
- 作用: 允许路由器向主机发送重定向消息,通知主机更好的下一跳路由器地址。
- 示例: 当主机发送数据包到一个路由器,并且路由器知道有更好的路径时,它可以向主机发送重定向消息,告知主机使用更优的下一跳路由器地址来发送数据。