IPV4 && IPV6
IPV4
展示了A、B、C类IP地址的二进制表示和它们的特征:
类别 | 地址范围 | 网络数 | 主机数 | 说明 |
---|---|---|---|---|
A | 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 1-126 | 2^24-2 | 第一位为0 |
B | 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 128-191 | 2^16-2 | 前两位为10 |
C | 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 192-223 | 2^8-2 | 前三位为110 |
D | 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 224-239 | 不适用 | 用于多播 |
E | 11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 240-255 | 不适用 | 保留用于实验和未来使用 |
在这个表格中:
- A类地址的范围是从
0.0.0.0
到127.255.255.255
,第一位必须是0。 - B类地址的范围是从
128.0.0.0
到191.255.255.255
,前两位必须是10。 - C类地址的范围是从
192.0.0.0
到223.255.255.255
,前三位必须是110。
D类和E类地址用于特殊用途,不用于普通的网络和主机地址分配。
拥抱ipv6
ipv6 原本是为了解决ipv4不足而提出的:
- IPv4的地址范围是
0.0.0.0~255.255.255.255
,其地址总量约43亿个(2的32次方),这其中还要刨去私有网段、网络ID、广播ID、保留网段、本地环回、组播地址等特殊地址段,最终的实际可用地址约为25.68亿个,全球互联网设备数是远超这个的。所以一方面设计了私有地址来上网 - 另一方面就是ipv6。IPv6的地址长度为128位,虽然地址长度仅仅是IPv4的4倍(IPv4是32位的),但IPv6的地址总量却达到了惊人的$2^{128}$。换一种更通俗的说法:地球上每一平方米,都可以分到10^26次方个IPv6地址,夸张一点来说,可以给每一粒尘埃都分配到一个地址。
实际运用的困难:
- 大多数设备默认没有开启
- 光猫 和 路由器都需要开启
- 需要自己check。访问
- ipw.cn or ip.sb
- http://www.test-ipv6.com/
- test-ipv6.com是主站点,有时会抽风,结果不准确。可以选择镜像站点测试,镜像网站列表为https://test-ipv6.com/mirrors.html,打开后访问其中的一个镜像站点进行测试。
- 查看是否支持ipv6
IPV6公网地址段分配
首先公网ipv6,也就是可聚合全球单播地址Aggregate global unicast address。是由IANA分配的可在全球路由的公网IP地址:
- 目前已分配的前缀:
2000::/3
占用了12.5%的IPV6地址空间 2000:0000:0000:0000:0000:0000:0000:0000
–3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
国内的ipv6地址段分配
三大运营商的IPv6地址分配情况:
- 电信是
240e
开头的(240e::/20
)、 - 移动是
2409
开头的(2409:8000::/20
)、- 我家移动宽带:
2409:8a50:ece:c110:ccf5:d43:c845:ece6
- 我家移动宽带:
- 联通是
2408
开头的(2408:8000::/20
) - 教育网
2001:da8::/32
- 学校的教育网地址:
2001:da8:d800:611:989d:fca0:ca20:f288
- 各大高校ipv6地址段
- 学校的教育网地址:
- 电信是
两种隧道技术获得的地址也是公网 IPv6 地址
2002
: 开头的是 6to4 地址,由用户端设备自动建立- 6in4并没有固定的地址段,而是由服务商自行分配。常见的由HE.net提供的隧道和Windows自动建立的Teredo隧道都恰好以2001开头而已。
- 以上两种不是由运营商提供的,而是用户端设备把 IPv6 数据包封装到 IPv4 的数据包中,再通过第三方 Broker 服务器中转来访问 IPv6 互联网,速度通常比较慢。
其他一些说明:
2001:250::/32
CERNET IPv6 Backbone 主干网- 2000年,CERNET获得由亚太地区网络信息中心(APNIC)分配的正式IPv6 sTLA地址
2001:250::/32
。 - 自 1995 年以来,CERNET 在北京设立唯一的国际出口,与美国、欧洲、亚太地区的学术网实现互联。目前,CERNET 网络国际和港澳地区带宽达到 10G 以上,CERNET 国内与其它互联网单位互联带宽达到 59G 以上。
- 2000年,CERNET获得由亚太地区网络信息中心(APNIC)分配的正式IPv6 sTLA地址
2001:da8::/32
China Next Generation Internet CERNET2- 中国下一代互联网(CNGI)示范工程核心网建设项目CERNET2
- CERNET2项目由中国工程院协调负责。由清华大学等25所大学联合承担的“CNGI-CERNET2主干网和CNGI-6IX”是该项目的重要组成部分。
- 2003年,为完成CERNET2建设项目,CERNET网络中心从亚太地区网络信息中心申请获得IPv6地址
2001:0da8::/32
。 - 2004年底建成了以2.5~10 Gb/s速率连接分布在20个城市的核心节点的CERNET2主干网,并以45 Mb/s速率与北美、欧洲、亚太等地的国际下一代互联网实现了互连。CERNET2可为全国100余所著名高校提供IPv6高速接入,为CNGI 6个主干网之间的高速互连打下了基础。
- 具有以下几个主要特点:主干网采用纯IPv6协议,而不是IPv4/IPv6双协议栈技术,是世界上规模最大的纯IPv6网络;
2001:252::/32
CNGI International Gateway Network (CNGIIGN)- 所有教育网出国流量都要经过它
2001:7fa:5::/48
RIPE Network Coordination Center- 欧洲IP网络资源协调中心(Réseaux IP Européens Network Coordination Centre,缩写作 RIPE NCC),全球五大区域性互联网注册管理机构之一, 是负责管理欧洲、西亚、前苏联地区Internet资源的区域互联网注册管理机构。总部设在荷兰阿姆斯特丹,并有一个在杜拜的分支机构。
非公网地址段
::1
代表 loopback 地址,表示本机,等价于 IPv4 中的127.0.0.1
。fe80::/10
地址是所谓的 link local 地址段- 当DHCP分配失败时由机器自动生成,只在同一链路上有效,不能跨网段通信,使用链路本地址的数据包的TTL值一般被设置为1,不会被路由器转发
- 类似于 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 段。- IPv6 规范中鼓励你随机挑选地址段,避免和别人家的地址段重复,以免并网时的麻烦。
fec0::/10
曾经是ipv6的内网地址段,但是为了支持 Unique Local Addressing,已在2004年9月的RFC3879中舍弃,并且新系统不应该支持这类型的地址。fc00::/8
也是一个保留的巨大内网地址段,具体怎么用现在还没有规范。
手机的ipv6问题
- 问题一:手机并不会默认分配ipv6,需要访问需要ipv6的网站来激活ipv6地址
- 查看手机ipv6:
- 华为鸿蒙系统:设置→ 关于手机→状态信息→网络
- 网站:
ipw.cn
- 激活ipv6:访问
test6.ustc.edu.cn
,如果能访问,说明ipv6已经激活
- 查看手机ipv6:
- 问题二: 手机流量ipv6的DNS解析极烂,而且无法配置DNS服务器
- 实际情形:自己Cloudflare注册的
jellyfin6.shaojiemike.top
无法解析 - 解决方法一:Clash配置里勾选ipv6和DNS解析代理,所有DNS请求会走代理.(手机的日志文件可以看出ipv6流量走了clash的路由管理)
- 解决方法二:如果只是为了wireguard连接能ping通wg服务端
6.shaojiemike.top
域名,只需在wg配置文件里添加DNS服务器为8.8.8.8
- 实际情形:自己Cloudflare注册的
ipv6地址的分配
目前 IPv6 的动态地址分配方式可以分成有状态(stateful)和无状态(stateless)两种,
动态的常见有DHCPv6,而高校中比较常见的也即其中的无状态地址自动配置(SLAAC)。
SLAAC 协议主要过程如下:
- 在客户端会向多播地址
ff02::2
广播 RS(Router Solicitation)信息; - 路由节点在收到 RS 后即会单播回复 RA(Router Advertisement)来告知客户端路由前缀(如
2001:da8:abc:def::/64
); - 客户端收到 RA 获取其所在子网的前缀,并配合 DAD 协议自动生成该前缀下唯一的全局路由地址。
多数高校中配置的 IPv6 环境会通过上述过程让客户端获取一个 /64 的地址段(如 2001:da8:abc:def:aa:bb:cc:dd/64
)
常见问题
ipv6偶发性断网的原因
不像校园网,ipv6分配好静态就不会变。运营商会固定周期更新ip。这种情况下,固定间隔时间点到的时候,光猫的IP地址会改变,但是下级设备无法自动跟随上游更新IP地址,导致地址冲突,所以会出现断网。所以需要重启光猫,重新分配有效ipv6。
解决办法:
- 打客服电话要求运营商将自动重播时间改为7天或者30天
- 光猫内设置定时重启,然后路由器重启获取光猫最新的IP地址
OpenWRT 给内网的每台设备分配单独ipv6
默认openwrt的ipv6是关闭的,需要手动开启,然后设置dhcpv6,这样才能获取ipv6地址。
命令行技巧
命令行查看ip所属实际地址
1 | $ curl ipinfo.io/202.38.64.58 |
参考文献
[^1]: OpenWRT 路由器IPv6实战配置长篇教程:纠正你的IPv4思维!
https://3g.163.com/dy/article_cambrian/EKMFF7TF0537828W.html
https://bgp.he.net/AS23911#_prefixes6
https://bgp.he.net/AS23910#_prefixes6
https://blog.icpz.dev/articles/notes/odhcpd-relay-mode-discuss/
https://l2dy.sourceforge.io/2021/05/11/openwrt-ipv6-relay.html
https://www.lategege.com/?p=676
ipv6偶发性断网的原因: https://jaylinwu.wordpress.com/2022/03/24/optical-network-terminals-enable-ipv6/