我的nas主机插的4口pcie网卡,好像不能单网口直通,采用虚拟机运行openwrt做主路由,但网卡虚拟化比较消耗cpu资源,而docker不存在此问题,于是想docker下openwrt做主路由。网上搜的基本都是做旁路由,只在这里看到几篇做主路由的,比如这篇 【原创】Docker内OpenWRT设置成主路由,为WiFi接入的客户提供源自有线网口的网络服务 但是采用的是armbian,与我的系统不一样,我参考此文试了多种方案,始终没有搞定。
本来unraid系统也是才开始折腾,对linux、unraid里面的一些概念完全不懂,只能慢慢摸索,最后,终于算是搞定了,也搞懂了一些概念,也给后来的兄弟们参考参考,希望你们少踩点坑。步骤如下:
1.网络拓扑
2.unraid的网络设置
设置->网络设置:
3.docker网络设置
设置->docker,打开高级视图:
命令行创建docker网络:
创建lanet
docker network create -d bridge --subnet 192.168.50.0/24 --gateway=192.168.50.4 -o "com.docker.network.bridge.name=br0" lanet
注意,类型一定一定一定要是bridge(不能是macvlan),gateway地址一定一定一定要是网络设置里的unraid的IP地址,否则unraid也会失联,"com.docker.network.bridge.name=br0"表示使用前面linux系统的br0创建lanet,必须一致。
创建wanet
docker network create -d macvlan -oparent=eth1 wanet
eth1接光猫,根据你自己的接口设置
4.openwrt容器设置
添加openwrt容器,我使用的是 registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64
添加好后,不要启动,命令行添加wanet:
docker network connect wanet openwrt
openwrt为你的容器名
5.unraid添加pppoe内核模块
启动编辑/boot/config/go文件,添加一行:modprobe pppoe重启,若不想重启,再在命令行输入前面代码
6.openwrt的设置
启动openwrt,进入其命令行,修改lan地址为192.168.50.1,重启openwrt网络,即可浏览器进入luci界面了,添加wan接口,选eth1,设置你的上网方式,防火墙选择wan区域,大功告成。
另外,防火墙自定义规则里默认有iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE,不知道是否需要,我是去掉了,没有问题。
评论区