我认为这个问题是因为我无法理解 Docker 网络并且不太擅长 Slackware。似乎好像应该有一个简单的解决方案;我只是完全没有意识到。
我有一台 UnRAID 服务器(基于 Slackware 构建),这台服务器上运行着一些 Docker 以及一些通过 KVM 运行的虚拟机。其中一台虚拟机中安装了 pfSense,我想通过 pfSense 路由来自 Docker 和其他虚拟机的流量。
创建 VM 时,UnRAID 默认提供三个选择网桥的选项:
- br0 - 允许虚拟机作为其自己的实体存在于网络上,并可直接访问 LAN 以及从路由器分配 IP
- vibr0 - 由主机管理的虚拟网桥,使虚拟机与 LAN 隔离
- docker0——Docker 的桥梁
我发现我可以将这三个接口都添加到 pfSense:将 br0 指定为 WAN 接口,将 vibr0 和 docker0 指定为 LAN 接口。我现在遇到的问题是如何让两个 LAN 接口的流量通过防火墙到达 WAN。我该怎么做?
我尝试了一些完全无效的方法,例如将 pfSense 中的 docker0 接口的 IP 设置为 192.168.2.1,并将 docker0 桥接配置中的默认网关设置为 192.168.2.1,但这似乎并没有改变任何东西。我在这里错过了什么基本方面?
总而言之,我想将来自 Docker 容器和其他虚拟机的流量路由到 pfSense 认为是 LAN 端口的位置;从那里,它将通过 pfSense 认为是 WAN 端口的位置路由到我的实际 LAN。或者:如何断开 vibr0 和 docker0 与主机的 eth0 接口的连接?
答案1
我会这样做:从 unraid 中排除 1 或 2 个 nics(有关 google 和 youtube 的信息,我使用了这个人的教程https://www.youtube.com/channel/UCZDfnUn74N0WeAPvMqTOrtA它有一些关于 unraid 的好信息)
这样,您就可以为您的 pfSense vm 分配(a)nic,这会比模拟 nic 更快。
我的 unraid 盒中有 4 个网卡,我的 unraid 盒从我的 pfsense vm 获取其 IP 地址,因此 unraid 位于 pfsense vm 后面,因此受到保护。2 个网卡用于 pfsense(直通),1 个网卡由 unraid 本身使用,连接到 pfsense lan 上的交换机。第 4 个网卡用于我运行的任何其他 vm。我注意到,如果我通过网卡,它比模拟网卡快得多。
希望这可以帮助