记-北科原生v6免流

记-北科原生v6免流
RazioreTG群组
@ernst_loosen_bot通过此bot加入,欢迎来玩喵~
Discord服务器 加discord群
断断续续耗时5天5夜,使我受益匪浅,本篇将不惜笔墨详细记录过程,当中有不足之处欢迎指出。
原生v6免流原理
其实很好理解,校园网只对外网下行v4流量计费,那么不让系统流量走v4协议而直接走v6就好,所以把使用的网卡禁用v4。如果开启了代理软件的TUN(虚拟网卡),只需要禁用原来网卡的v4协议。校园网分配的DNS服务器是202.204.0.0网段中的,禁用v4后我们显然需要一个v6 DNS,那么用普通的公共v6 DNS可以吗?
| 提供商 | ipv6 DNS | DoH | 备注 |
|---|---|---|---|
| 阿里云 | 2400:3200::1 2400:3200:baba::1 |
https://dns.alidns.com/dns-query | 限速 |
| 腾讯云 | 2402:4e00:: 2402:4e00:1:: |
https://doh.pub/dns-query | 限速 |
| CNNIC | 2001:dc7:1000::1 | ✕ | |
| CFIEC | 240c::6666 240c::6644 |
https://dns.puredns.cn/dns-query | |
| 2001:4860:4860::8888 2001:4860:4860::8844 |
https://dns.google/dns-query | ||
| Cloudflare | 2606:4700:4700::1111 2606:4700:4700::1001 |
https://cloudflare-dns.com/dns-query | 校园网中有时失效 |
| Quad9 | 2620:fe::fe 2620:fe::9 |
https://dns.quad9.net/dns-query | |
| Open DNS | 2620:0:ccc::2 2620:0:ccd::2 |
https://doh.opendns.com/dns-query | |
| AdGuard DNS | 2a10:50c0::ad1:ff 2a10:50c0::ad2:ff |
https://dns.adguard.com/dns-query |
可以,但是还有相当一部分网站不支持ipv6的,这样做无疑会对日常使用造成极大的干扰。那么使用校园网原生v6就不能让DNS直来直去了,考虑到兼容广大v4站点的需求,有一个最简单的方法:DNS64。关于DNS64,网上是这样解释的:
DNS64 是一种用于 IPv6 过渡的技术,它与 NAT64 配合使用,帮助纯 IPv6 设备访问 IPv4 网络资源。DNS64 的主要功能是将 DNS 查询中的 IPv4 地址(A 记录)转换为 IPv6 地址(AAAA 记录),从而使得 IPv6 设备能够解析并访问 IPv4 资源。
这段话解释的很明白了,DNS64把v4地址的域名欺骗性的解析成一个包含该v4地址的v6地址(即把ipv4嵌入到一个其具有的公共v6前缀的v6地址中),而NAT64负责把v4协议报文转换成v6。这两个服务配合使用就能实现在纯v6环境中访问v4资源。对于校园网环境来说非常合适,在计费系统中我们的流量是v6协议的,但实际上我们也能访问v4资源。目前公共的DNS64和NAT64服务有限,大多是小公司或组织运营,网络速度取决于NAT64网关的性能,且延迟较大。因为提供公共的NAT64服务需要足够的带宽、流量和服务器性能,还要承担极大的法律和滥用风险,所以愿意提供的企业很少,绝大多数都集中在带宽极其便宜且网络政策较宽松的欧洲地区(主要是德国、荷兰、芬兰)。
| 提供商 | DNS64服务器位置 | DNS64地址 | NAT64 | DoH |
|---|---|---|---|---|
| nat64.net | 荷兰,阿姆斯特丹 | 2a00:1098:2b::1 | ✓ | https://nat64.net/dns-query |
| nat64.net | 美国,阿什本 | 2a01:4ff:f0:9876::1 | ✓ | https://nat64.net/dns-query |
| nat64.net | 芬兰,赫尔辛基 | 2a01:4f9:c010:3f02::1 | ✓ | https://nat64.net/dns-query |
| nat64.net | 英国,伦敦 | 2a00:1098:2c::1 | ✓ | https://nat64.net/dns-query |
| nat64.net | 德国,纽伦堡 | 2a01:4f8:c2c:123f::1 | ✓ | https://nat64.net/dns-query |
| IPng | 荷兰,阿姆斯特丹 | 2a02:898::146:1 | ✓ | ✕ |
| Trex | 芬兰,坦佩雷 | 2001:67c:2b0::4 | ✓ | ✕ |
| Trex | 芬兰,坦佩雷 | 2001:67c:2b0::6 | ✓ | ✕ |
| level66 | 德国,法兰克福 | 2001:67c:2960::64 | ✓ | ✕ |
| level66 | 德国,法兰克福 | 2001:67c:2960::6464 | ✓ | ✕ |
| ZTVI | 美国,弗里蒙特 | 2602:fc59:b0:9e::64 | ✓ | ✕ |
| ZTVI | 美国,香槟 | 2602:fc59:11:1::64 | ✓ | ✕ |
| ZTVI | 美国,阿尔伯克基 | 2602:fc59:21:1::64 | ✓ | ✕ |
| Tuxis | 荷兰,埃德 | 2a03:7900:2:0:31:3:104:161 | ✓ | https://dns64.tuxis.nl/dns-query |
| Daniel Richter | 德国,纽伦堡 | 2a01:4f8:1c1b:757c::1 | ✓ | ✕ |
| Go6Lab | 斯洛文尼亚,什科菲亚洛卡 | 2001:67c:27e4:15::6411 | ✓ | ✕ |
| Go6Lab | 斯洛文尼亚,什科菲亚洛卡 | 2001:67c:27e4::64 | ✓ | ✕ |
| Go6Lab | 斯洛文尼亚,什科菲亚洛卡 | 2001:67c:27e4:15::64 | ✓ | ✕ |
| Go6Lab | 斯洛文尼亚,什科菲亚洛卡 | 2001:67c:27e4::60 | ✓ | ✕ |
| Cloudflare | 全球,Anycast | 2606:4700:4700::64 | ✕ | https://cloudflare-dns.com/dns-query |
| Cloudflare | 全球,Anycast | 2606:4700:4700::6400 | ✕ | https://cloudflare-dns.com/dns-query |
| 全球,Anycast | 2001:4860:4860::6464 | ✕ | https://dns.google/dns-query | |
| 全球,Anycast | 2001:4860:4860::64 | ✕ | https://dns.google/dns-query |
这张表应该是你能找到的最全的公共DNS64服务了。需要注意的是,CF和谷歌并没有公共的NAT64服务,需要额外配置。我没有挨个测试,IPng、Daniel Richter和Go6Lab的可能用不了,不试了。还有根据谷歌一篇文章的说法,DNS64最好只配置一个地址(也不要有v4),否则可能无法合成AAAA记录。关于有状态NAT64,可以看一下Cisco的这篇文章。另外提一下,NAT64还有妙用,见教育网Cloudflare V6免流
原生v6免流进阶
Cloudflare一篇文档里有这样一段话:
只有在你管理或使用仅支持IPv6的网络时,才应该启用DNS64。虽然解析器可以合成IPv6地址,但无法合成使用DNSSEC的域名的记录签名,因此能够重新验证签名的DNS客户端会拒绝这些没有签名的额外记录。一个不错的权衡是使用安全协议,如 DNS over TLS,或客户端与解析器之间使用 DNS over HTTPS 来防止篡改。
如果系统或浏览器强制要求验证DNSSEC,DNS64就无法工作。除非你自己配置,否则这一项应该是不会成为阻碍的,仅作提醒。
另外可以通过配置DoH(DNS over HTTPS)或DoT(DNS over TLS)来为DNS解析提供更好的安全保障,本质是通过加密DNS请求来防止劫持、篡改和保护隐私(校园网看不到你在查什么域名)。DoT使用853端口,特征明显但仍然是加密的,虽然校园网可以识别,一般不会全部禁用。DoH使用标准的HTTPS443端口,流量特征和普通网页浏览完全一样,一并整理在上表了。需要注意一些DoH可能失效。
根据Win11的史山设置,如果只是普通的想加个DoH,你需要在WiFi设置里把DNS设置改为手动,并启用DoH(检查DoH和DNS是否对应,必须同一提供商才能使用),在经典的控制面板里你是找不到DoH配置入口的。而Win10没有图形化配置界面,需要修改注册表或用第三方工具。
在浏览器中也可以配置DoH,Edge和Chrome都有一个叫“使用安全的DNS”的选项,作用范围是整个浏览器。只要你改其他网络设置的时候别忘了同步改就行。
配合DNS64使用DoH需要在控制面板里禁用ipv4协议,ipv6协议使用默认设置(自动获取),并在WiFi设置中改成手动配置DNS,只开启ipv6进行填写。根据Windows的双栈逻辑,如果你不禁用ipv4,即使你配置了v6的DNS64和DoH,Windows依然会通过DHCP自动获取校园网下发的v4地址和网关。只要有v4路径存在,Windows的Happy Eyeballs算法就可能会优先尝试通过v4连接。
写到这里顺便补充一下关于中国教育网及CERNET2。
CERNET/2与北科
中国教育和科研计算机网(China Education and Research Network)即CERNET,赛尔网络,是全国四大骨干网之一,网络中心设在清华。但这不重要。很多时候我们不会意识到,我们正处在全世界最大的纯IPV6互联网主干网中,可以看看CERNET2的网路地图和核心节点学校。另外有全国高校教育网IPv6分配列表和ISP中国教育网所有IPv6地址段表(CIDR),方便查询。还有一个赛尔自己做的教育系统IPv6发展态势监测平台,其中可以看到nike IPv6支持度评分赫然排123/147,而且没有自己的IPv6授权体系;除此之外还可以在教育网态势里查看一些很有意思的数据,然后你甚至可以在IPv6检测这个不起眼的页面把自己的博客加到CERNET2的DNS里去(懵逼了),而且他貌似是DDNS来的(手动刷新?)
进一步考古发现了远古北科v6站,甚至校徽还是旧版的。看拓扑就明白为啥5斋网好了,然后科大的网路貌似是从北邮拉过来的,这也解释了之前ipv6检测告诉我运营商是北邮。v6是否有网段隔离或者入站防火墙还没来得及测,v4之前测过,是有AP隔离的。另外学校的v6 DNS貌似寄了,v6站上记录的3个域名我都没有查到DNS记录,而v4 DNS有四个,dns.ustb.edu.cn,dns2.ustb.edu.cn,dns3.ustb.edu.cn,dns4.ustb.edu.cn,分别对应202.204.48.6,202.204.48.8,202.204.60.10,123.124.147.252。应该都挺眼熟的吧。
DNS、IP检测与测速
集中收录一下各种工具。排序不分先后。
DNS、IP检测:
系统流量监控:
- [sniffnet](https://github.com/GyulyVGC/sniffnet (强推)
- IPvFoo(浏览器扩展)
测速(主要针对CERNET2):
- 中国科学技术大学测速网站
- CERNET官方测速站
- 中国科学技术大学反向代理
- 南大测速
- speedtest.net
- Cloudflare Speedtest
- Google Fiber
- LibreSpeed
- 北科校内测速(V4)
Cloudflare V6免流(代理)
其他尝试
以下方法不一定成功,只是提供思路。
防火墙规则
通过添加阻止特定ipv4网段的防火墙规则阻断ipv4连接。出站规则>添加规则>自定义>所有程序>任何端口和协议>任何本地ip地址>下列远程ip地址>添加>ip地址范围>0.0.0.0-9.255.255.255 11.0.0.0-126.255.255.255 128.0.0.0-202.203.255.255 202.205.255.255-255.255.255.255>阻止连接>全选>输入名称。由于保留了校园网认证的网段,启用这条规则时可以进行校园网网络认证。或许可以再排除123.124.0.0/24。最后添加v6 dns。由于防火墙在网络层/应用层过滤,v4数据包依然会产生并尝试发送,只是在穿过Windows防火墙驱动程序时被根据规则丢弃了。恢复只需要禁用规则即可。
修改路由表
通过删除和修改路由规则阻断v4。cmd(管理员)route print查看0.0.0.0网关地址和接口编号,route delete 0.0.0.0断开所有v4外网,route add 10.0.0.0 mask 255.0.0.0 网关地址 if 接口编号 route add 202.204.0.0 mask 255.255.0.0 网关地址 if 接口编号添加白名单网段,根据需要可添加其他网段。最简单的恢复方法:禁用网卡再启用,或者重启电脑(如果添加路由时没加-p参数)。或者手动添加回默认网关route add 0.0.0.0 mask 0.0.0.0 网关地址。默认情况下,route命令添加的路由在重启后会消失。如果你想永久生效,需在route后边跟上-p参数(persistant)。另外如果你看到0.0.0.0有两个网关地址,记得不要删除192.168.x.x的网段,否则你连路由器都连不上。
Clash分流配置
由上面两个方法很容易联想到Clash的分流规则。这里并不是要使用v6 vps的代理,只是利用clash的分流规则对本地流量进行路由。
可以配合禁用网卡ipv4协议,或套入代理、DNS64等,灵活运用。







