0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IPV6报文怎么进行通信

网络技术干货圈 来源:网络技术干货圈 2024-10-25 09:36 次阅读

转载请注明以下内容:

来源:公众号【网络技术干货圈】

作者:圈圈

ID:wljsghq

IPV6基础之邻居发现

写这篇文章的启发是在群里,看到一个小兄弟说有尝做一道IPV6的基础题,看到该消息想着自己也没啥事,就做一下,弄个饭钱也还行,然后就开始了。

拓扑图为题目的拓扑

bc40077c-90e9-11ef-a511-92fbcf53809c.png

拓扑图以上图为例子:

接下来就分析一下ipv6报文是怎么进行通信

在IPV4中,当主机需要和目标主机通信时,必须先通过ARP协议获得目的主机的链路层地址。在IPV6中,同样需要从IP地址解析到链路层地址的功能。邻居发现协议实现了这个功能。

ARP报文是直接封装在以太网报文中,以太网协议类型为0x0806,普遍观点认为ARP定位为2.5层的协议。ND本身基于ICMPV6实现,以太网协议类型为0x86DD,即IPV6报文,IPV6下一个报头字段值为58,表示ICMPV6报文,由于ND协议使用的所有报文均封装在ICMPV6报文中,一般来说,ND被看作第3层的协议。在第三层完成地址解析,主要带来以下几个好处:

(1)地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。

(2)可以使用三层的安全机制避免地址解析攻击

(3)使用组播方式发送请求报文,减少了二层网络的性能压力。

通过一个图展示请求跟通告的流程

bc6e240e-90e9-11ef-a511-92fbcf53809c.png

IPV6邻居请求

以上图为例,当PC2访问PC1时,在PC1接口上抓包,看到的邻居发现报文是什么样的?

bc867a04-90e9-11ef-a511-92fbcf53809c.png

邻居请求

IPv6节点通过邻居请求NS(Neighbor Solicitation)消息可以得到邻居的链路层地址,检查邻居是否可达,也可以进行重复地址检测

type值位135为NS报文

请求的目标的IP地址

请求目标IP地址是什么东西?

从上图来来讲,就是我路由器要去访问PC1,那么我知道PC1的的IP地址,但是我不知道他的MAC地址,我要去根据IP地址找到他的MAC地址。

在报文中,这个请求的目标IP地址是放在Target Address字段里面的,它必须不是多播地址。

ICMPV6 Option字段

Source link-layer address源链路层地址:发送者的链路层地址,如果知道。如果Source Address是未指定地址,必须不包括在内。否则,有地址的链路层上应当包括源链路层地址。

被请求组播地址的组成

首先我们看到报文,从三层开始分析

发起这个报文的源地址是一个链路本地地址,而这个地址刚好是R路由器和PC1所连接的接口地址,这说明了在路由器上不存在着PC1的MAC地址,无法进行普通报文的二层封装,需要获取到MAC地址以此来封装目的MAC。

然后我们看三层报文中的目的地址是一个不认识的地址,那么这个地址是从什么地方而来的呢?这又是干什么的?

在图中我们把这个地址标注为被请求节点组播地址,那么这个被请求节点组播地址是用来干什么的?

我们现在就对这个被请求节点组播地址来分析一下看它的地址,把这个地址分为三部分来看

ff02:ff3a:a9d1

首先ff02::1是一个组播地址,简单理解组播地址就是同一个组的地址都能接受到该报文。

然后在看ff02:ff

先看前面这104位地址,这104位地址的组成是在组播地址后面加了两个ff,这就是在RFC中规定的被请求节点组播地址的前缀

然后我们看后面24位地址

3a:a9d1这串数字在上面的图中看着是不是有点眼熟呢?

观察一下,请求的单播地址,也就是PC1的地址最后面的24位数字不就是3a:a9d1,这样一看,原来他们之间还是有关联的

在R路由器发起这个报文的时候,目的地址其实就是PC1。

被请求节点组播MAC的组成

以太网传输IP单播报文的时候,链路层封装的目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,因此在数据链路层使用的是组播MAC地址。在802.3标准中,MAC地址的高字节最低bit位是组播地址标识位,该bit为1,表示该地址为组播MAC地址。广播MAC地址可以看作是组播的特殊形式:0xFFFF-FFFF-FFFF。

IANA规定,IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。

安装IANA规定我们来解析一下这个被请求节点组播MAC是否符合规定

我们就先看高16位

33:33 符合IANA规定的高16位对吧

我们在看后面的32位

IPV6组播地址:ff02:ff3a:a9d1

组播MAC地址低位32位:ffa9:d1

完成符合IANA规定的组播MAC

IPV6邻居通告

bca7cc18-90e9-11ef-a511-92fbcf53809c.png

邻居通告

ICMPv6邻居通告NA(Neighbor Advertisement)消息是IPv6节点对ICMPv6邻居请求NS(Neighbor Solicitation)消息的响应,同时IPv6节点在链路层变化时也可以主动发送NA消息。

对于请求的通告

从图中我们看Target Address字段,他是自身的IPV6地址,这是在给路由器回复确认,你请求的地址给你回复了。

对于请求的通告,是在NS消息(该消息催促这个通告)中的Target Address字段。对于非请求通告,是其链路层地址已经改变的地址。Target Address必须不是多播地址。

ICMPV6 Options字段

Target link-layer address: 目标的链路层地址,即,通告发送者。当响应多播请求时,在有地址的链路层上必须包括此选项。当响应单播Neighbor Solicitation时应当包括此选项,响应自身的MAC地址给路由器。

IPV6邻居表

在IPV4中我们可以通过ARP表项查看IP地址对应的MAC地址和接口,那么在IPV6中我们是不是也有类似ARP表项的一种表呢?

没错,在IPV6中我们可以通过邻居表查看到对应的信息

通过以下命令可以查看邻居表

displayipv6neighbors
#查看邻居表以及邻居表回显信息
displayipv6neighbors
-----------------------------------------------------------------------------
IPv6Address:20014005211FE3A:A9D1
Link-layer:5489-9821-4f6dState:REACH
Interface:GE0/0/0Age:0
VLAN:-CEVLAN:-
VPNname:IsRouter:FALSE
SecureFLAG:UN-SECURE

IPv6Address:20014005:9
Link-layer:5489-9807-7f7cState:REACH
Interface:GE0/0/1Age:0
VLAN:-CEVLAN:-
VPNname:IsRouter:FALSE
SecureFLAG:UN-SECURE

IPv6Address:20014005:10
Link-layer:5489-985b-37dbState:REACH
Interface:GE0/0/1Age:0
VLAN:-CEVLAN:-
VPNname:IsRouter:FALSE
SecureFLAG:UN-SECURE

-----------------------------------------------------------------------------
Total:3Dynamic:3Static:0


回显字段解释

项目 描述
IPv6 Address 邻居的IPv6地址。
Link-layer 邻居的链路层地址(邻居的MAC地址)。
State 邻居项的状态,有以下5种状态: INCMP:邻居不可达。正在进行地址解析,邻居的链路层地址未探测到,如果解析成功,则进入REACH状态。 REACH:邻居可达。表示在规定时间(邻居可达时间,缺省情况下是30秒)内邻居可达。如果超过规定时间,该表项没有被使用,则表项进入STALE状态。 STALE:邻居是否可达未知。表明该表项在规定时间(邻居可达时间,缺省情况下是30秒)内没有被使用。此时除非有发送到邻居的报文,否则不对邻居是否可达进行探测。 DELAY:邻居是否可达未知。已向邻居发送报文,如果在指定时间内没有收到响应,则进入PROBE状态。 PROBE:邻居是否可达未知。已向邻居发送邻居请求报文,探测邻居是否可达。在规定时间内收到回复,则进入REACH状态;没有收到回复,则进入INCMP状态。
Interface 邻居项所属的接口名称。
Age 邻居项的建立时间,分为静态和动态两种情况: 静态项显示“–”。 动态项显示上次可达以来经过的时间(单位是分钟),如果始终不可达则显示“#”(只适用于动态项)。
VLAN 邻居所属的VLAN编号。
VPN name 邻居所属的VPN实例名称。
CEVLAN 内层VLAN编号。
Is Router 邻居发送的NA报文中是否携带R标记: 当NA报文中携带R标记时,则显示“TRUE”。此时邻居是路由设备。 当NA报文中没有携带R标记时,则显示“FALSE”。此时邻居可能是PC或者是发送的NA报文中没有携带R标记的路由设备。
Secure FLAG 该邻居表项是否安全,分为安全和非安全两种情况: 如果是静态邻居表项或邻居使能了邻居安全功能则显示“SECURE”。 如果邻居没有使能安全功能,并且是动态邻居表项则显示“UN-SECURE”。
Total 所有的邻居表项数目。
Dynamic 动态邻居表项数目。
Static 静态邻居表项数目。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5381

    浏览量

    171140
  • 通信
    +关注

    关注

    18

    文章

    5973

    浏览量

    135865
  • 网络
    +关注

    关注

    14

    文章

    7520

    浏览量

    88643
  • IPv6
    +关注

    关注

    6

    文章

    683

    浏览量

    59328

原文标题:【路由交换】IPV6基础之邻居发现

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IPv6进阶:VRRP6实验配置

    的相邻节点间通信,有效域仅限于本地链路。链路本地地址的报文永远不会被IPv6交换机转发。配置VRRP6的虚拟IPv6地址时,第一个虚拟
    发表于 11-23 09:12 1246次阅读

    IPv6地址是什么,IPv6的意思

    协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。  五,IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文
    发表于 01-25 16:39

    基于IPv6的Winsock网络编程

    需求,提供网络传输的服务质量(Qos)。IPv6还提供对组播的支持,以便使用有限的带宽对多点通信进行支持,充分解决网络资源,这对大部分多媒体应用是非常必要的。1 IPv6网络编程
    发表于 05-08 06:14

    阿里云企业IPv6部署方案

    ,用于和客户的线下其他环境的IPv4公网进行通信IPv6客户发起访问时,流量从IPv6转换服务实例的v
    发表于 07-09 16:18

    IPv6的特色应用

    业务匮乏一直是制约IPv6发展的重要因素。随着移动互联网的发展,IPv6的特色应用业务渐渐浮出水面。1 IPv6与家庭网络“家庭网络”已经成为全业务运营商大力发展家庭用户的重要业务举措。然而,由于
    发表于 07-15 08:18

    企业如何进行IPv6地址规划与分配

    本文旨在以具体案例探讨企业如何进行IPv6地址规划与分配,从而合理和有效地使用IPv6地址资源。
    发表于 12-28 07:14

    labview UDP通信实现IPV6

    labview自带的工具包不支持IPV6,借助于.NET。可轻松实现IPV6通信。后期完成TCP-IPV6功能时,再更新附件代码。*附件:Debug.zip2022年12月21日,实
    发表于 12-20 16:35

    华为IPV6胶片

    IPv4相比,IPv6具有以下特点:近乎无限的地址空间更简洁的报文头部内置的安全性更好的QoS支持更好的移动性IPv6地址与IPv4地址表
    发表于 06-24 13:54 51次下载

    IPv6,IPv6的应用,IPv6的原理是什么?

    IPv6,IPv6的应用,IPv6的原理是什么? IPv6是Internet Protocol Version 6的缩写,其中Intern
    发表于 03-29 17:19 2079次阅读

    IPv6结构,什么是IPv6结构

    IPv6结构,什么是IPv6结构 本文将阐述IPv6 报头的结构并将其与IPv4 报头相比较。此外还将讨论Extension(扩展)报头,这是
    发表于 04-06 17:06 1057次阅读

    IPv6的地址,什么是IPv6的地址

    IPv6的地址,什么是IPv6的地址 和IPv4相比,IPv6的主要改变就是地址的长度为128位,也就是说可以有2的128次方的IP地址
    发表于 04-06 17:07 683次阅读

    浅谈IPV6(介绍IPV6的特点和功能)

    摘要: 随着互联网的快速发展,正在兴起新的互联网协议一一IPv6。本文系统的介绍了IPv6的特点、功能, 并与当前的互联网协 议进行了全面的比较, 阐明了IPv6的优越性, 以及
    发表于 02-12 09:28 73次下载

    IPv6技术 华为3Com技术有限公司_部分1

    本书是华为3Com网络学院的教材,详细讨论了IPv6技术,包括IPv6协议报文结构、IPv6地址结构、地址配置技术、单播数据通信
    发表于 04-11 14:29 0次下载

    IPv4与IPv6无状态的双向通信机制

    IPv4服务器被IPv6用户访问的场景和IPv4网络访问IPv6资源的场景分别提出了相应的通信流程,结合已有的无状态
    发表于 01-04 14:40 0次下载
    <b class='flag-5'>IPv</b>4与<b class='flag-5'>IPv6</b>无状态的双向<b class='flag-5'>通信</b>机制

    什么是ipv6 ipv4与ipv6的区别

    ipv6的英文全称是Internet Protocol Version 6,中文为互联网协议第6版。ipv6是互联网工程任务组设计的用于替代IPv
    的头像 发表于 09-03 16:03 2.2w次阅读