IPV6 地址介绍
IPV6地址结构为: 前缀 + 接口标识
前缀相当于IPV4中的网络ID,接口标识相当于主机ID
IPv6地址共128 bit ,分为8个16bit的块,中间用冒号隔开.
例如: 2001 : 0DB8 : 0000 : 0000 : 02AA : FF00 : 1234 : 4500
地址缩短规则:
1, 丢弃前导零,即 : 02AA : 可写成 : 2AA :
2,如果包含两个以上的连续零的块,忽略这些所有,并换上双冒号.
连续的块只能替换一次,如果还有,可缩短到单个零.
所以上述地址可缩短成: 2001 : DB8 :: 2AA : FF00 : 1234 : 4500
IPV6前缀只和路由或地址范围有关,而和单个的单播地址无关
IPV6接口ID实现方法:
-
方法1,由IEEE EUI-64 规范生成:
即由设备MAC地址生成 接口ID.
转换方法,在MAC地址中间加入 FE,并且第7位置零或者置一.
例如: MAC地址为: 11:22:33:AA:BB:CC
生成接口ID为: 1122:33FF:EEAA:BBCC
或为 1322:33FF:EEAA:BBCC
第七位:置零,表示本地唯一; 置一,表示全球唯一. -
方法2: 设备随机生成.
-
方法3: 手工配置.
IPV6地址的类型
单播地址
全球单播地址:
001 | 全球路由前缀 | 子网ID | 接口ID |
---|---|---|---|
3bit | 45bit | 16bit | 64bit |
固定设置为001的部分:最高三位设置为001
全球路由前缀:为特定的组织站点指定的全球路由前缀,前三位固定值和后四十五位指定值共同构成了一个分配给某组织机构站点的48位站点前缀.
子网ID: 是组织站点用来标识站点内的子网.
接口ID: 用于标识站点内特定子网的接口.
链路本地地址
1111 1110 10 | 0 | 接口ID |
---|---|---|
10bit | 54bit | 64bit |
即前缀为 FE80::/64
设计目的:用于自动地址配置,邻居发现或者无路由器存在的单链路的寻址.
路由器不能将带有链路本地源地址或者目的地址的任何包转发到其他链路去.
站点本地地址
类似IPV4中的私有地址
1111 1110 11 | 0 | 子网ID | 接口ID |
---|---|---|---|
10bit | 38bit | 16bit | 64bit |
设计目的: 用于无需 全球前缀的站点内部寻址
路由器不应该转发 站点外具有站点本地原地址或目的地址的任何包.
特殊地址
1,未指定地址: ( 0:0:0:0:0:0:0:0或 :: )用于表示不存在的地址.
该地址等同于IPV4的未指定地址0.0.0.0
未指定地址通常在目标地址还为确定时充当源地址使用.
未指定地址不能分配给接口或者是做为目标地址使用.
2.环回地址:(0:0:0:0:0:0:0:1或 ::1)分配给环回接口,使得节点能够向自己发送数据包,该地址等同IPV4的换回地址127.0.0.1.
发往环回地址的数据包永远不应该通过链路发送或者通过IPV6路由器进行转发.
过渡地址
1,IPv4兼容的地址:
0:0:0:0:0:0:w.x.y.z或者 ::w.x.y.z
其中wxyz是点分十进制表示的共有IPV4地址
0 | 0000 | ipv4地址 |
---|---|---|
80bit | 16bit | 32bit |
2,IPv4映射的地址:
0:0:0:0:0:FFFF:w.x.y.z
0 | 1111 | ipv4地址 |
---|---|---|
80bit | 16bit | 32bit |
3,6to4地址
形如: 2002:wwxx:yyzz:子网ID:接口ID的地址
2002 | wwxx:yyzz | 子网ID | 接口ID |
---|---|---|---|
16bit | 32bit | 16bit | 64bit |
wwxx:yyzz是IPv4公有地址w.x.y.z的冒号十六进制表示.
4,ISATAP地址:
是ISATAP(自动隧道编址协议)IPv6过渡技术,节点会分配一个如
"64位前缀:0:5EFE:w.x.y.z"的地址
0:5EFE:w.x.y.z | 接口ID |
---|---|
64bit | 64bit |
5,Teredo地址:
节点会被分配一个以2001::/32为前缀的全球地址.除去前32为,还会包含Teredo服务器的IPv4地址,标志位和Teredo客户端外部地址的模糊版本以及UDP端口号.
组播地址
前8位固定为1 ,也就是FFxx::/8
1111 1111 | flags | scop | 组ID |
---|---|---|---|
8bit | 4bit | 4bit | 112bit |
标记: 组播地址中的标记,共4bit,后3bit是标记位,其中:
最后一位是暂时态(T)标记,若置0,表示该组播地址是由LANA分配的永久组播地址(总所周知的组播地址)
若置1,表示该组播地址是暂时组播地址
倒数第二位是前缀§标记,用于表示该组播地址是否基于一个单播地址前缀.
倒数第三位是交汇点地址®标记,用于表示组播地址中是否含有内嵌的交汇点地址.
scop: 指定组播数据需要被发往那个IPv6网络范围.除了使用组播路由协议提供的信息外,路由器还要使用组播范围段来判定组播流量是否能发出去.
scop字段值 | 作用范围 |
---|---|
0 | 保留 |
1 | 接口本地范围 |
2 | 链路本地范围 |
3 | 保留 |
4 | 管理本地范围 |
5 | 站点本地范围 |
8 | 组织本地范围 |
E | 全球范围 |
F | 保留 |
任播地址
一个任播地址可以被分给多个接口.
去往一个任播地址的数据包会被路由设备发往最近的一个分配了该任播地址的接口.因此,路由设备就必须知道那个接口分配了任播地址,以及这些接口的以路由为度量的距离.而这一点是通过在所有(属于未对该任播地址进行汇总的网络区域中的)路由设备之间发送主机路由来实现的.
子网路由器任播地址
子网前缀 | 000…000 |
---|---|
n位 | 128-位 |
当子网路由器任播地址形成后,子网前缀中的位就会固定为一个合理的数值,其余位设为0
阅读: 深入解析IPv6 总结.