上一篇文章:个人数字基建(1):在 VMware 安装 OpenWrt 主路由 里讲述了怎么在 VMware 中安装 OpenWrt 并且作为主路由使用。不过,出于一个或者多个以下原因,旁路由就可能是一个比较好的选择:
- 宿主机本身只有一个网卡。
- 宿主机网卡的各种乱七八糟的设置太麻烦了。
这个时候就需要另一种方案:保留原本的主路由器,外接一个旁路由。
先决条件
- 有一台电脑(下文中称为台式机),承担作为虚拟化宿主机的任务。
- 网络通过实体路由器接入。
- 台式机上安装了 VMware。
- 台式机能上网就行。网线/WIFI 连接到实体路由器上。
本文环境
- 宿主机:Windows 10 专业版 22H2,版本号 19045.3208
- VMware WorkStation 17 Pro
网络拓扑设计
逻辑上,应该如下图:

软路由和局域网内其他的设备一样接在主路由器下面。实际上如下图:

- 软路由的一个 LAN 口网卡(VMNet0 网卡)桥接到台式的实体有线网卡上。这样,因为台式连着主路由器,虚拟机软路由也连着主路由器。
- 软路由不需要有其他虚拟网卡。也就是说,相当于实体旁路由一个网口就行。
配置虚拟网络
参见 配置虚拟网络 一节,只需要配置 VMNet 0,也就是桥接到有网的实体网卡上。其他的虚拟网卡不需要配置。
下载 OpenWrt 镜像
参见 下载 OpenWrt 镜像 一节。
安装 OpenWrt 虚拟机
参见 安装 OpenWrt 虚拟机 一节。不过,自定义硬件时只需要添加一张网卡,就是之前设置的 VMNet 0。

配置 OpenWrt
第一次开机
vmware 开机刚刚建好的软路由虚拟机。在类似下面的界面静止不动大约 20-30 秒(或者显示 crng init done
)之后,鼠标点进去并回车。

出来 openwrt 的欢迎界面和 bash:

输入 vim /etc/config/network
并回车,按 i 键进入 vim 输入模式,按方向键移动光标,修改 ip 地址为 192.168.1.2
,然后按 esc 键,输入 :wq
回车来保存并退出。

备注
当主路由的局域网 IP 是 192.168.1.1
时,将旁路由的 IP 设为 192.168.1.x
,最后一位的 x 是还没被分配的数字,范围 2-254(1 一般都是被当作主路由,255 是广播地址不可分配)。
比如,如果主路由的局域网 IP 是 192.168.114.1
,但是 192.168.114.2
已被占用,那么可以设置为 192.168.114.3
。
然后输入并回车 service network restart
重启网络服务。
访问 WebUI
现在可以在浏览器中输入 192.168.1.2
访问管理页面。初始没有密码。
安装汉化
参见 安装汉化 一节。
路由器配置
注意:以下架构不是唯一的,网络上还有很多种不同的设置方式。
旁路由配置
你的界面可能与我的不同,因为我的打了 argon主题包。
首先进入刚刚安装好的软路由 WebUI,然后在防火墙添加一行:
iptables -t nat -I POSTROUTING -j MASQUERADE

重要
这个规则会让所有的上下行流量都经过旁路由。严格来说,这不是特别好的方法,所有下行流量经过旁路由是不必要的,只会增加旁路由负担(我只是图省事罢了)。更多内容请参见:
然后编辑 LAN 口:

首先把 IPv4 网关指向主路由并且保存:

再次点击 LAN 口编辑(下面都是这样),设置 DNS 服务器(DNS 服务器来源于主路由器拨号时运营商或者校园网下发的 DNS 地址,如右图;或者找其他的公共 DNS)。记得点击输入框的加号才能添加 DNS 服务器。

关闭旁路由上的 DHCP。

最后保存并应用修改。

主路由设置
核心要点是把主路由的 DHCP 下发的网关指向旁路由。
主路由就因个人而异了。比如我的是水星路由如图。

上述设置下的流程
让我们来复习/学习一下计算机网络的知识。
假设有一台电脑连接到网络,此时它还没有任何局域网 IP。
首先,它在网络里广播“谁是 DHCP 服务器?”,然后开了 DHCP 服务的主路由回应了“是我”。双方取得联系后,主路由分配 IP 并告知电脑:真正的网关/路由器是旁路由。
之后,电脑要向外网发送数据,首先发到它自认为的网关,也就是旁路由。旁路由收到数据后,因为在旁路由视角里网关是主路由,所以把数据又转发给了主路由,主路由再转发到外网。
设备设置
此时,旁路由设置完成。不过,其他在此之前就已经连上网络的设备,默认网关仍指向主路由,需要插拔网线、开关 WIFI 乃至重启(智能设备)才能生效。
备注
此方案下,旁路由和主路由任意一个出现故障,都会导致不能上网。
Comments NOTHING