- 作者:约克
- 原文地址:https://yorkyu.cn/ipv6-getting-started-address-format-4bbc0dda6191.html
- 文章版权归作者所有,转载请注明出处!
背景
为了解决 IPv4 地址枯竭问题,推出了网际协议第6版
IPv6
。IPv6
的计划是创建未来互联网扩展的基础,其目标是取代 IPv4。
一,IPv4 地址
1.1. 基本介绍
网际协议版本4(英语:Internet Protocol version 4,缩写:IPv4,又称互联网通信协议第四版)是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署和使用的版本。
当前大部分读者对 IPv4 较熟悉,在介绍 IPv6
前有必要简单介绍 IPv4。便于帮助读者对比了解 IPv6
。
1.2. 地址量
IPv4 使用 32位(4字节)
地址,因此地址空间中有 4,294,967,296(2^32) 个地址。它的范围为 0.0.0.0 ~ 255.255.255.255
。
1.3. 地址格式
IPv4 地址可被写作任何表示一个32位整数值的形式,但为了方便人类阅读和分析,它通常被写作点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。
十进制
代码语言:javascript复制159.226.7.108
二进制
代码语言:javascript复制10011111.11100010.111.1101100
二,IPv6 地址
2.1. 基本介绍
网际协议第6版 (英语:Internet Protocol version 6,缩写:IPv6)
是网际协议的最新版本,用作互联网的协议。
2.2. 地址量
IPv6 使用 128位(16字节)
地址,IPv6 具有比 IPv4 大得多的编码地址空间。新增的地址空间支持2^128(约3.4×10^38)个地址,具体数量为 340,282,366,920,938,463,463,374,607,431,768,211,456 个地址。它的范围为 0:0:0:0:0:0:0:0 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
。
2.3. 地址格式
IPv6 二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。
完整表现形式
代码语言:javascript复制2001:0db8:86a3:08d3:1319:8a2e:0370:7344
简写表现形式 为了简化其表现形式,RFC2373 提出了简写形式。
代码语言:javascript复制# 每项数字前导的0可以省略
- 完整形式:2001:0DB8:02de:0000:0000:0000:0000:0e13
- 简写形式:2001:DB8:2de:0:0:0:0:e13
# 可以用双冒号“::”表示一组0或多组连续的0,但只能出现一次
- 完整形式:2001:DB8:2de:0:0:0:0:e13
- 简写形式:2001:DB8:2de::e13
- 非法形式:2001::25de::cade # 非法的,因为双冒号出现了两次,造成无法推断
更多表现形式示列
代码语言:javascript复制# 前导0省略,使用双冒号 “::”
- 完整形式:1080:0:0:0:8:800:200C:417A
- 简写形式:1080::8:800:200C:417A
# 前导0省略,使用双冒号 “::”
- 完整形式:FF01:0:0:0:0:0:0:101
- 简写形式:FF01::101
# 前导0省略,使用双冒号 “::”
- 完整形式:0:0:0:0:0:0:0:1
- 简写形式:::1
# 前导0省略,使用双冒号 “::”
- 完整形式:0:0:0:0:0:0:0:0
- 简写形式:::
四,CIDR
无类别域间路由
CIDR
Classless Inter-Domain Routing)是一个用于给用户分配 IP 地址,以及在互联网上有效地路由 IP 数据包的对 IP 地址进行归类的方法。
4.1. 出现原由
在域名系统出现之后的第一个十年里,基于分类网络进行地址分配和路由 IP 数据包的设计就已明显显得可扩充性不足。为了解决这个问题,互联网工程工作小组在1993年发布了一新系列的标准—— RFC 1518 和 RFC 1519 —— 以定义新的分配 IP 地址块
和 路由 IPv4 数据包
的方法。
4.2. 表现形式
CIDR
主要是一个按位的、基于前缀的,用于解释 IP 地址的标准。它通过把多个地址块组合到一个路由表表项而使得路由更加方便。这些地址块叫做 CIDR
地址块。当用二进制表示这些地址时,它们有着在开头部分的一系列相同的位。
IPv4 的 CIDR 地址块:由四部分组成的点分十进制地址,后跟一个斜线,最后是范围在0到32之间的一个数字:A.B.C.D/N
。斜线后面的数字就是前缀长度,也就是从左到右,被地址块里的地址所共享的位的数目。
4.3. 特殊常见地址块
代码语言:javascript复制# 本网络(仅作为源地址时合法)
0.0.0.0/8
# 专用网络
10.0.0.0/8
# 电信级NAT
100.64.0.0/10
# 环回
127.0.0.0/8
# 链路本地
169.254.0.0/16
# 专用网络
172.16.0.0/12
# 保留(IANA)
92.0.0.0/24
# 专用网络
192.168.0.0/16
4.3. IPv6 CIDR
类似于 IPv4 中的 CDIR
表示法,IPv6 用前缀来表示网络地址空间,后面为主机号。
示列
代码语言:javascript复制# 表示前缀为48位的网络地址空间,其后的80位可分配给网络中的主机
2001:250:6000::/48
特殊常见地址块
代码语言:javascript复制# 未指定地址,不可指定给某个网络接口,并且只有在主机尚未知道其来源IP时,才会用于软件中
## 即 0:0:0:0:0:0:0:0
::/128
# 链路本地地址,相当于 IPv4 中的127.0.0.1/8
## 即 0:0:0:0:0:0:0:1
::1/128
# 唯一区域地址,类似于IPv4的专用网络地址10.0.0.0/8、172.16.0.0/12和192.168.0.0/16
fc00::/7
# 全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址
2001::/16
# 6 to 4 地址,用于6to4自动构造隧道技术的地址
2002::/16
# 早期开始的IPv6 6bone试验网地址
3ffe::/16
参考
- [1] 维基百科 - IPv6
- [2] 维基百科 - IPv4
- [3] RFC 2373 - IP Version 6 Addressing Architecture
- [4] 认识 IPv6 地址和 CIDR