网络背景
寝室一个路由器(Dorm-1
),其直接接入校园网,假设 IP 是 172.17.2.2
(虽然 IP 会不断变化,但是有 DDNS 以及为了方便描述,始终以这个作为说明)
该路由器使用网段为 192.168.8.1/24
,内部有一个旁路网关(Dorm-2
) LAN: 192.168.8.2 WAN: 192.168.8.3
(为什么旁路还要接俩口,因为一个网口没配置上,最后又加了个虚拟网卡连一块了)
在学校某个教室存在一个路由器网络环境,假设其 IP 是 172.20.3.3
(172.20.0.0/16
和 172.17.0.0/16
是互通的)
该网络接入同样是路由器(192.168.1.1/24
,其中有一个台式机是 192.168.1.36
)
该台式机内存在一个虚拟机 OpenWrt(记为 Router-VM
),LAN 口接入虚拟机 VMnet9
,使用网段 192.168.9.1/24
,作为网关和路由器,广播 DHCP。WAN 口直接桥接到宿主网络,即 192.168.1.37
网络需求
- 在寝室除了寝室网络环境(
192.168.8.1/24
外),可以访问虚拟机网络192.168.9.1/24
,在该台式机同样可以访问到寝室网络 - 因为
Dorm-1
路由器性能太差,因此考虑将大部分组网负担分担到Dorm-2
上,Dorm-1
将到达对方的流量转发到Dorm-2
- (可选)在校园网其他地方随时接入到这两个网络(为什么可选,因为端口转发、代理,以及台式机远程桌面可以解决大部分需求)
本来考虑 ZeroTier 或者 Wireguard,但是因为 Wireguard 没有配置成(x),以及非校园网访问的需求,所以采用了 Zerotier
ZeroTier 在配置完成的情况下,可以很简单的认为就是一个接口,这个接口对应了它的一个子网段。子网内设备彼此互联。不需要考虑任何其他细节。具体如何连接等细节,是其自动进行的(在学校这个例子,似乎是走的 ipv6 组网)
简要方案
ZeroTier 两侧路由器组网,双方互通
ZeroTier 网络使用 192.168.192.0/24
,给两个路由器分别分配 192.168.192.1
和 192.168.192.2
之后在 ZeroTier
添加路由表,将到达 ZeroTier 的流量进行分流
Network Dest
192.168.8.0/24 192.168.192.1
192.168.9.0/24 192.168.192.2
这样保证了首先到达 ZeroTier 的流量被正确处理
路由器添加路由,路由到达对方网络的流量
之后路由器进行配置,将到达对方网段的流量进行路由(这里没有路由到达 192.168.192.0/24
的流量)
Dorm-1(192.168.8.1
)
Network Dest
192.168.9.0/24 192.168.8.3
Dorm-2(192.168.8.2
,192.168.8.3
,192.168.192.1
)
Network Dest
192.168.9.0/24 192.168.192.2
Router-VM(192.168.9.1
,192.168.192.2
)
Network Dest
192.168.8.0/24 192.168.192.1
台式机(192.168.9.2
)
Network Dest
192.168.8.0/24 192.168.9.1
任意地方的网络接入
在笔记本上安装 ZeroTier 客户端即可。
会自动路由到达 192.168.8.0/24
和 192.168.9.0/24
的流量