背景介绍:
我们学校校园网支持ipv6,属于教育网网段。我的手机(联通)流量也支持ipv6。
做了几个实验:
- 电脑连接校园网,手机开流量,电脑ping手机的ipv6地址,超时。
- 电脑连接校园网,手机开流量,电脑ping手机的ipv4地址。(由于联通使用了NAT,所以ping百度「ip」所得到的地址)超时。这一步大概确认联通的NAT出口屏蔽了ICMP消息。
- 手机开流量,电脑连接手机的热点。此时,ping手机的ipv6,成功。
- 电脑连校园网,手机也连校园网。电脑ping手机的ipv4,成功。(由于安卓的wifi没办法获取到v6,就没ping v6)。这步主要确认不是手机无法接受ping消息。
- 做上述实验的起因是我用ut下载东西,能连上对方,然而ping不通。(这个可能是因为对方防火墙过滤了ICMP消息?)但是有时候就直接连接不上对方,虽然pt站网页显示有人ipv6做种。
我的问题是,ipv6不是不存在内网这一说法吗?也就是所有ip都是公网的。如果是这样,为什么3可以成功而1不成功?
问题有点长,谢谢各位能看到这里,也提前感谢诸位大佬的解答(?????)
要判断是不是内网, 最容易做的事情就是看你拿到的 IP 是不是 2000:/3 这个所谓 Global Unicast Address 地址范围.
IPv6 放弃了 IPv4 的 DHCP 有状态地址分配方案, 最推荐的地址分配方案是 SLAAC 的地址分配, 也就是你的路由器基于 NDP(ICMPv6) 广播自己的路由, 然后别的设备根据自己的 mac 地址去填充这个路由下的地址后缀部分得到完整的地址. 当然也会选择完全随机的方式去生成随机地址.
而因为没有 NAT, 这个时候路由器就需要额外方法保护内网设备. 最简单的方法就是用有状态防火墙. 根据你的说法可以知道:
- 内网-&>外网能用 ICMPv6 echo, 说明路由器为本身无状态的 ICMPv6 echo 建立了一个状态, 允许双向放行
- 内网&
实践上说,目前IPv6的主流配置是不做NAT的,大多数运营商下的大多数IPv6地址都是公网地址,即便是通过路由器配置到你家庭网路内部的设备上也是如此。
但,有一种东西叫防火墙啊…IPv6公网地址不等于没有防火墙拦著你啊。同样目前的主流配置也是由路由器的防火墙挡掉大部分入站连接。手机运营商的IPv6大多数也是此种配置,而且一般比家用的更严格,基本完全阻止入站连接。
这只能说明校园网是区域网而蜂窝信号不是。
你这个情况和ipv6是否公网地址其实没有直接关系,
目前我国家用宽频,只要支持ipv6的,都是分配前缀地址,不是ipv6地址,而是网段,直接给你一个前缀网段,一般是240X开头,由网关负责分配,但是icmp包,不见得每个网关都允许啊?如果是通过路由器上网的,可能路由器的防火墙直接就把icmp给干掉了,这非常常见,防止扫描用的.
另外,普通电脑上,非伺服器操作系统默认是开启了随机ipv6地址模式,一台电脑上会有好几个ipv6地址,分为长效地址[可连入,只有一个]和临时地址[一段时间后可能会多达10来个],去连接的时候其实使用的是临时ipv6地址,只有连接双方可以连接和传输,你看到其他人的ipv6地址大概率属于临时地址,这个时候无论有没有防火墙,你根本ping不通,除了临时ipv6地址主动连接的对方,其他人都连不进来的.
还有一种可能是校园网的ipv6没有真正连接到ipv6公网[或者连接china net的带宽非常小],还属于孤岛,android的wifi早就支持ipv6了,至少我在android 4.1就成功测试过ipv6,如果你没有获取到ipv6,那么有可能是你的校园网路是6IN4模式,你的ipv6地址可能是类似200X开头的隧道地址
坐标苏州联通,有公网IPV4地址。
分配的IPV6地址,外部可以访问。并且443埠可以访问,80埠没测。