Background
上一篇文章我们已经安装好了一个Openwrt虚拟机,那么这篇我们将教大家如何进行配来实现我们以下的架构:

设置网卡
我们将为Openwrt的虚拟机添加两张网络适配器
第一张使用桥接模式作为eth0网卡
第二张使用自定义的虚拟网络,选择仅主机模式的

为Openwrt配置网络
我们打开宿主机(Windows)的终端,使用ifconfig查看一下网络适配器。
这里我们需要关注一下宿主机在我们刚刚添加的虚拟网络中的IP和子网掩码 。

回到Openwrt的虚拟机中,输入vi /etc/config/network 。
输入i键进入编辑模式,配置按照图上的内容进行修改,需要单独留意一下红色方框中的ipaddr以及netmask
ipaddr需要设置得与刚刚查询的宿主机ip不一样,比如宿主机ip为192.168.211.1,那么我们设置为192.168.211.2 即可,netmask则和宿主机的的子网掩码一致。
按下esc输入:wq保存


配置转发规则
执行命令sysctl -w net.ipv4.ip_forward=1 确保开启内核转发。
执行以下命令,将Lan口流量通过Wan口进行转发,这样我们连接Openwrt的虚拟机就可以访问网络了。
bash
uci set firewall.@zone[1].masq='1'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='wan'
uci commit firewall
/etc/init.d/firewall restart
连接Openwrt
现在我们可以创建另一个Linux虚拟机来连接它,这里我们使用Ubuntu的镜像。考虑到需要作为k8s的节点,所以将IP固定下来会比较合适,而非使用DHCP。
这里我们只需要添加一个网络适配器即可,即仅主机模式的VMnet1。

输入sudo vi /etc/netplan/50-cloud-init.yaml 对网络进行设置:
其中addresses设置为本机想要绑定的ip
192.168.211.1分配给了宿主机
192.168.211.2分配给了Openwrt
因此本机的就不能是这两个了,而为了更好区分,我们可以从10开始分配,如果有多个虚拟机想要链接,那么11、12、13依次累加即可。这里我们就分配192.168.211.10给当前机器,/24是因为子网掩码为255.255.255.0,如果你的子网掩码与我的不同,那这个数值也需要修改。
gateway4设置的是网关地址,即Openwrt的地址


yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no # 关闭DHCP
addresses:
- 192.168.211.10/24
gateway4: 192.168.211.2
nameservers:
addresses:
- 192.168.211.2
- 8.8.8.8
- 114.114.114.114
还有别忘了执行这个,应用一下设置。
bash
sudo netplan apply
接着我们curl一下www.baidu.com ,就能发现这台机器已经可以正常访问网络了。这样我的Openwrt的配置就算完成了
