用wg 构建自己的Overlay Network

traceroute from Mac to router

由于今天回家,加上Menci 告诉我说ios 上有wg 的客户端了,借我了一个美区账号,于是我就修了一下脚本,终于构建出来一个完全的overlay network了。

拓扑大概是:

1
2
3
4
5
6
7
           (10.56.100.1)
Mac --------- bj --------- hk (10.56.100.2)
/ \ /
/ \ /
/ dorm-router (10.56.100.3, 10.56.40.1)
iPhone |
10.56.40.0/24 (宿舍内网)

大概是用wireguard 全部做p2p的隧道。然后在一些需要做路由的节点写上路由表,来把整个网络打通。

我为了让路由节点的ip和interface看起来整洁一点,我创建了一个network namespace,用veth创建一对端口,连接主机和ns,这样所有中间路由节点就有统一的ip,并且不影响自己外部的网络。

最终配置的脚本在这里。 里面的iPhone 和 Mac生成的脚本是一个占位符,目的的是为了建立的wg的端口。寝室里面处理内网的那段配置也没有在这里面体现出来,需要手动处理一下。