gpt4 book ai didi

docker - 混杂模式下的 GCP 计算实例 NIC

转载 作者:行者123 更新时间:2023-12-02 19:21:11 28 4
gpt4 key购买 nike

我在 GCP 的 Ubuntu 实例上添加了一个 macvlan docker 网络。但是我无法访问/访问实例。我想也许有一个限制,每个实例只强制执行一个 MAC。

有谁知道这个或者有解决方法吗?有没有办法在 GCP 的网关端查看 arp/mac 表的样子?

我的意图是为 docker 使用 macvlan 网络,该网络使用来自实例主网络的辅助 IP 地址。

更多详情:我为 VM 实例分配了次要 IP 范围。例如VM 内部 IP(主要):10.10.10.2/24,VM 次要 IP 范围:10.10.11.0/24

GCP 将 VM 次要范围路由到 VM IP 地址。我通过使用 IP 10.10.11.2 创建测试环回并从同一 VPC 中的不同 VM 访问该 IP 来对此进行测试。它奏效了。

在下一步中,我删除了那个虚假的环回并使用 IP 地址为 10.10.11.2 的 macvlan 网络安装了一个独立的 docker 容器。

我原以为连接到这个 macvlan 网络的新容器可以通过 VM ens4 接口(interface)与容器的 MAC 和 IP 地址(10.10.11.2)访问。

根据文档,这是 macvlan 网络所做的。它通过为 macvlan 网络中的每个容器使用新的 MAC 地址,将 macvlan 网络与主机网络完全隔离。

主机 VM 上次要范围的 IP 与驻留在 macvlan 网络中的 docket 容器上的 IP 之间的唯一区别是容器使用的 MAC 与主机 VM 不同。

最佳答案

解决方案取决于您要实现的功能类型。

1 - 如果您需要在单个 VM 上使用两个可单独访问的 IP,则需要使用两个 vNIC(虚拟网络接口(interface))重新创建 VM。添加an additional vNIC只能在 VM 创建期间完成,第二个 vNIC 也必须位于不同的 VPC 上。

2 - 如果您想将一个 IP(作为单个 VPC 中的次要子网范围)分配给一个容器,并让流量可以路由进出该容器,那么这在概念上与 Kubernetes IP Masquerading 非常相似。 .虽然 IP 伪装通常用于 Google Kubernetes Engine (GKE),但 ip-masq-agent 可以为您的 VM 容器执行相同的任务。 IP 伪装本质上导致容器的源 IP 在 GCP VM 的 vNIC 上被“源 NAT”。这意味着从 GCP 网络上的容器路由的所有流量都将以您的 GCP VM vNIC IP 作为源 IP。

对于选项 2,伪装是一项要求,因为默认情况下,VM 无法转发由另一个 VM 发起的数据包。作为第一步,在 VM 创建期间 IP forwarding必须在 vNIC 上启用(只能在 VM 创建期间启用)。然后为您的容器启用 IP 伪装,执行 configuring a VM as a NAT gateway 中的步骤 7 和 8。 .

关于docker - 混杂模式下的 GCP 计算实例 NIC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59601002/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com