问题标签 [macvlan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
639 浏览

kubernetes - 使用 multus-cni 添加的 IP 地址无法从同一集群中的另一个 pod 访问

我正在使用 multus-cni 在我的 pod 中创建多个接口。我已经配置了 weave-net CNI,因此 pod 提供了集群 ip 10.32.xx 使用下面的 network-attachment-definition ,我能够在 IP 地址为 10.32.0.180-199 的 pod 内启动多个接口,但这些 IP 地址是无法从同一集群中的其他 pod 访问。如果我在另一个 pod 中执行 kubectl exec 并 ping 10.32.0.180,我将无法 ping 该 IP。

谁能告诉我需要做什么才能在集群中访问 pod 中的其他接口?

0 投票
2 回答
4660 浏览

cni - 如何使用 podman 复制 docker macvlan 网络?

我在用于托管 Unifi 网络控制器应用程序的 Fedora 工作站上有一个可用的 docker 实现。我使用 macvlan 为控制器分配静态 IP。创建 macvlan 的 docker network 命令是:

控制器运行的容器被分配了一个静态 ip:

docker run --rm --init --network unifinet --ip 192.168.110.226 ....

我想使用 podman 作为替代来实现这一点。是否有有用的在线教程解释如何使用 podman 使用的 CNI 的实现?特别是macvlan插件?我无法决定是否应该使用静态 IPAM 插件或本地主机 IPAM 插件。

Brent Baude 的使用 Podman 容器租赁可路由 IP 地址是一个好的开始,但重点是使用 dhcp IPAM 插件。

谢谢你

0 投票
1 回答
620 浏览

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

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

任何人都知道这一点或有解决方法吗?有没有办法在 GCP 的网关端查看 arp/mac 表的外观?

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

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

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

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

我期待连接到这个 macvlan 网络的新容器可以通过具有容器的 MAC 和 IP 地址(10.10.11.2)的 VM ens4 接口访问。

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

主机 VM 上的辅助范围 IP 和驻留在 macvlan 网络中的案卷容器上的 IP 之间的唯一区别是容器使用的 MAC 与主机 VM 不同。

0 投票
0 回答
319 浏览

synology - 使自定义 Synology NAS 网络配置持久化的最佳/正确方法是什么?

我的 Synology DS218+ 上有一个 macvlan,可让 Synology 访问在 Docker 管理的 macvlan 上运行的几个 Docker 容器。我使用 IP 命令创建 Synology macvlan。使此 macvlan 配置在重新启动后保持不变的最佳方法是什么?具体的IP命令是:

谢谢

0 投票
4 回答
4357 浏览

linux - Docker MACVLAN 仅适用于出站

我正在尝试为我的 docker 容器设置 MACVLAN。我有一个全新的 Raspbian 和 Docker 安装,并按照 Docker 文档中概述的步骤创建 MACVLAN:https ://docs.docker.com/network/network-tutorial-macvlan 。

网络如下所示:

假设我有一个连接到该网络的 Alpine 容器。从容器内部,我可以访问互联网以及我网络上的所有内容。但是,我无法从外部访问 MACVLAN 内的任何容器。我知道这通常不适用于主机,但我不是试图从主机访问容器,而是从我网络上的另一台机器访问。容器的 IP 无法从外部访问。

如果我按照步骤允许主机访问 MACVLAN 上的容器(创建另一个 MACVLAN 并添加路由表条目),我可以从主机访问容器,但仍然不能从外部访问。

也许这更像是一个 Linux 网络问题而不是 Docker 问题?

Docker 版本:19.03.6 操作系统:Raspbian Buster 10,内核版本 4.19.97-v7+

是否有想法将不胜感激。

0 投票
1 回答
744 浏览

docker - 使用 macvlan 的 docker 容器的网络路由

TLDR;我无法从其他网络客户端 ping 我的 docker 容器。只有当容器主动 ping 网关时,我才能在之后访问容器。

在我的家庭网络 (192.168.0.0/24) 上,我运行一个网关 192.168.0.1,它托管一个 DNS 服务器并路由互联网流量。我的 docker 主机 (192.168.0.100) 有一个 macvlan 网络,使用

我的容器现在确实获得了静态 IP,例如 192.168.0.200。容器可以主动 ping 网络上的其他物理主机,因此可以正常工作。

但是,如果我启动一个新容器,则无法从我的物理网络 ping 通它。不是来自 docker 主机(这是预期的,因为这似乎是 macvlan 网络的限制),也不是来自网关或任何其他客户端。一旦容器主动 ping 网关,其他客户端也可以访问它。

所以我想需要做一些路由,我需要你的帮助。

客户端在 debian buster 上运行,我使用非托管交换机连接客户端。

0 投票
0 回答
701 浏览

docker - QEMU 客户机上的 Docker 容器没有 LAN 连接

在 Ubuntu 20.04 服务器上,我运行 Debian 10 作为 KVM-guest,通过 macvtap-bridge 连接。在那个客人里面,我有一个 macvlan-bridge,连接着一个 docker 容器。

由于某种原因,该容器似乎没有任何网络连接,我看不到错误。

编辑2

由于我还没有得到任何答案,而且我还继续调查整个主题,我开始怀疑我的想法是否真的有效!

因此,我想提前问一个非常普遍的问题:是否有可能有一个 KVM-guest,它使用一些容器运行 docker,并通过“公共网桥”将它们全部连接起来?这样主机、KVM-guest 和 docker 容器都出现在本地局域网上,就像单独的机器一样(当然可以相互通信)。这种类型的设置称为“嵌套虚拟化”。但是我找不到一些参考资料来解释如何“公共桥接”两个级别的嵌套 VM。

因此,如果有人可以首先澄清这个问题,最好的情况是包括有关如何做到这一点的文档/说明。

/编辑2

编辑1

为了提供更多背景知识,我基本上尝试实现这样的设置:

所以 Host、VM1、VM2 和 docker 容器应该直接连接到 LAN,就像它们是物理机器一样。因此,如果有人能指出我实现这一目标的不同方法,我也会很高兴......

/编辑1

以下是配置详细信息:

Ubuntu主机(香蕉)

/etc/网络/接口:

ip地址:

Debian-guest 的 Libvirt XML-部分网络:

Debian 来宾 (bananaLAN)

/etc/网络/接口:

ip地址

码头工人(程序)

网络创建

容器创建

ip地址:

Ping 结果

Ubuntu 主机(香蕉)到网关:

Ubuntu 主机(香蕉)到 LAN 主机:

Ubuntu 主机(香蕉)到 Debian 来宾:(这是预期的)

Ubuntu 主机(香蕉)通过独立网络连接到 Debian 来宾:

Debian 来宾 (bananaLAN) 到网关:

Debian 来宾 (bananaLAN) 到 LAN 主机:

Debian 来宾(bananaLAN)到 Ubuntu 主机:(这是预期的)

Debian 来宾(bananaLAN)通过独立网络连接到 Ubuntu 主机:

Docker 容器(路由)到网关:(这就是问题所在!)

Docker 容器(路由)到 LAN 主机:(这就是问题所在!)

Docker 容器(路由)到 Ubuntu 主机:

Docker 容器(路由)到 Debian 主机:

LAN主机到网关:

LAN 主机到 Ubuntu 主机(香蕉):

LAN 主机到 Debian 主机(bananaLAN):

LAN 主机到 Docker 容器(路由):(这就是问题所在!)

路由表

网关 (192.168.2.1)

Ubuntu主机(香蕉)

Debian 来宾 (bananaLAN)

Docker 容器(路由)

可能这是某种路由问题,我不得不承认,这不是我的强项。我还仔细检查了是否完全遵循了围绕 qemu/libvirt 和 docker/macvlan 的几个文档,但显然我遗漏了一些东西。

我很感激任何帮助!非常感谢!

0 投票
0 回答
1204 浏览

docker - Docker:按IP升序排列的多个macvlan

我有两个带有网络接口 Device0 和 Device1 的网络适配器,我想连接到 Container0 和 Container1。

每个容器都需要有自己的 IP 地址,然后是另一个,比如 172.16.0.10 到 172.16.0.11

我读过使用 macvlan 实用程序可能会很好。

使用以下代码,其中 i [0,1] 我尝试创建 2 个不同的 macvlan,连接所述设备:

该代码创建了第一个网络,但由于地址空间重叠,第二个网络失败

知道如何解决这个问题吗?

0 投票
2 回答
21282 浏览

docker - 如何使用 Compose 创建具有用户定义的 IP 和 MAC 地址的 Docker macvlan

我有一个使用 MAC 地址执行硬件许可证的 docker 项目。我无法更改这一点,ISV 使用包含 MAC 地址的硬件指纹。

我正在尝试创建一个 macvlan 网络,它将使用物理适配器并从我的网络 DHCP 服务器获取 IP 地址,或者我将手动分配一个静态 IP 地址。我必须能够手动设置 MAC 地址,这样它就不会动态更改并使我的许可证密钥无效。

根据 Docker 文档,该mac_address设置已被弃用,至少在 v3 模式中,但似乎在 v2 模式中得到尊重。

我有一个使用 vanilla LSIO Nginx 作为测试构建的配置,但运行失败并出现错误,指出无法分配 MAC 地址。

我正在使用 Docker for Windows 在 Win10 上进行测试。

如何在撰写中使用 macvlan 并设置 MAC 和 IP 或为 IP 使用 DHCP?

0 投票
0 回答
2252 浏览

docker - Docker:无法删除 macvlan 配置网络

使用 portainer,我创建了一个 macvlan 配置网络。现在,我想删除这个网络。但是,由于某种原因,我不能。我确实收到以下错误消息:Error response from daemon: error while removing network: configuration network "my_macvlan_config" is in use。奇怪的是,我不认为网络正在使用中。它没有连接容器。检查网络时,我得到以下结果:

Docker 本身正在我的 Synology Diskstation 上运行,fwiw。

编辑:有另一个网络称为macvlan连接到my_macvlan_config.

还有一个网络,显然是无关的。

然后我移除了tvheadend容器。然后我能够删除所有网络,但my_macvlan_config.