IPv6笔记
IPv6地址格式
IPv6的地址长度是128-bit (相对应的 IPv4 是 32-bit), 将这128位地址按每段16位划分为8个段, 将每一段转换成十六进制数, 中间用冒号隔开, 就是IPv6地址的完整格式. 例如 fdfc:e92f:7272:0000:0001:2345:6789:abcd. 这个地址很长,可以用两种方法进行压缩:
省略前导零
将每一段的前导零省略, 但是每一段都至少留一个字符, 例如 fdfc:e92f:0:0:1:2345:6789:abcd
双冒号代替连续零
如果一个IPv6地址中几个连续的段都是0, 可以将连续的0简化为:: , 每个地址中只能有一个:: , 例如 fdfc:e92f:7272::1:2345:6789:abcd
单播地址 Unicast IPv6 Addresses
可聚合全局单播地址 Aggregatable Global Unicast Addresses
相当于IPv4里面的global addresses, 前三个bit是001, 例如 2000::1:2345:6789:abcd
链路本地地址 Link-Local Addresses
用于同一个链路上的相邻节点之间通信, 相当于IPv4里面的169.254.0.0/16地址. Ipv6的路由器不会转发链路本地地址的数据包. 前10个bit是1111 1110 10, 由于最后是64bit的interface ID, 所以它的前缀总是FE80::/64, 例如 FE80::1
站点本地地址 Site-Local Addresses
对于无法访问internet的本地网络, 可以使用站点本地地址. 这个相当于IPv4里面的private address (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). 它的前10个bit是1111 1110 11, 它最后是16bit的Subnet ID和64bit的interface ID, 所以它的前缀是FEC0::/48. 在RFC3879中, 最终决定放弃单播站点本地地址, 放弃的理由是, 由于其固有的二义性带来的单播站点本地地址的复杂性超过了它们可能带来的好处, 它在RFC4193中被ULA取代.
唯一本地IPv6单播地址 ULA, Unique Local IPv6 Unicast Address
在RFC4193中标准化了一种用来在本地通信中取代单播站点本地地址的地址, ULA拥有固定前缀 FD00::/8, 后面跟一个被称为全局ID的40bit随机标识符.
未指定地址 Unspecified address
0:0:0:0:0:0:0:0 或者:: 当一个有效地址还不能确定时, 一般用未指定地址作为源地址, 未指定地址不能作为一个目标地址来使用.
回环地址 Loopback address
回环地址 ::1 用于标识一个回环接口, 可以使一个节点可以给自己发送数据包, 相当于IPv4的回环地址127.0.0.1
兼容IPv4的地址 IPv4-compatible address
形如::w.x,y.z 这里的w.x.y.z是IPv4公共地址的十进制点号表示法, 用于IPv6/IPv4节点们(同时支持)在使用仅支持IPv4的网络上用IPv6的协议进行通信. 但是事实证明这种技术不是个好主意,RFC4291中废弃了对这类地址的使用。
IPv4映射地址 IPv4-mapped address
形如::FFFF:w.x.y.z 这里的w.x.y.z是IPv4公共地址的十进制点号表示法, 用于一个仅支持IPv4的节点表现为一个IPv6的节点.
6 Over 4地址
[64bit-prefix]:0:0:WWXX:YYZZ, 其中 WWXX:YYZZ 是w.x.y.z IPv4公共地址的十进制点号表示法, 用于一个使用6to4协议的隧道机制的节点.
6 To 4地址
2002:WWXX:YYZZ:[SLA ID]:[Interface ID], 用于表示一个使用6to4协议的隧道机制节点.
IPv6多播地址 Multicast IPv6 Addresses
前8个bit为1111 1111,其中
FF01::到FF0F::的多播地址是保留专用地址
FF01::1 节点本地范围所有节点多播地址
FF02::1 链路本地范围所有节点多播地址
FF01::2 节点本地范围所有路由器多播地址
FF02::2 链路本地范围所有路由器多播地址
FF05::2 站点本地范围所有路由器多播地址
为 IPv6 划分子网
在对 IPv6 地址空间进行子网划分时, 需要使用子网划分技术. 以一种允许将剩余地址空间的摘要和委派路由到 IPv6 Intranet 的不同部分的方式, 为 48 位全局地址前缀划分16位子网ID字段.
您不需要以任何特定的方式进行子网划分, 此处介绍的子网划分技术假定您是通过使用子网 ID字段的高序位划分其地址空间的可变部分来进行子网划分的. 虽然此方法有助于分层寻址和路由, 但此方法并不是非用不可. 例如在只有少数子网的小型组织中, 您可以通过为子网编号(从 0 开始), 轻松地为全局地址创建平面寻址空间。
判断公网 IP 和内网 IP
公网IP
目前已分配 IPv6 的公网地址都是 2XXX: 开头的, 非常好辨别. 其中
2002: 开头的是 6to4 地址, 由用户端设备自动建立, 通过隧道技术连接至 IPv6 互联网, 不是运营商管理和分配的, 服务质量与运营商无关, 只要有 IPv4 公网地址且设备支持 6to4 协议, 且没有被运营商*就能建立.
2001: 开头的是 6in4 地址, 是另一种隧道协议. he.net 提供的 IPv6 Tunnel Broker 服务就是采用这种协议.
通过以上两种隧道技术获得的地址也是公网 IPv6 地址, 只不过他们不是由运营商提供的, 而是用户端设备把 IPv6 数据包封装到 IPv4 的数据包中, 再通过第三方 Broker 服务器中转来访问 IPv6 互联网, 速度通常比较慢.
如果你的 IPv6 地址以2XXX:开头且不是2001 或者2002, 那么你的运营商已经提供原生 IPv6 网络的接入了.
常见的内网IP段
::1 loopback 地址, 表示本机, 等价于 IPv4 中的127.0.0.1
fe80::/10 是 link local 地址段, 只在同一链路上有效, 不能跨网段通信, 类似于 IPv4 下的169.254.0.0/16.
fd00::/8 就是通常意义上的内网地址段了, 等价于 IPv4 的10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 这三个段. 如果要组建 IPv6 内网, 通常都是在这个大段里随机挑选一个 /64、/56、或者 /48 的子网来用. 比如可以挑选 fd12:3456:789a:bcde::/64 作为局域网 IP 段.
fc00::/8 也是一个预留的内网地址段.
移动网络实测IPv6
移动4G网络
移动4G是支持IPv6的, 在移动设备上能获得 2409:8xxx:2500:开头的IPv6地址和10.151开头的IPv4地址.
在移动设备上启用Hotspot后, 下级设备连接获得的IP地址为, 如果访问外部IPv6地址, 对方看到的是Temporary IPv6 Address这个地址
Connection-specific DNS Suffix . : IPv6 Address. . . . . . . . . . . : 2409:8xxx:2500:eb0:b85e:dxx0:e3fc:8e32 IPv6 Address. . . . . . . . . . . : fdad:48ab:3244::d0f IPv6 Address. . . . . . . . . . . : fdfc:e92f:7272:4::d0f Temporary IPv6 Address. . . . . . : 2409:8xxx:2500:eb0:485e:04:fc1b:5547 <--- This will be got by the server be visited Link-local IPv6 Address . . . . . : fe80::b85e:dxx0:e3fc:8e32%13 IPv4 Address. . . . . . . . . . . : 192.168.43.64 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : fe80::966e:cbc0:c325:e566%13 192.168.43.1
移动宽带
移动宽带也支持IPv6, 在光猫路由器上的IPv6连接信息为
PPP 2_INTERNET_R_VID_10 GUA获取方式 SLAAC GUA 2409:8a00:2407:1d81:7ac3:13ff:aa94:3bb9/64 DNS获取方式 DHCPv6 DNS1 2409:8000:2000:0:170::1 DNS2 2409:8000:2000:0:70::1 DNS3 WAN MAC 78:C3:13:A4:BB:EE 前缀获取方式 DHCPv6 获取前缀 2409:8a00:2471:bec0::/60 网关获取方式 SLAAC 网关 fe80::200:5eff:fe00:114
光猫的下一级设备, 获得的IPv6连接信息为
Protocol: DHCPv6 client Prefix Delegated: fdfc:e91f:7272:4::/62 Address: 2409:8a00:2471:bec0:2276:93ff:f03d:5209/64 Address: fdfc:e91f:7272:0:2276:93ff:f03d:5209/64 Address: fdff:20d9:f316:0:2276:93ff:f03d:5209/64 Address: fdfc:e91f:7272::60e/128 Gateway: fe80::1 DNS 1: fdfc:e91f:7272::1 DNS 2: fe80::1 IPv6-PD: fdfc:e91f:7272:4::/62
其中2409:开头的是外网访问地址. 实测从移动4G的IPv6可以直接访问移动宽带的光猫下一级设备, 因为没有可用的其他网络的IPv6, 无法测试是否真正可以在公网使用.