IPv6基础知识

IPv6地址

IPv6特点

与IPv4相比,IPv6具有以下特点:
近乎无限的地址空间。
更简洁的报文头部。
内置的安全性。
更好的QoS支持。
更好的移动性。
编址层次等级。

地址表示法

IPv4地址表示
二进制:
10101100 00010000 00000001 00000001
十进制:172.16.1.1

IPv6地址表示
十六进制:2001:0410:0000:0001:0000:0000:0000:45ff

IPv6压缩表示
2001:0410:0000:0001:0000:0000:0000:45ff
::压缩 连续的0
2001:0410:0000:0001::45ff
错误压缩 只可以有一处,多处压缩无法判断到底每处分别有几段
2001:0410::0001::45ff 错误!!!

IPv6地址的压缩表示
2001:0410:0000:0001:0000:0000:0000:45ff
压缩前导的0
2001:410:0:1:0:0:0:45ff
注意
::压缩和压缩前导0可以同时使用
2001:410:0:1::45ff

例:
FF02:0:0:0:0:0:0:0:1—FF02::1
0:0:0:0:0:0:0:1–::1
0:0:0:0:0:0:0:0–::
当使用ipv6协议携带端口号时,需要使用中括号来区分;
http://[2031:0:130F::9C0:6A:130B]:8080/index/html

IPv6地址类型

IPv6存在三种类型:

  1. 单播(Unicast)
  2. 任意波(Anycast)
  3. 多播(组播)(Multicast)
    和IPv4相比,IPv6地址有一个重要的不同,IPv6没有广播地址。但是,IPv6地址协议提供了一个包含“全部节点”的多播地址,同等于IPv4的广播地址。

全球单播地址

单播地址表示单台设备的地址。一个全球单播地址是指这个地址时全球唯一的。
下图中,前64位为网络部分,后64位为主机部分
在这里插入图片描述
地址的主机部分称为接口ID。是因为一台主机可拥有不止一个IPv6接口,使用地址标识一台主机更加准确。但精确性也就仅如此,单个接口也可以拥有多个IPv6地址,并且能够拥有一个附加的IPv4地址,在这样的实例中,接口ID仅仅表示该接口的几个标识符之一。

除了长度不同,IPv6地址与IPv4地址的子网标识符的位置不同,IPv6中子网标识符在网络部分,而不是主机部分,这样所有v6地址的接口ID就有一致的大小,简化了地址解析的复杂度。
而且,使用地址的网络部分作为子网ID,会产生一个更加明确的分工,功能更加清晰:网络部分提供一台设备到下行专用数据链路的定位,而主机部分提供这条数据链路上该设备的标识。

1、AGUA 全球可聚合单播地址 IPV6的公网地址(需申请),全球单播传递
目前全球已规划地址----2000::/3
范围–2000::-----3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

其中 2001::/16 -----当下的IPV6实验室使用地址 目前ipv6 intenet地址
2002::/16-----------6to4 tunnel 专用地址

标识IPv6的地址类型

在这里插入图片描述
举个例子:当前指定分配个6Bone(公用IPv6研究网络)使用的前缀开始于3ffe,而目前由Rip分配的IPv6地址开始于2001.
2000::/3

本地单播地址

IPv6也拥有链路本地单播地址(注:IPv4的链路本地单播地址为:168.254.0.0,后16位随机分配),使用范围限定在单条链路上。
链路本地单播地址的起始10位永远是:1111111010(FE80::/10),该地址允许链路上的设备直接创建IPv6地址和该链路上的其他设备通信,而无需给它们分配全球前缀,或者说无需知道全球前缀。

Link-local地址的网络位固定为FE80::/64,主机位使用本地以太网接口的MAC地址来生成link-local地址主机位;串行链路无MAC地址,将循环借用本设备上以太网接口的MAC;

作用:(1)在同一广播域内可以通讯使用—由于本地多接口可能使用相同MAC转换,故在
使用link-local地址访问对端时,需要定义出接口;
(2)常常作为动态路由协议生成的路由表条目中的下一跳地址;
因为IPV6存在多宿主概念,该地址最稳定;

地址自动配置(MAC-to-EUI64转换法)

主机位生成方法:
Link-local地址--------------网络位FE80::/64 后64位使用EUI-64补充
EUI-64简易的用户界面:
全局/本地(Universal / Local)
在这里插入图片描述
如果一台设备仅仅需要和所在链路上的设备通信,那么它自动配置的链路本地地址就已经足够了。但是如果主机需要和链路以外的设备通讯,那么就需要一个更大范围的地址----通常是一个全球IPv6地址。可以通过两种途径获取该地址:有状态或无状态的地址自动配置。

有状态地址自动配置:借助DHCPv6 服务器来获取必要的地址信息。它要么根据预先配置查找服务器,要么由收到的可能设置了M标记的路由器通告消息来告诉它使用DHCPv6服务器。

无状态地址自动配置:主机从它收到的路由器通告中获取一个或多个链路前缀,然后加上它先前确定的接口ID。举例:收到一个路由器通告消息的前缀为:3ffe:1104:404:1::/64 前缀加接口构成全球地址:3ffe:1104:404:1:0200:0bff:fe0a:2d51

任意播地址

一个任意播地址(Anycast address ,也可称为任播地址或泛播地址)表示的更像一种服务而不是一台设备,并且相同的地址可以驻留在提供相同服务的一台或多台设备中。
如图,某服务由3台路由器提供,但却是通过IPv6地址 3ffe:205:1100::15 来进行该服务的所有通告。
在这里插入图片描述
使用任意播的好处:路由器总是选择到达“最近的”或“代价最低的”服务器的路由。并且如果一台服务器变得不可用,路由器能够把路由指向下一台最近的服务器。
任意播地址仅是根据它们提供的服务功能定义的,而不是根据它们的格式,而且理论上来说可能是任何范围内的任意一个IPv6单播地址。

多播地址

多播地址标识的不是一台设备,而是一组设备----一个多播组。一个多播数据包通常包括一个单播地址为源地址,多播地址为目标地址。多播地址不可能作为源地址出现。

IPv6的多播地址格式如下。起始8位始终为全 1,并且后跟的思维被指定为标记位。标记位前3位目前没有使用,全部设为0.第4位指出该地址是一个永久的,公认的地址(设为0),还是一个管理分配使用的暂时的地址(设为1)。接下来四位表示该地址的范围,如表2-2.表2-3显示了几个公认的IPv6多播地址,都属于链路本地范围。最后112位用来作为组ID,标识各个不同的多播组。目前的用法是设置前80位为0,用后32位。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

嵌入的IPv4地址

IPv4兼容性地址,用于6to4 tunnel专用

假设IPV4地址为192.168.1.1
192----1100 0000–c0
168----1010 1000–a8
1-------0000 0001–01
1-------0000 0001–01
192.168.1.1的IPV4兼容性地址为2002:c0a8:0101::/48

IPv6包头格式

IPv6报文由IPv6基本报头、IPv6扩展报头以及上层协议数据单元三部分组成。

上层协议数据单元一般由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。

IPv6基本报头

在这里插入图片描述
在这里插入图片描述
Pv6报头格式中主要字段解释如下:

Version:版本号,长度为4bit。对于IPv6,该值为6。
Traffic Class:流类别,长度为8bit。等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段只能表示最大长度为65535字节的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
Next Header:下一个报头,长度为8bit。该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。
Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个设备,该数值减去1,当该字段的值为0时,数据报将被丢弃。
Source Address:源地址,长度为128bit。表示发送方的地址。
Destination Address:目的地址,长度为128bit。表示接收方的地址

IPv6报文抓包示例:

在这里插入图片描述

IPv6扩展报头:

在IPv4中,IPv4报头包含可选字段Options,内容涉及security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用设备很大的资源,因此实际中也很少使用。

IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,扩展报头被置于IPv6报头和上层协议数据单元之间。一个IPv6报文可以包含0个、1个或多个扩展报头,仅当需要设备或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,这样便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展报头总是8字节长度的整数倍。

当使用多个扩展报头时,前面报头的Next Header字段指明下一个扩展报头的类型,这样就形成了链状的报头列表。如下图所示,IPv6基本报头中的Next Header字段指明了第一个扩展报头的类型,而第一个扩展报头中的Next Header字段指明了下一个扩展报头的类型(如果不存在,则指明上层协议的类型)。
在这里插入图片描述

IPv6扩展报头中主要字段解释如下:

Next Header:下一个报头,长度为8bit。与基本报头的Next Header的作用相同。指明下一个扩展报头(如果存在)或上层协议的类型。
Extension Header Len:报头扩展长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)。
Extension Head Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合。

目前,RFC 2460中定义了6个IPv6扩展头:逐跳选项报头、目的选项报头、路由报头、分段报头、认证报头、封装安全净载报头.

逐跳选项报头:

(代表该报头的Next Header字段值=0)

该选项主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。逐跳选项报头目前的主要应用有以下三种:

用于巨型载荷(载荷长度超过65535字节)。
用于设备提示,使设备检查该选项的信息,而不是简单的转发出去。
用于资源预留(RSVP)。
目的选项报头:

(代表该报头的Next Header字段值=60)

目的选项报头携带了一些只有目的节点才会处理的信息。目前,目的选项报文头主要应用于移动IPv6。

路由报头:

(代表该报头的Next Header字段值=43)

路由报头和IPv4的Loose Source and Record Route选项类似,该报头能够被IPv6源节点用来强制数据包经过特定的设备。

分段报头:

(代表该报头的Next Header字段值=44)

同IPv4一样,IPv6报文发送也受到MTU的限制。当报文长度超过MTU时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段报头。

认证报头:

(代表该报头的Next Header字段值=51)

该报头由IPsec使用,提供认证、数据完整性以及重放保护。它还对IPv6基本报头中的一些字段进行保护。

封装安全净载报头:

(代表该报头的Next Header字段值=50)

该报头由IPsec使用,提供认证、数据完整性以及重放保护和IPv6数据报的保密,类似于认证报头。

IPv6扩展报头规约:

当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

IPv6基本报头
逐跳选项扩展报头
目的选项扩展报头
路由扩展报头
分段扩展报头
认证扩展报头
封装安全有效载荷扩展报头
目的选项扩展报头
上层协议数据报文

路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理的。

除了目的选项扩展报头可能出现一次或两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余扩展报头只能出现一次。

ICMPv6

ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。

在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包超长、超时、回应请求和回应应答等。在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。

ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58。ICMPv6的报文格式下图所示:
在这里插入图片描述
报文中字段解释如下:

Type:表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型。
Code:表示此消息类型细分的类型。
Checksum:表示ICMPv6报文的校验和。

ICMPv6类型域和代码域

在这里插入图片描述

Path MTU

在IPv4中,报文如果过大,必须要分片进行发送,所以在每个节点发送报文之前,设备都会根据发送接口的最大传输单元MTU(Maximum Transmission Unit)来对报文进行分片。但是在IPv6中,为了减少中间转发设备的处理压力,中间转发设备不对IPv6报文进行分片,报文的分片将在源节点进行。当中间转发设备的接口收到一个报文后,如果发现报文长度比转发接口的MTU值大,则会将其丢弃;同时将转发接口的MTU值通过ICMPv6报文的“Packet Too Big”消息发给源端主机,源端主机以该值重新发送IPv6报文,这样带来了额外流量开销。PMTU发现协议可以动态发现整条传输路径上各链路的MTU值,减少由于重传带来的额外流量开销。

PMTU协议是通过ICMPv6的Packet Too Big报文来完成的。首先源节点假设PMTU就是其出接口的MTU,发出一个试探性的报文,当转发路径上存在一个小于当前假设的PMTU时,转发设备就会向源节点发送Packet Too Big报文,并且携带自己的MTU值,此后源节点将PMTU的假设值更改为新收到的MTU值继续发送报文。如此反复,直到报文到达目的地之后,源节点就能知道到达目的地的PMTU了。
在这里插入图片描述
整条传输路径需要通过4条链路,每条链路的MTU分别是1500、1500、1400、1300,当源节点发送一个分片报文的时候,首先按照PMTU为1500进行分片并发送分片报文,当到达MTU为1400的出接口时,设备返回Packet Too Big错误,同时携带MTU值为1400的信息。源节点接收到之后会将报文重新按照PMTU为1400进行分片并再次发送一个分片报文,当分片报文到达MTU值为1300的出接口时,同样返回Packet Too Big错误,携带MTU值为1300的信息。之后源节点重新按照PMTU为1300进行分片并发送分片报文,最终到达目的地,这样就找到了该路径的PMTU。

由于IPv6要求链路层所支持的最小MTU为1280,所以PMTU的值必须大于1280。建议您用1500作为链路的PMTU值

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络工程是指通过计算机网络技术来实现信息传输和资源共享的一门学科。以下是计算机网络工程的基础知识: 1. OSI参考模型:OSI(Open Systems Interconnection)参考模型是一个将计算机网络通信过程划分为七个层次的模型,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 2. TCP/IP协议族:TCP/IP协议族是互联网所使用的一组协议,包括传输控制协议(TCP)、网络互联协议(IP)、用户数据报协议(UDP)等。TCP/IP协议族是计算机网络通信的基础。 3. IP地址:IP地址是用于标识网络中设备的唯一地址,分为IPv4和IPv6两个版本。IPv4地址由32位二进制数组成,IPv6地址由128位二进制数组成。 4. 子网掩码:子网掩码用于划分IP地址的网络部分和主机部分。它与IP地址进行逻辑与运算,得到网络地址。 5. 网关:网关是连接不同网络的设备,用于实现不同网络之间的数据传输。 6. DNS:DNS(Domain Name System)是用于将域名转换为IP地址的系统,使得用户可以通过域名访问互联网上的资源。 7. HTTP和HTTPS:HTTP(Hypertext Transfer Protocol)是用于在Web浏览器和Web服务器之间传输数据的协议,而HTTPS(HTTP Secure)是在HTTP基础上加入了安全性的协议。 8. 网络安全:网络安全是保护计算机网络免受未经授权的访问、使用、泄露、破坏等威胁的一系列措施和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值