参考:

知乎:ipv6地址分类知识

BiliBili: Cisco路由交换IPv6-1

BiliBili: Cisco路由交换IPv6-2

IPv6 特性

  • 无状态自动配置(链路本地地址)

    • 配置在路由器端口上的IPv6地址会每隔2s发给内网主机一次自动配置请求,可以将自身的IPv6的必须64位网络号(前缀)分配给各个主机,各个主机拿到会和自己的Mac地址进行自动生成128位的IPv6主机地址。

    • 实现了网络设备即插即用新特性,无需DHCP即可配置。

  • 多宿主

    • IPv4 需要进行Nat转换,但IPv6 可以不需要转换,可进行多个运营商分配一段IPv6地址来配置公司局域网内的所有主机的公网IP,且一个主机可配置多个不同运营商公网地址。

    • 无需NAT转换,减少边界路由器负载。

    • 由于一个主机可配置多个IPv6地址,做重遍址(换IP)非常方便,换地址时可让新地址先配置进来,再去掉老地址。

  • 简化包头结构

    • 路由效率、转换性能、转换速率提高。
    • 取消广播地址,用组播代替,无地址浪费(网络、广播地址)
    • 现在可靠性完整性提高,IPv6取消头部校验,提高转换效率。
    • 基本报头8个字段,设计出扩展报头,可自由加报头,比如加移动(手机)特性和安全特性(IPsec)。
    • 流标签(保留未使用字段)
    • IPv6 不可分片,产生的包全部小于MTU,故不分片。

前缀

理解为IPv4子网号

按照规范一般情况下前缀64,否则会破坏某些功能,但其实分了也不是不能用。

image-20230830000935377

  • 前缀 64bit
  • 接口ID 64bit

接口ID

理解为IPv4主机号

image-20230830001045780

  • 前缀 56bit
  • 子网 8bit
  • 接口ID 64bit

IPv4 & IPv6

IPv4 32bit 即4Byte长度。

IPv6 128bit 即16Byte长度。

IPv4 & IPv6

  • 黄色代表共有部分
  • 蓝色代表IPv6有但改变了位置和名称
  • 红色代表IPv6没有的字段
  • 灰绿色代表IPv6新增字段

地址写法

IPv4 IPv6
“.” 分十进制 “:” 分十六进制
共 32 bit 共 128 bit
每 . 分段8bit 每 : 分段16 bit
4 Byte 16 Byte
大约42亿地址量 大约3.4*10^38地址量

双站(Dual stack)

一个主机既有IPv4 又有IPv6 ,目前最常见方案。

只有IPv4一般只可访问IPv4,但同时有,如果被访问目标支持IPv6就会优先使用IPv6进行访问。

IPv6 /IPv4 站点互访(6to4 tunnels技术)

实现两个IPv6 站点的互访,只通过IPv4,将IPv4转换为IPv6,后两个IPv6 可相互连接。

6to4隧道技术的实现允许IPv6主机在不需要IPv6直接连接的情况下,在现有的IPv4基础设施上与IPv6网络进行通信。然而,需要注意的是,6to4隧道技术可能会面临一些限制和挑战,例如IPv4网络的NAT(网络地址转换)可能导致通信问题,而且6to4隧道的性能也可能受到IPv4网络质量的影响。

往IPv6外加IPv4外包头(tunnels技术)

  1. 静态tunnels
  2. 自动tunnels
    • 必须2002开头
    • 将将要转换的IPv6的一部分要于自己IPv4 32地址进行附加到中间部分
    • 不需跑路由协议

Translation

IPv6

IPv6 简化写法

  • x:x:x:x:x:x:x:x一个x 代表一个16 bit分段。
  • 大小写不敏感。
  • 每分段前面的0可省略。
  • 若连续分段内全为0,则数个分段内全0可省略成“::”,但要注意可被机器识别(每个IPv6只能出现爱一次::)。

注意分割

IPv6 URL

书写格式:https://[x:x:x:x:x:x:x:x]:8080/index.html

  • 用作诊断目的
  • Fully Qualified Domain Name(FQDN)正式域名

地址构成

  • 前缀:相当于IPv4网络号
  • 接口标识:相当于IPv4主机号
  • IPv6地址=前缀+接口标识

地址分类

单波地址

一对一传输
无ABCDE之分,无自动汇总,需手工汇总

  • 公网地址

  • 链路本地地址

  • 本地站点地址(私网IP地址)

  • 特殊单播地址

    • 未指定地址
    • IPv4兼容地址
    • 环回地址

链路本地地址

FE80::/10 开头

当网络端口启用时IPv6强制会配置一个链路本地地址

fe80开头就像169.254.x.x无法用于上网,是这个网络没人给你分配IP,自动协商的地址,不能用于上网。

公网地址与其共存

举例:邻居发现协议

主机=前缀64bit+EUI转换Mac为64bit

  1. 将64位的前缀地址固定位
  2. 后48bit Mac进行中间分开加入FF:FE,共加到64bit
  3. 将第7bit反码

反码的原因就是:由于Mac于EUI的第七位表示不同,全球于本地之分。

公网地址

IPv6 地址分类

图中表内箭头所指的/3表示相当于IPv4中的掩码,只掩码了三位,但是说明只取了所有IPv6地址的1/8

  • 开头第一个IP:2000:0000:0000:0000:0000:0000:0000:0000
  • 倒数第一个IP:3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

而又把这1/8的地址再进行分割(加到16位掩码)

  • 2001::/16 IPv6 目前全球使用的IP公网地址段
  • 2002::/16 IPv4过渡 IPv6所使用的地址

公网地址再进行分段

  1. 首先进行总共地址的二进制形式001开头的3位掩码进行取1/8的取出分配。
  2. 16位掩码的2001规定全球公网地址段。
  3. 23位掩码的地址分配给5个分局(洲)
  4. 32位掩码的地址再分配给各个国家
  5. 48位掩码分配给各个大公司
  6. 64位再分配给各个分公司

私网地址

只能应用于局域网内,不能用于公网。

比如打印机、本地服务器、本地不需要公网访问,就需要一个私网地址来保障设备安全性。

IPv6私网地址

FEC0::/10开头,10位掩码全表示私网地址。

未指定地址

0:0:0:0:0:0:0:0

即:未指定IPv6 地址,IPv4 未指定为0.0.0.0

应用:写默认路由时,表示所有路由。

环回地址

0:0:0:0:0:0:0:1

IPv4 127.0.0.1

代表本机

IPv4兼容地址

前96bit全为0,后32位原封不动复制IPv4地址

已经弃用

  • 组播地址

    • 一对多
    • 取消ARP,用ICMP代替,利用IPv6 算出对方组播地址发给他后对方回复Mac地址
    • 用于检测IP地址冲突,ICMP发给自己的组播地址,如果有别的主机回应就说明有其他主机配置了和自己一模一样的无状态配置地址。
  • 任意波(泛波)地址

    • 略~

运营商IPv6分配情况

  • 电信是240e开头的(240e::/20)
  • 联通是2409开头的(2409:8000::/20)
  • 联通是2408开头的(2408:8000::/20)

IPv6 资源推荐

家庭IPv6

网卡配置IPv6地址没有数量限制

image-20230830001935722

  1. 路由器WAN口PPPoe拨号获取IPv4 IPv6 IPv6前缀
  2. 获取到默认网关和DNS服务器,一般是路由器
  3. 主机可根据自己的Mac配置除前缀不变的任意公网IPv6地址

也可以手动更改IPv6,只要运营商给的前缀不变皆可使用。

特殊情况

一些路由器可能包含了一个IPv6防火墙,会阻断所有IPv6入站的情况,搭建到电脑的网站根本无法被外部IPv6访问。

image-20230830002928661

IPv4 公网特殊端口会被运营商阉割掉,但目前情况来看未来IPv6特殊端口也会走向阉割路线,特殊端口比如:80 8080 443 53等

image-20230830003149752