目录

1.IPv6地址格式

1.1 站前点缀

1.2 Subnet ID

1.3 Interface ID

2.IPv6地址的分类及寻址模式

2.1 单播(Unicast)地址

2.1.1 全球唯一地址(Global Unique Address)

2.1.2 唯一本地地址(Unique Local Unicast Address)

2.1.3 站点本地地址(Site-Local Address,已弃用)

2.1.4 链路本地地址(Link-Local Address)

2.2 组播地址

2.3 任播地址

2.4 特殊的地址


1.IPv6地址格式

IPv6 地址格式为 8 段 16 位(共 128 位)组成:

0010000000000001 0000000000000000 0011001000111000 1101111111100001 0000000001100011 0000000000000000 0000000000000000 1111111011111011

可以使用 32 个十六进制数(8 * 4)表示,不同的段之间以符号 : 分隔:

2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b

  • 最左侧的 3 个段表示站点前缀:站点前缀描述通常由 ISP 或区域 Internet 注册机构(Regional Internet Registry,RIR)分配的站点的公共拓扑。
  • 中间的 1 哥段是由网管分配的子网 ID:子网 ID 描述专用拓扑(也称为站点拓扑),因为它是一个私有网络的标识。
  • 最右侧的 4 个段表示包含接口 ID:接口 ID 可以从接口的 MAC 地址自动配置,也可以采用 EUI-64 格式手动配置。

如上图所示前 48 位 2001:0db8:3c4d 表示公共拓扑的站点前缀。随后的 16 位 0015 表示站点专用拓扑的子网 ID。最右边的 64 位 0000:0000:1a2f:1a2b 表示接口 ID。

可见,即使在转换为十六进制格式后,IPv6 地址仍然很长。所以 IPv6 提供了一些规则来缩短地址:

  • 规则 1:丢弃前导零,高位的连 0 可省略不写,低位的 0 不可省略,上述地址可简化记为 2001:db8:3c4d:15:0:0:1a2f:1a2b。
  • 规则 2:连续多段全 0 可用符号 :: 替代且仅替代一次(只能出现一次),上述地址可进一步简化记为 2001:db8:3c4d:15::1a2f:1a2b。

此外,还支持 点分十六进制 的写法,e.g. 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 则记为 2.0.0.1.0.d.b.8.8.5.a.3.0.8.d.3.1.3.1.9.8.a.2.e.0.3.7.0.7.3.4.4,其倒序写法用于在 ip6.arpa 子域名中记录 IPv6 地址与 Domain 之间的映射关系。

1.1 站前点缀

站点前缀用于表示一个 Site-Local。IPv6 地址最左边的字段是用来路由 IPv6 包的前缀,最多占用 IPv6 地址最左侧的 48 位。例如:IPv6 地址 2001:db8:3c4d:0015:0000:0000:1a2f:1a2b/48 的站点前缀包含在最左边的 48 位 2001:db8:3c4d 中。此前缀可使用如下形式(将 0 省略掉)来表示:2001:db8:3c4d::/48。

IPv6 地址格式同样采用了 CIDR(Classless Inter-Domain Routing,无类别域间路由)的方式,通过前缀长度(Ipv6 Address / Prefix Length)来划分 网络号主机号。其中的网络号部分就由站点前缀和子网 ID 组成。

1.2 Subnet ID

  • IPv4 具有 A、B、C 类地址,通过可变长的子网掩码来划分网络号和主机号。针对不同的地址类型,我们可以通过对主机号的进一步划分来得到不同的子网。如下图,是对 B 类地址进行子网划分。显然,IPv4 子网划分方式的局限性在于:子网地址占据了主机地址,导致主机数量变少。
  • 而 IPv6 的子网划分方式并没有在主机号上进行妥协,IPv6 地址的后 64 为始终被建议作为主机号,因为 IPv6 地址的自动配置需要 64 为主机号,子网地址优先在网络号上进行分配。如下图,在网络号上划分了 16 位的子网,支持 65535 个子网络,相当于 IPv4 的 B 类地址。

但在某些场景中,如果 16 位的 Subnet ID 不能满足需求时,可以考虑借用主机位进一步的扩展子网地址。

1.3 Interface ID

IPv6 具有三种不同类型的本地单播地址方案。地址的后 64 位始终作为 Interface ID。在本地单播地址的场景中,Interface ID 可直接从 MAC 转换而成:MAC 地址是在世界唯一的,Interface ID 利用了 MAC 地址的唯一性。所以 Host 可以直接使用 IEEE 的扩展唯一标识符(EUI-64)格式自动的配置其 Interface ID。比如:将 48 位的 IEEE 802 MAC 地址平分为两部分,然后在中间插入 16 位的 FFFE 即可转换为 64 位的 Interface ID 了。因为,MAC 地址是全球唯一的,所以从 MAC 地址转换得来的 Interface ID 也是全球唯一的。

为了将 EUI-64 ID 转换为 IPv6 Interface ID,EUI-64 ID 的最高有效的第 7 位被补充。 例如:

2.IPv6地址的分类及寻址模式

2.1 单播(Unicast)地址

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

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

  1. 全球唯一地址(Global Unique Address):公网地址,全球可达。
  2. 唯一本地地址(Unique Local Unicast Address):私网地址,同子网段可达。
  3. 链路本地地址(Link-Local Address):基于邻居发现协议的自动配置地址,同一个链路上的所有主机可达,不需要手动配置。
  4. 站点本地地址(Site-Local Address):已丢弃,被链路本地地址替代。

单播地址的类型由地址中最左边(高阶)的连续位(其中包含前缀)来确定

单播地址的作用域

2.1.1 全球唯一地址(Global Unique Address)

是全球唯一和可识别的 IPv6 地址,等同于 IPv4 的公网地址。

由以下 3 部分组成:

  1. 全球路由前缀(Global Routing Prefix):标识 1 个 Site。
  2. Subnet ID:标识 Site 中的一个 Subnet。
  3. Interface ID:标识 Subnet 中的一个 Interface。

  1. 公共拓扑:站点前缀定义从网络到路由器的公共拓扑。企业的站点前缀可以从 ISP 或区域 Internet 注册机构(Regional Internet Registry,RIR)获取。
  2. 站点拓扑和 IPv6 子网:在 IPv6 中,子网 ID 定义网络的管理子网,它的最大长度为 16 位。可以在配置 IPv6 网络的过程中指定子网 ID。子网前缀通过指定已分配了子网的特定链路来定义路由器的站点拓扑。IPv6 子网在概念上与 IPv4 子网相同,因为每个子网通常都与一个硬件链路相关联。但是,IPv6 子网 ID 用十六进制表示法表示,而不是用点分十进制表示法表示。
  3. 接口 ID:接口 ID 用来标识特定节点的接口。接口 ID 必须在子网内唯一。IPv6 主机可以使用相邻节点搜索协议自动生成其自身的接口 ID。相邻节点搜索协议基于主机接口的 MAC 地址或 EUI-64 地址自动生成接口 ID。也可以手动指定接口 ID,建议对 IPv6 路由器和启用了 IPv6 的服务器采用这种方式。

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

2.1.2 唯一本地地址(Unique Local Unicast Address)

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

2.1.3 站点本地地址(Site-Local Address,已弃用)

只可在 Site 内路由,相当于 IPv4 的私网地址。站点本地地址由于起初的标准定义模糊而被弃用,而后 RFC 又重新定义了唯一本地地址以满足本地环境中私有 IPv6 地址的使用,已被唯一本地地址替代。

2.1.4 链路本地地址(Link-Local Address)

链路本地地址前缀具有以下格式:fe80::interface-ID/10,当一个节点启用 IPv6 时自动生成,interface-ID 通常从 48 位 MAC 地址派生而来。

用于单一链路,适用于自动配置、NDP(Neighbor Discovery Protocol,邻居发现协议)等实现,路由器不转发以 fe80 开头的地址到 Link。前 64 位为 fe80::,而后 64 位为 Interface ID。可见,同一个 Link 上的所有 Interfaces 的前 64 位都是相同的,再通过后 64 的 Interface ID 来唯一标识一个 Interface。所以,Link-Local Address 只在 Subnet 中有效,即使 Link 上并没有路由器,Interfaces 之间也是可以通信的。

2.2 组播地址

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

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

2.3 任播地址

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

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

2.4 特殊的地址

  • 未指定地址:::/128,即 0:0:0:0:0:0:0:0。只能作为尚未获得正式地址的 Host 的源地址,不能作为目的地址,不能分配给真实的 Interface。
  • 环回地址:::1/128,相当于 IPv4 中的回环地址 lo 127.0.0.1。
  • 路由协议的保留组播地址:

  • 保留路由器/节点的多播地址:这些地址帮助路由器和主机与段上的可用路由器和主机通信,而无需配置 IPv6 地址。主机使用基于 EUI-64 的自动配置 IPv6 地址,然后通过这些地址与段上的可用主机/路由器通信。

  • 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。
  1. ::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 节点将使用这些地址。
  2. ::FFFF:A.B.C.D,是 IPv4 映射过来的 IPv6 地址,其中代表 IPv4 地址,e.g. ::ffff:202.120.2.30 ,它是在不支持 IPv6 的网上用于表示 IPv4 节点。
  3. 2001::/16,全球可聚合地址,用于 Teredo 隧道,由 IANA 按地域和 ISP 进行分配,是最常用的 IPv6 地址,属于单播地址。
  4. 2002::/16,6 to 4 地址,用于 6 to 4 自动构造隧道技术的地址,属于单播地址。

IPv6地址基础知识体系相关推荐

  1. IPV6地址基础知识

    IPV6地址格式: (1)首选格式 冒号分割为8段,每一段16bit,每一段内用十六进制表示. 用"IPv6地址/掩码长度"的方式来表示. 例如:2001:0DB8:0000:00 ...

  2. Scrum基础知识体系和感想

    Scrum自称易懂难精,从整个基础知识体系上来说,确实也是比较简单,并没有太多繁复的内容. 简单看,一张图就基本能概括了. 整个Scrum的核心还是管理好三大工件的过程怎么去组织和定义,让三大工件能够 ...

  3. Java SE 基础知识体系梳理

    ## Java SE 基础知识体系梳理 ----------day01------------- (1)计算机的体系结构 (2)Java语言的概述 (3)开发环境的搭建和使用 1.计算机的体系结构(常 ...

  4. Java基础知识体系_计算机与java

    Java基础知识体系 (一).计算机与java (二).变量与类型 (三).运算符 (四).流程控制 (五).数组 (一).计算机与java 1,计算机:硬件+软件 硬件:客观存在的各种计算机相关设备 ...

  5. 【RDMA】21. RDMA之内存地址基础知识

    [RDMA]RDMA 学习资料总目录_bandaoyu的博客-CSDN博客SavirRDMA 分享1. RDMA概述https://blog.csdn.net/bandaoyu/article/det ...

  6. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系

    原标题:最新版 17 幅思维导图:Python 编程之核心知识体系 导读:本文主要涵盖了 Python 编程的核心知识,展示了一系列思维导图,主要就 Python 核心基础知识进行了细致梳理.无论你是 ...

  7. python编程基础知识体系_Python 编程核心知识体系-基础|数据类型|控制流(一)...

    原博文 2017-11-14 14:49 − Python知识体系思维导图: 基础知识 数据类型 1.序列 2.字符串 3.列表和元组 4.字典和集合 循环 & 判断 ... 相关推荐 201 ...

  8. unity3d所要知道的基础知识体系大纲,可以对照着学习,不定期更新

    本文献给,想踏入3D游戏客户端开发的初学者. 毕业2年,去年开始9月开始转作手机游戏开发,从那时开始到现在一共面的游戏公司12家,其中知名的包括搜狐畅游.掌趣科技.蓝港在线.玩蟹科技.天神互动.乐元素 ...

  9. python编程基础知识体系_【汇总】Python 编程核心知识体系

    [汇总]Python 编程核心知识体系 大神著作,源自:https://woaielf.github.io/2017/06/13/python3-all/ 本文主要涵盖了 Python 编程的核心知识 ...

最新文章

  1. 深入浅出WPF——附加事件(Attached Event)
  2. 【IT笔试面试题整理】连续子数组的最大和
  3. java实现导出Excel的功能
  4. misc高阶 攻防世界_攻防世界 Misc 进阶题(一)
  5. ASP.NET 3.5中的一个超简单的Ajax实验
  6. WPF 模仿IconPacks库写图标按钮
  7. RN PickerView组件
  8. oracle错误 无监听程序,oracle_无监听程序_错误
  9. 西数桌面云储存服务器,小白折腾NAS 篇九:超详细拆解小记 — Western Digital 西部数据 Elements 桌面硬盘12TB...
  10. 贝叶斯网络和马尔科夫的冷知识
  11. Mac苹果电脑在线重装系统教程
  12. 支付宝基金自选管理系统Springboot + Vue 实现
  13. Python实现SMMS图床
  14. Redis入门(2):五大数据类型(key,string,list,set,sortset)将其实战,配置文件详解,发布与订阅
  15. 微信小程序最新获取头像和昵称的方法 直接用!
  16. Axure使用中继器为表格添加数据
  17. 六一活动页面html,HTML5教程|如何制作六一儿童节答题测试H5页面?
  18. echarts 柱状图,每根柱子显示不同颜色
  19. 【解决方案】用微信打开链接提示“已停止访问该网页”
  20. springioc注解详解

热门文章

  1. 删除eclipse/sts中多余工作空间的记录
  2. Spring Boot 定时任务 Scheduled(1. fixedDelay 2. fixedRate 3. initialDelay 4. cron Scheduled)
  3. CentOS - NFS实现共享文件夹及开机自动挂载功能
  4. 开源与闭源的斗争,GPLv3协议的发布
  5. element plus修改CheckBox样式
  6. 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)...
  7. Pandas-D3分组
  8. 【精】手把手教你用小米盒子播放台式机里的照片和视频
  9. The Enchanted Forest(思维/前缀和)
  10. /FORCE:MULTIPLE