Loading... # 网络背景 寝室一个路由器(`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` # 网络需求 1. 在寝室除了寝室网络环境(`192.168.8.1/24` 外),可以访问虚拟机网络`192.168.9.1/24`,在该台式机同样可以访问到寝室网络 2. 因为`Dorm-1` 路由器性能太差,因此考虑将大部分组网负担分担到`Dorm-2` 上,`Dorm-1` 将到达对方的流量转发到`Dorm-2` 3. (可选)在校园网其他地方随时接入到这两个网络(为什么可选,因为端口转发、代理,以及台式机远程桌面可以解决大部分需求) 本来考虑 ZeroTier 或者 Wireguard,但是因为 Wireguard 没有配置成(x),以及非校园网访问的需求,所以采用了 Zerotier ZeroTier 在配置完成的情况下,可以很简单的认为就是一个接口,这个接口对应了它的一个子网段。子网内设备彼此互联。不需要考虑任何其他细节。具体如何连接等细节,是其自动进行的(在学校这个例子,似乎是走的 ipv6 组网) # 简要方案 ## ZeroTier 两侧路由器组网,双方互通 ZeroTier 网络使用 `192.168.192.0/24`,给两个路由器分别分配 `192.168.192.1` 和 `192.168.192.2` 之后在 `ZeroTier` 添加路由表,将到达 ZeroTier 的流量进行分流 ```python 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`) ```python 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`) ```python Network Dest 192.168.9.0/24 192.168.192.2 ``` Router-VM(`192.168.9.1`,`192.168.192.2`) ```python Network Dest 192.168.8.0/24 192.168.192.1 ``` 台式机(`192.168.9.2`) ```python Network Dest 192.168.8.0/24 192.168.9.1 ``` ## 任意地方的网络接入 在笔记本上安装 ZeroTier 客户端即可。 会自动路由到达 `192.168.8.0/24` 和 `192.168.9.0/24` 的流量 最后修改:2021 年 11 月 21 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏