OpenWrt 打通 IPv6 校园网

搞到了个校内 PT 站的邀请码,结果发现那站只有用 CERNET2 IPv6(≈校园网)才能访问……在宿舍里放个 NAS 显然不是那么现实,于是只能想个办法打通校园网,将主要数据存放在云服务器上。(就先不追求延迟和速度了,毕竟那个破烂路由器的 CPU 和宿舍里的百兆网口不是很允许……)这里采用的就是 OpenWrt 当中转的方案。

 


 

 

 


  • 刷入 Breed + OpenWrt

我是学生,闲来一条二手全新——大麦DW33D(Giga版),据说 CPU Benchmark 高达 2000 而且拥有 256MB 超大内存,性价比那是没话说。

 

首先进入管理界面看一下

这一股浓厚的 OpenWrt 风,也难怪刷进去会比较容易

 

首先要在它的管理界面刷上解锁了 u-boot 的固件(注意:下图刷的是错的,应为  dw33d解锁固件.bin )

校验界面,刷进去(同上:下图刷的是错的,应为 15.2MB)

 

重启过后,进入 web 界面设置 root 密码,再连上 SSH,把 breed-qca9558-dw33d.bin 传上去

刷入 breed 至 u-boot

重启,按住 reset(开机时按住),看到灯闪一遍后就表明成功进入了 breed

这是 breed 的 web 界面

 

要刷入 OpenWrt,首先连入 breed 的 telnet 控制台

设置环境(?)(教程里看来的)

重启后继续进入 breed,并在本机上设置好可访问的 web 服务器用于提供 OpenWrt 固件

我在这里使用的是 https://www.right.com.cn/forum/thread-4099914-1-1.html 的固件

刷完后 reset,稍等数数数数数分钟,就可以进入 OpenWrt 啦

这是 web 的 luci 管理

这是 SSH

 

 


  • 配置 IPv6 NAT + MacVLAN

从上个路由器(已配置为 switch)的 LAN 口引出一条线来插入大麦的 WAN 口,一瞬连上了校园网。大麦的 WiFi 不开白不开,IPv4 要登录有些麻烦,就先 DHCPv6 + RA 给 LAN 内主机分内网 IPv6,最后 NAT6 为主网卡(+主VLAN)的 IPv6 地址出网。

 

首先,照样,将 accept_ra 打开(IPv4/IPv6 的 forwarding 貌似默认开了?)

 

在 LAN 的网口设置里把发送 RA 勾起来(要不然没有默认路由)

这样就可以看到 ::/0 出现了

 

在防火墙规则里加上 LAN 到 WAN6 的 MASQUERADE

 

由于默认的 default 路由带有 from 属性,导致 LAN 网段无法正确选到它,所以在 WAN6 起来后要新增一条去掉 from 属性的路由。(虽然 accept_ra 开起来后会有一条 proto ra 的路由,但最好别用它)

 

*这样 LAN 内网就可以顺利通过 NAT6 出去了

 

接下来因为有那种 PT 的需求(或者其他的需求),最好再弄一个单独的 IPv6 来分配到外面去。这里就需要 MacVLAN 了。(之前还sb去桥接,结果 MAC 搞混了)

首先需要在主网卡(主VLAN)起来后为它创建几个 MacVLAN 设备(现在只需要用到一个)

 

然后在 luci 管理界面上绑定

这里选择 DHCPv6 (Stateful)是因为相同的 MAC 会被分到相同的 IPv6 地址

 

不添加路由并重设 MAC 地址

 

*这样 VMAP1 和 WAN6 就可以分别使用不同的 IPv6 了

 

 


  • 配置 WireGuard + Fullcone NAT

剩下就只有把 VMAP1 上的 IPv6 分出去了

创建一个 WireGuard 设备(接口)

监听 10.98.19.1/24 和 fd67:c8a1:94bf:1c9a::1/64 作为本端 IP

不添加路由,因为监听的 /24 和 /64 已经包括内网 IP 了(类似于 Table=off ?)

 

对端的 WireGuard 设置( fd67:c8a1:94bf:1c9a::ffff/128 是需要 Fullcone NAT 的地址,这里为了方便先监听一下)

这里的 tmap1(在 VPS 上)是 from fd67:c8a1:94bf:1c9a::/64 的 ip rule

 

以防万一,防火墙先允许一下

 

将两边的设备全部带起来,就可以通了

 

*至此 OpenWrt 与外部 VPS 已打通,接下来需要实现 Fullcone NAT

 

先添加一个 routing table

 

在 wgvpn1 起来后,加入 ip rule,带 via 的默认路由 dev macvlan1(不带 via 的话流量出不去)和 wgvpn1 的内网路由

 

在防火墙自定义规则里加入 MASQUERADE 和 DNAT

 

在防火墙区域设置里允许转发等

 

*这样就完成了一个 Fullcone NAT 。

 


  • 最后

 

curl 速度测试

 

CERNET2 网内访问 macvlan1 上获取的 IPv6 地址,自动转发到带 …::ffff/128 的 VPS 或后续服务器中;VPS 上使用 …::ffff/128 出网,自动经过 OpenWrt 路由至 CERNET2 网内。

唯一剩下的问题就是,准备要放数据的 Windows,不支持 source based routing……

不过这个问题也只能有空再解决了,因为不想让我的数学分析只剩下个数析……(泣

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注