社区编辑申请
注册/登录
IPv6邻居发现,地址重复检测,及路由器发现机制,一分钟了解下
网络 通信技术
IPv6 邻居发现协议使用五种类型的 ICMPv6 消息,实现下面一些功能:地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现、地址自动配置和重定向等功能。

一、IPv6基础

IPv6(Internet Protocol Version 6,互联网协议版本 6)是网络层协议的第二代标准协议,也被称为 IPng(IP Next Generation,下一代互联网协议),它是 IETF(Internet Engineering Task Force,互联网工程任务组)设计的一套规范,是 IPv4 的升级版本。IPv6 和 IPv4 之间最显著的区别为:IP地址的长度从 32 比特增加到 128 比特。

二、IPv6报文和IPv4报文对比

IPv6邻居发现,地址重复检测,及路由器发现机制,一分钟了解下

IPv6报文更加简洁

三、IPv6 邻居发现协议介绍

IPv6 邻居发现(Neighbor Discovery,ND)协议使用五种类型的 ICMPv6 消息,实现下面一些功能:地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现、地址自动配置和重定向等功能。

IPv6邻居发现,地址重复检测,及路由器发现机制,一分钟了解下

1. 地址解析

获取同一链路上邻居节点的链路层地址(与IPv4 的ARP功能相同),通过邻居请求消息NS和邻居通告消息NA实现。

IPv6邻居发现,地址重复检测,及路由器发现机制,一分钟了解下

  • 节点 A 以组播方式发送 NS 消息。NS 消息的源地址是节点 A 的接口 IPv6 地址,目的地址是节点 B 的请求节点组播地址,消息内容中包含了节点 A 的链路层地址和请求的目标地址。
  • 节点 B 收到 NS 消息后,判断报文的目标地址是否为自己的 IPv6 地址。如果是,则节点 B 可以学习到节点 A 的链路层地址,并以单播方式返回 NA 消息,其中包含了自己的链路层地址。
  • 节点 A 从收到的 NA 消息中就可获取到节点 B 的链路层地址。

2. 验证邻居是否可达

在获取到邻居节点的链路层地址后,通过邻居请求消息 NS 和邻居通告消息 NA 可以验证邻居节点是否可达。

  • 节点发送 NS 消息,其中目的地址是邻居节点的 IPv6 地址。
  • 如果收到邻居节点的确认报文,则认为邻居可达;否则,认为邻居不可达。

3. 重复地址检测

当节点获取到一个IPv6 地址后,需要使用重复地址检测功能确定该地址是否已被其他节点使用(与IPv4 的免费ARP功能相似)。

IPv6邻居发现,地址重复检测,及路由器发现机制,一分钟了解下

  • 节点 A 发送 NS 消息,NS 消息的源地址是未指定地址::,目的地址是待检测的 IPv6 地址对应的被请求节点组播地址,消息内容中包含了待检测的 IPv6 地址。
  • 如果节点 B 已经使用这个 IPv6 地址,则会返回 NA 消息。其中包含了自己的 IPv6 地址。
  • 节点 A 收到节点 B 发来的 NA 消息,就知道该 IPv6 地址已被使用。反之,则说明该地址未被使用,节点 A 就可使用此 IPv6 地址。

4. 路由器发现/前缀发现及地址无状态自动配置

路由器发现/前缀发现是指节点从收到的 RA 消息中获取邻居路由器及所在网络的前缀,以及其他配置参数。

地址无状态自动配置是指节点根据路由器发现/前缀发现所获取的信息,自动配置 IPv6 地址。

路由器发现/前缀发现通过路由器请求消息 RS 和路由器通告消息 RA 来实现,具体过程如下:

  • 节点启动时,通过 RS 消息向路由器发出请求,请求前缀和其他配置信息,以便用于节点的配置。
  • 路由器返回 RA 消息,其中包括前缀信息选项(路由器也会周期性地发布 RA 消息)。
  • 节点利用路由器返回的 RA 消息中的地址前缀及其他配置参数,自动配置接口的 IPv6 地址及其他信息。

前缀信息选项中不仅包括地址前缀的信息,还包括该地址前缀的首选生命期(preferred lifetime)和有效生命期(valid lifetime)。节点收到周期性发送的 RA 消息后,会根据该消息更新前缀的首选生命期和有效生命期。

  • 有效生命期:表示前缀有效期。在有效生命期内,通过该前缀自动生成的地址可以正常使用;有效生命期过期后,通过该前缀自动生成的地址变为无效,将被删除。
  • 首选生命期:表示首选通过该前缀无状态自动配置地址的时间。首选生命期过期后,节点通过该前缀自动配置的地址将被废止。节点不能使用被废止的地址建立新的连接,但是仍可以接收目的地址为被废止地址的报文。首选生命期必须小于或等于有效生命期。

5. 重定向功能

当主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送 ICMPv6 重定向消息,通知主机选择更好的下一跳进行后续报文的发送(与 IPv4的 ICMP 重定向消息的功能相同)。

同时满足下列条件时,设备会发送 ICMPv6 重定向报文:

  • 接收和转发数据报文的接口是同一接口;
  • 被选择的路由本身没有被 ICMPv6 重定向报文创建或修改过;
  • 被选择的路由不是设备的缺省路由;
  • 被转发的 IPv6 数据报文中不包含路由扩展头。

 

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2022-06-20 22:37:25

Linux操作系统命令

2022-06-15 08:21:49

Linux运维工程师

2022-06-16 17:02:49

微软智能云混合云Azure

2022-06-15 11:02:40

网络安全运营

2022-06-15 09:01:41

2022-06-22 09:19:55

HDC鸿蒙ADB命令

2022-06-15 11:51:14

Vue3开发避坑

2022-06-09 09:27:16

前端行业生存

2022-06-16 07:32:38

VSCodePython插件

2022-06-23 14:03:26

混合ITCIOIT管理工具

2022-06-09 10:12:01

网络安全人工智能威胁监测

2022-06-24 11:14:00

美团开源

2022-06-16 15:42:16

攻击面管理ASM

2022-06-23 11:42:22

MySQL数据库

2022-06-15 16:16:21

分布式数据库鸿蒙

2022-06-24 15:13:17

区块链数字资产加密货币

2022-06-14 14:03:06

网络安全从业者网络安全赎金

2022-06-16 11:33:57

物联网区块链科技

2022-06-16 10:31:26

2022-06-24 14:07:06

机器人供应链人工智能

同话题下的热门内容

CAP,能少了P?你知道吗?聊聊实现 6G 愿景所需技术进步的问题

编辑推荐

FTP与SFTP两者有什么区别你的手机支持5Gwifi吗?5G上网真的很快吗?VXLAN与EVPN的结合使用VXLAN技术介绍:三层的网络来搭建虚拟的二层网络什么是通信原理?原来这么简单
我收藏的内容
点赞
收藏

51CTO技术栈公众号