我有一台连接了 3 个接口 (eth0-eth2) 的 Portainer VM。我希望容器从位于 xxx1 的每个接口上的 DHCP 服务器请求 IP。
我们以 eth0 为例:
该接口的子网是 172.16.0/27,我希望我的容器的 IP 范围在 172.16.0.17-30 之间。在 Portainer 网络下,我添加了另一个网络,设置如下:
- 名称:172Config
- 驱动:macvlan 父卡:eth0 子网:172.16.0/27
- 网关:172.16.1
- IP 范围:172.16.16/28(我希望一半的子网主机提供给容器
然后我添加了另一个网络:
- 名称:172Network
- 驱动程序:macvlan
- Macvlan配置:选择创建然后172Config
- 启用手动容器附件:True
然后我将 172Network 连接到一个新的 httpd 容器,但它不起作用。我获得了容器上的正确 IP,但我无法 ping 或与它们建立任何类型的连接。任何 Portainer 专家都可以建议如何正确执行此操作?
答案1
上述配置是正确的。我必须在 ESXi vSwitch 安全选项下将混杂模式和伪造传输设置为“接受”。完成此操作后,一切都开始按预期运行,并且我的防火墙能够列出新的 DHCP 租约。
答案2
上述配置是正确的。我必须在 ESXi vSwitch 安全选项下将混杂模式和伪造传输设置为“接受”。完成此操作后,一切都开始按预期运行,并且我的防火墙能够列出新的 DHCP 租约。
遇到了同样的问题,修改 ESXi 主机上的 vSwitch 确实解决了问题。
我的伪造传输和混杂模式被设置为拒绝,但在将它们更改为接受之后,我立即能够 ping 我在 Portainer 中设置的 IP,并且我的容器应用程序能够通过暴露的端口接受连接。