首页 > 其他分享 >IPv6协议

IPv6协议

时间:2024-05-30 17:12:25浏览次数:13  
标签:协议 组播 主机 地址 IPv4 IPv6 路由器

简介

IPv6 协议是一个全新的 IP 协议,旨在取代目前已在全球部署和使用的 IPv4。

实际上,目前的 IPv4 功能强大,易于部署,可互操作,并在将网络互联扩展为全球规模的互联网过程中,发挥了重要的作用。但是,在设计 IPv4 时,并未考虑到互联网迅速发展,IPv4 地址很快用尽的问题。

借助 NAT(网络地址转换)技术实现的私有地址空间,IPv4 的寿命得到了一定程度的延长。但对于 IP 地址增长的需求,却是无能为力。

IPv6 能够提供更多地址。IPv6 能够在现有 IPv4 设备上进行部署。同时经过正确的规划设计,大型企业能够顺畅将 IPv4 转换为 IPv6。

IPv6 地址格式

IPv6 使用冒号(:)分隔的 16 字节 16 进制地址段,来表示 128 位地址格式,例如2001:db8:130F:0000:0000:09C0:876A:130B

此外,为了缩减 IPv6 地址,使地址更便于表达,IPv6 使用以下惯例:

  • 地址段中的前置零位可以省略,而且能够压缩。例如:

    • 2001:db8:130F:0000:0000:09C0:876A:130B = 2001:db8:130F:0:0:9C0:876A:130B
  • 一对冒号(::)能够表示相连的 0 字段。但是,只允许使用一次冒号对。如果同一地址中出现两个冒号对,就无法确定每个零地址块的大小:

    • 2001:db8:130F:0:0:9C0:876A:130B = 2001:db8:130F::9C0:876A:130B
    • FF01:0:0:0:0:0:1 = FF01::1

IPv6 前缀

在 IPv6 中,前缀大致相当于 IPv4 中的网络号(子网)。

IPv6 前缀由最左边的位构成,起网络标识符的作用。IPv6 前缀使用 IPv6 前缀或前缀长度格式表示,就像 IPv4 地址以无类别域间路由选择(CIDR)符号表示一样。

前缀长度变量是一个十进制数值,是地址的网络部分。例如:2001:db8:8086:6502::/64是一个正确的 IPv6 前缀。如果地址以双冒号结束,这尾部的双冒号可以省略。因此这个地址也可写2001:db8:8086:6502/64

IPv6 地址类型

对于 IPv4 主机和 IPv6 主机来说,在 IP 地址要求方面有一个重要差异。IPv4 主机一般使用一个 IP 地址,而 IPv6 主机可能会有多个 IP 地址。

IPv6 的地址类型主要有三种:

  • 单播:单播地址用于标识一个网络接口(Interface),在单播寻址模式下,IPv6 协议会把送往地址的数据包送往给其 Interface。

  • 任意播:一个用于一组通常属于不同节点的接口的地址。发送到任意播地址的数据包会按照所用的路由协议的定义,传输到最近的、任意播地址指定的接口。

  • 组播:一个用于一组通常属于不同节点(在特定范围内)的接口的地址。发送到组播地址的数据包会传输到组播地址(在特定范围内)指定的所有接口。

单播地址(Unicast)

单播地址可以进一步细分为以下 4 类:

  • 全球唯一地址(Global Unique Address):公网地址,全球可达。由以下 3 部分组成:

    • 全球路由前缀(Global Routing Prefix):标识一个站点,可以从 ISP 或区域 Internet 注册机构(Regional Internet Registry,RIR)获取。

    • 子网 ID(Subnet ID):标识站点中的一个子网。在 IPv6 中,Subnet ID 定义网络的管理子网,它的最大长度为 16 位。可以在配置 IPv6 网络的过程中指定 Subnet ID。子网 ID 通过指定已分配了子网的特定链路来定义路由器的站点拓扑。IPv6 子网在概念上与 IPv4 子网相同,因为每个子网通常都与一个硬件链路相关联。但是,IPv6 子网 ID 用十六进制表示法表示,而不是用点分十进制表示法表示

    • 接口 ID(Interface ID):标识子网中的一个接口。接口 ID 必须在子网内唯一。IPv6 主机可以使用相邻节点搜索协议自动生成其自身的接口 ID。相邻节点搜索协议基于主机接口的 MAC 地址或 EUI-64 地址自动生成接口 ID。也可以手动指定接口 ID,建议对 IPv6 路由器和启用了 IPv6 的服务器采用这种方式。

注意,在全球单播地址中,规定如 2001:BCFF:FEA6::/48 表示一个 IPv6 路由前缀,2001:BCFF:FEA6:6C01::/64 表示一个 IPv6 子网前缀。

  • 唯一本地地址(Unique Local Unicast Address):私网地址,同子网段可达。前缀为 fc00::/7,该地址是本地全局唯一的,但只能用于本地通信,不通过 Internet 路由,等同于 IPv4 的私有网络地址,用于取代站点本地地址。该地址包含一个 40 位的伪随机数,以减少当网站合并或数据包误传到网络时碰撞的风险。

  • 链路本地地址(Link-Local Address):基于邻居发现协议 NDP(Neighbor Discovery Protocol)的自动配置地址,同一个链路上的所有主机可达,不需要手动配置。

  • 站点本地地址(Site-Local Address):已丢弃,已被唯一本地地址替代。

组播地址(Multicast)

在 IPv6 中没有广播的概念,而是使用用组播来代替,因此 IPv6 中存在大量的组播使用。组播地址用于标识一组 Interfaces。IPv6 的组播寻址与 IPv4 相同,目的地为多个主机的数据包在特殊的多播地址上发送。所有对该组播信息感兴趣的主机需要首先加入该组播组。加入组的所有 Interfaces 接收组播数据包并对其进行处理,而对组播数据不感兴趣的其他主机则忽略组播信息。

普通的组播地址前缀为 ff00::/8,通过第二段的最后四位来标识多播的 “范畴”。其中有些地址已用于指定特殊协议,例如 ff0X::101 对应所有区域的 NTP 服务器。

标志位为 0000 表示是永久保留的组播地址,分配给各种技术使用;标志位为 0001 表示是用户可使用的临时组播地址。范围段定义了组播地址的范围,其定义如下:

0001:本地接口范围。
0010:本地链路范围。
0011:本地子网范围。
0100:本地管理范围。
0101:本地站点范围,类似组播的私网地址。
1000:组织机构范围。
1110:全球范围,类似组播的公网地址。

下面是一些组播指定地址:

FF02::1,在本地链路范围的所有节点。
FF02::2,在本地链路范围的所有路由器。
FF02::5,all ospf routers。
FF02::9,所有运行 RIP 的路由器。
FF02::A,所有运行 eigrp 的路由器。
FF05::2,在一个站点范围内的所有路由器。

在创建某个接口的 IPv6 单点传送地址时,内核会自动使该接口成为某些多点传送组的成员。例如,内核会使每个节点都成为 “请求节点” 多点传送组的成员,相邻节点搜索协议使用该组来检测可访问性。内核还自动使节点成为 “所有节点” 或 “所有路由器” 多点传送组的成员。

在创建某个接口的 IPv6 单点传送地址时,内核会自动使该接口成为某些多点传送组的成员。例如,内核会使每个节点都成为 “请求节点” 多点传送组的成员,相邻节点搜索协议使用该组来检测可访问性。内核还自动使节点成为 “所有节点” 或 “所有路由器” 多点传送组的成员。

请求节点组播地址(Solicited-node multicast address):ff02::1:FFXX:XXXX,其中 XX:XXXX 为相对应的单播或任播地址中的三个最低的字节。

任意播

任播(Anycast)地址,又称任意点传送地址,相当于是单播(Unicast)和广播(Broadcast)的综合体。单播是单点通信,广播是单一来源和多个目的地进行通信。而任播则在以上两者之间,它像广播一样,会有一组接收节点的地址列表,但只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输,该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。当前,任播地址只能分配给中间设备(e.g. 路由器、三层交换机等),不能分配给终端设备(e.g. 手机、电脑等),而且不能作为发送端的地址。

IPv6 任意点传送地址用来标识一组位于不同 IPv6 节点上的接口。每组接口都称作一个任意点传送组。当包发送到任意点传送地址时,任意点传送组中物理位置最接近发送者的成员将收到包。

特殊的地址

未指定地址:::/128,即 0:0:0:0:0:0:0:0。只能作为尚未获得正式地址的 Host 的源地址,不能作为目的地址,不能分配给真实的 Interface。

环回地址:::1/128,相当于 IPv4 中的回环地址 lo 127.0.0.1。

ORCHID(Overlay Routable Cryptographic Hash Identifiers):2001:10::/28,这些是不可送达的 IPv6 地址,用于加密散列识别。

示例地址:2001:db8::/32,这些地址应用于 IPv6 地址的示例中,或用于描述网络架构,作为描述性地址。

IPv4 转译地址:IPv4 位址可以很容易的转化为 IPv6 格式。举例来说,如果 IPv4 的一个地址为 135.75.43.52(十六进制为 0x874B2B34),它可以被转化为 0000:0000:0000:0000:0000:FFFF:874B:2B34 或者 ::FFFF:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为 ::ffff:135.75.43.52。

  • ::A.B.C.D,兼容 IPv4 的 IPv6 地址。其中 A.B.C.D 代表 IPv4 地址。即后 32 位可以用 10 进制数表示,因此 ::ffff:192.168.89.9 相等于 ::ffff:c0a8:5909,自动将 IPv6 包以隧道方式在 IPv4 网络中传送的 IPv4/IPv6 节点将使用这些地址。

  • ::FFFF:A.B.C.D,是 IPv4 映射过来的 IPv6 地址,其中代表 IPv4 地址,e.g. ::ffff:202.120.2.30 ,它是在不支持 IPv6 的网上用于表示 IPv4 节点。

  • 2001::/16,全球可聚合地址,用于 Teredo 隧道,由 IANA 按地域和 ISP 进行分配,是最常用的 IPv6 地址,属于单播地址。

  • 2002::/16,6 to 4 地址,用于 6 to 4 自动构造隧道技术的地址,属于单播地址。

IPv6 的新特点

在 IPv6 中,主机地址可使用四种方法进行配置:

  • 静态配置:类似于 IPv4 ,主机地址、掩码和网关地址通过人工方式定义。静态地址配置一般用于路由器接口配置,但不太用于 IPv6 主机。

  • 无状态自动地址配置(SLAAC):在这种情况下,主机自动配置其地址。启动节点
    发送路由器请求消息,申请路由器广播(RA),以配置接口(RFC2462)。

  • 基于状态的 DHCPv6:主机使用 DHCP 获取其 IPv6 地址。此地址管理类似于 IPv4 的 DHCP(RFC3315)。

  • 无状态 DHCP:主机使用 SLAAC以 及 DHCP,来获取其它参数,如 TFTP 服务器、
    WINS等。

配置方式取决于局域网上路由器发送的 RA 标记。

无状态地址自动配置

节点能使用 IPv6 无状态地址自动配置来生成地址,无需 DHCP 服务器。IPv6 地址通过结合网络前缀和一个接口标识符而构成。接口标识符通常来自于 IEEE 标识符。

本地链路上的一个路由器通过 RA 消息发送网络类型信息,如本地链路的前缀以及路由器广播中的默认路由等。该路由器向本地链路上的所有节点提供这一信息,如下所示。

主机随后能构建自己的地址,在从路由器接收到的/64前缀后面附加一个主机标识符。

因此,与以太网连接的主机能够自动配置,将其采用扩展通用标识符 EUI-64 位格式的 48 位链路层地址(MAC地址)附加在路由器所广播的 64 位本地链路前缀后面。

基于状态的 DHCP

许多大型企业目前使用 DHCP 向主机分发地址。IPv6 也可使用相同的 DHCP 机制进行部署。

为 IPv6 客户端获取配置数据的流程与 IPv4 类似。但 DHCPv6 对许多消息使用组播。最初,客户端必须首先使用邻居发现消息,检测出链路上路由器的存在。如果找到了一个路由器,客户端会检查路由器广播,以确定是否应使用 DHCP。如果路由器广播允许在该链路上使用 DHCP(禁用自动配置标记,并在RA消息中启用可管理标记,使主机能使用 DHCPv6 来获取 IPv6 地址),随后客户端开始 DHCP 请求,来发现 DHCP 服务器,

无状态 DHCP

无状态 DHCPv6 一般结合无状态自动配置,来进行地址分配,为 DHCPv6 获取其它配置信息。在这种情况下,DHCPv6 仅能用于供主机获取更多参数,如 TFTP 服务器、DNS 服务器等。

主机通过将主机标识符附加在从路由器接收到的/64前缀后面,来构建自己的地址,然后向 DHCP 服务器发送一个 DHCP 请求消息。

IPv6 迁移技术

IPv6 的成功最初来自于基于它运行的新应用。但是,很快 IPv4 地址即将用尽明显地成为了推动 IPv6 部署的因素。出色的 IPv6 设计的一个重要标志是,它能集成到当前的 IPv4 网络中并与其共存。IPv4 和 IPv6 主机需要共存相当长的一段时间,以便 IPv4 能稳步迁移到 IPv6。

目前有三种 IPv6 迁移技术:双堆栈、隧道和转换。

双堆栈

双堆栈是部署 IPv6 的大型企业所采用的基本战略。它将设备配置为能同时运行 IPv4 和 IPv6。IPv4 通信使用 IPv4 协议堆栈,IPv6 通信则使用 IPv6 协议堆栈。

应用根据对于 DNS 请求的响应来选择是使用 IPv4 还是 IPv6。应用根据 IP 流量的类型来选择正确地址。因为双堆栈允许主机同时访问现有 IPv4 内容以及未来 IPv6 内容,所以是非常灵活的部署战略。但是,因为它仍需要 IPv4 地址,所以双堆栈并不是能够解决地址耗尽问题的长期解决方案。

双堆栈还避免了在协议栈之间转换的问题。转换是一种正确的部署机制,但它会提高
运营复杂性,降低性能。由于主机能根据 DNS 信息,选择正确的传输机制来到达目的
地,所以无需在 IPv6 主机和 IPv4 服务器间实施转换。

隧道

隧道将 IPv6 流量封装在 IPv4 数据包中,主要用于 IPv6(或双堆栈)站点间的通信,或通过 IPv4 骨干连接到远程 IPv6 网络或主机。目前有多种不同的隧道技术,包括6to4、ISATAP、Teredo、6PE、6VPE和mGRE v6 over v4等。隧道能人工配置,也能自动配置。大多数当前操作系统除支持双堆栈外,也支持隧道。

转换

地址类型转换(AFT)是将地址从一个类型转换为另一类型的流程。在部署中,AFT 主要用于 IPv6 主机和 IPv4 内容间的转换。当 IPv6 地址空间的保留部分自动映射到 IPv4 时,AFT 可以是无状态的,另外它也可以基于状态,使用已配置范围内的地址,在两类地址间映射数据包。

几乎所有大型企业部署 IPv6 时都在内部使用双堆栈。双堆栈是学习和获取 IPv6 地址部署经验的一种简单方法,这对成功迁移非常重要。

标签:协议,组播,主机,地址,IPv4,IPv6,路由器
From: https://www.cnblogs.com/desireroot7/p/18222128

相关文章

  • TCP协议的特点
    1.TCP是面向连接的传输层的协议(物理层-数据链路层-网络层-传输层-会话层-应用层)。也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。数据传输完毕以后,必须释放已经建立的TCP的连接2.每一条TCP连接必须是(一对一)的3.TCP提供可靠交付的服务。通过TCP连接传输的数据,不丢失......
  • 短程无线自组网协议之:发展现状与趋势?
    目前国外的芯片大厂大多是两条腿走路,既推出2.4GHz的ZigBee芯片,同时推出Sub-1GHz的射频芯片技术。ZigBee技术虽然也还在发展完善,但是始终没有跳出2.4GHz的的平台,整个协议栈的技术体系也没有发生大的改变,在用户接口层已经开始放弃profile的思路,转向更加标准开放的IPv6技术。 ZigB......
  • ARP(Address Resolution Protocol)地址解析协议详解
    ARP地址解析解析ARP地址解析协议提供了一种在IPv4地址和硬件地址之间的动态映射。动态是因为它会自动执行和随时间变化,不需要系统管理员重新配置。若一台主机改变了网络接口卡,从而改变了它的硬件地址,ARP可以在一定延时后继续正常运作。举个例子:当我们使用Internet服务......
  • 网络层协议
    目录一、网络层的功能二、IP数据包格式三、ICMP协议         1.功能        2.类型        3.ICMP协议的应用        4.ping不通的几种情况        5.ping命令的用法        6.tracert命令:四、ARP协议        1.arp......
  • 《计算机网络微课堂》6-5 文件传送协议FTP
    本节课我们介绍文件传送协议FTP:将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送文件传送协议FTP是因特网上使用的最广泛的文件传送协议FTP提供交互式的访问,允许客户指明文件的类型与格式,例如指明是否使用ASCII,并允许......
  • 《计算机网络微课堂》6-3 动态主机配置协议DHCP
    本节课我们介绍动态主机配置协议DHCP。我们首先来举例说明DHCP的作用。如图所示有这样一个网络拓扑,请同学们思考一下,我们应该给网络中的各主机设置怎样的网络相关配置信息,才能使他们可以正常访问网络中的WEB服务器。根据我们之前课程所介绍过的相关知识可知,需要给网络中的各......
  • 玩转STM32-I2C通信协议(详细-慢工出细活)
    文章目录一、I2C总线原理(掌握)1.1硬件构成1.2传输位1.3数据传输格式二、STM32的I2C特性和结构三、STM32的I2C通信实现(硬件实现方式)3.1I2C主模式四、应用实例一、I2C总线原理(掌握)1.1硬件构成I2C总线由串行数据线SDA和串行时钟线CL构成,总线上的每个器件都有一个......
  • 视频汇聚EasyCVR平台视图库GA/T 1400协议与GB/T 28181协议的区别
    在公安和公共安全领域,视频图像信息的应用日益广泛,尤其是在监控、安防和应急指挥等方面。为了实现视频信息的有效传输、接收和处理,GA/T1400和GB/T28181这两个协议被广泛应用。虽然两者都服务于视频信息处理的目的,但它们在实际应用、功能特性和适用范围上却存在显著的区别。今天我......
  • iNeuOS工业互联网操作系统,增加电力IEC104协议
    1.     概述...22.     配置IEC104协议设备驱动...2 1.  概述IEC60870-5-104是一种电力自动化系统中常用的通信协议,使用TCP/IP协议作为底层通信协议,用于监视和控制电力系统中的各种设备,如变电站、发电机、开关等。IEC104协议是基于TCP的应用......
  • 【网络技术】【Kali Linux】Wireshark嗅探(十六)BT-DHT(比特流分布式哈希表协议)报文捕获
    往期KaliLinux上的Wireshark嗅探实验见博客:【网络技术】【KaliLinux】Wireshark嗅探(一)ping和ICMP【网络技术】【KaliLinux】Wireshark嗅探(二)TCP协议【网络技术】【KaliLinux】Wireshark嗅探(三)用户数据报(UDP)协议【网络技术】【KaliLinux】Wireshark嗅探(四)域......