![将 ESXi 上 Docker 中运行的 Unifi 控制器连接到默认 VLAN,同时将其他容器和容器主机与默认 VLAN 隔离](https://linux22.com/image/782815/%E5%B0%86%20ESXi%20%E4%B8%8A%20Docker%20%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%9A%84%20Unifi%20%E6%8E%A7%E5%88%B6%E5%99%A8%E8%BF%9E%E6%8E%A5%E5%88%B0%E9%BB%98%E8%AE%A4%20VLAN%EF%BC%8C%E5%90%8C%E6%97%B6%E5%B0%86%E5%85%B6%E4%BB%96%E5%AE%B9%E5%99%A8%E5%92%8C%E5%AE%B9%E5%99%A8%E4%B8%BB%E6%9C%BA%E4%B8%8E%E9%BB%98%E8%AE%A4%20VLAN%20%E9%9A%94%E7%A6%BB.png)
我有一台带有 6 个物理网卡的 ESXi 6.7 主机。这些网卡的配置如下:
分配给 vSwitch0 的 NIC 物理连接到 Netgear 交换机,该交换机的端口未标记我希望从中管理 ESXi 的特定 VLAN。
分配给 vSwitch1 的 NIC 物理连接到 Netgear 交换机,该交换机的端口标有 VLAN,我希望将其提供给在 ESXi 主机中运行的虚拟机(VLAN 10 和 50)。目前,我的 ESXi 主机中的虚拟机仅配置在 VLAN 10 上。
我最近一直在尝试使用 Docker,因此我启动了一个 Ubuntu Server 22.04 虚拟机作为我的 Docker 主机运行。我添加了一个 Unifi 控制器容器,并设法通过使用接入点 CLI 中的“set inform”命令将我的接入点纳入控制器。
我正在考虑扩展我的 Unifi 网络,在做了一些进一步的研究后,我意识到为了简化设备采用流程,我需要将我的 Unifi 控制器放到我的默认 VLAN 上。这就是事情开始变得复杂的地方……
为了让容器访问默认 VLAN,我认为我需要先将容器主机连接到默认 VLAN。我尝试通过创建一个新的 vSwitch(vSwitch2)来实现这一点。与 vSwitch2 关联的物理 NIC 绑定到仅配置为未标记流量的 Netgear 交换机。我认为通过专用 vSwitch 将未标记流量隔离到此特定 VM 比允许我的所有服务器访问默认 VLAN 更安全。
第二个 NIC 没有通过 DHCP 收到 IP 地址。我认为我可能遇到了交换机配置问题,因此出于测试目的,我尝试将第二个 NIC 分配给 VLAN 10,然后分配给 VLAN 50。令我惊讶的是,它仍然没有通过 DHCP 收到 IP。此时,很明显,第二个 NIC 没有收到 IP 是由于我的 Ubuntu Server VM 中某些配置错误造成的。在我深入进行大量配置更改之前,我想问以下问题:
- 如果我想将我的 Docker 主机用于我的 Unifi 控制器以及其他未来的容器,在这种情况下将主机连接到两个独立的网络是否有意义?
- 是否可以将 Docker 主机连接到多个网络,但确保只能从其中一个网络访问主机?如果可以,如何实现?
- 我的 docker 主机是否需要在网络上有一个 IP 地址才能访问容器(假设该容器配置为 macvlan 网络)。
- Unifi 控制器配置 macvlan 网络是否有意义?
- 配置单独的 vSwitch(vSwitch2)是否是隔离默认 VLAN 的正确选择?
- 从安全角度来看,我需要进行架构/网络拓扑更改吗?