问题标签 [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 回答
411 浏览

ubuntu - LXC - 无法创建 macvlan 接口 - 不允许操作

我在通过 OpenVZ 服务器创建 LXC 容器时遇到问题,当 lxc 尝试创建接口时出现以下错误。我不确定 OpenVZ 是否允许这种配置,这是我第一次尝试。我一直在互联网上寻找一些解决方案,但我没有找到任何可以解决我的问题的方法。我很感激任何帮助。谢谢。

root@websrv:~# lxc launch ubuntu:18.04 ubuntu
Creating ubuntu Starting ubuntu Error: Failed to run: /usr/lib/lxd/lxd forkstart ubuntu /var/lib/lxd/containers /var/log/lxd/ubuntu/lxc .conf:尝试lxc info --show-log local:ubuntu获取更多信息 root@websrv:~# lxc info --show-log local:ubuntu 名称:ubuntu 远程:unix:// 架构:x86_64 创建时间:2020/06/01 20:48 UTC 状态:已停止类型:持久配置文件:默认

日志:

lxc ubuntu 20200601204903.730 错误网络 - network.c:instantiate_macvlan:234 - 不允许操作 - 无法在“venet0”上创建 macvlan 接口“mcHNUAG7” lxc ubuntu 20200601204903.730 错误网络 - network.c:lxc_create_network_priv:2457 - 无法创建设备 lxc ubuntu 20200601204903.730 ERROR start - start.c:lxc_spawn:1626 - Failed to create the network lxc ubuntu 20200601204903.730 ERROR start - start.c:__lxc_start:1939 - Failed to spawn container "ubuntu" lxc ubuntu 20200601204903.733 ERROR lxccontainer - lxccontainer.c:wait_on_daemonized_start :842 - 收到容器状态“STOPPING”而不是“RUNNING”lxc 20200601204903.765 WARN 命令 - commands.c:lxc_cmd_rsp_recv:132 - 对等方重置连接 - 无法接收命令响应“获取状态”

0 投票
0 回答
510 浏览

docker - 使用 macvlan(或任何其他方法)将多个 IP 分配给同一个 docker 容器

我目前有 2 个使用 macvlan 创建的网络在我的 Synology 上运行。这些网络在物理上是分开的并且完全隔离。因此一个网络上的设备无法与另一个网络通信。

我将这些网络用作我的主要家庭网络,并将其他网络用作我的智能家居设备。我可以将任何 docker 容器附加到其中任何一个。但是,现在我想在它们两个上附加一些容器。所以我更新了我的 docker-compose 以将容器附加到两个网络。

运行此 docker compose 文件后,出现以下错误

您认为我正在做的事情是否正确?还是我做错了什么?我也可以通过其他方式实现相同的目标......

非常感谢您的所有建议...

0 投票
1 回答
798 浏览

docker - 如何使 Docker 容器 IP 地址在 WLAN 中可访问?

我在本地网络中的主机 (A) 上运行 Docker 容器,并通过 DHCP 从 WLAN 路由器获取其 IP 地址。我想通过位于同一本地网络中的另一台主机 (B) 的 IP 地址访问 docker 容器。我已经macvlan在我的 docker compose 文件中配置了一个 docker 网络。nmap -sP XXX.XXX.XXX.0/24但是,如果我使用例如子网掩码扫描网络以查找 IP 地址,XXX.XXX.XXX我找不到新的 IP 地址。一般来说:如果我创建这样的设置,我是否必须考虑一些特殊的事情?

参考forums.docker.com 上类似的简化问题

0 投票
1 回答
5122 浏览

docker - docker macvlan - no route to host (container)

Im trying to understand the "macvlan" network from docker. I create a new network:

And start new container with the new network:

When i try to access the service from the container or ping it i get:

Tested with Ubuntu 16.04, Ubuntu 18.04 & CentOS 7. Neither from the docker host itself or other clients on the network can reach the container.

I followed the example fromt he docker site: https://docs.docker.com/network/network-tutorial-macvlan/#bridge-example

What im missing ?

I read here Bind address in Docker macvlan to execute these commands (no clue what they do):

But this does nothing on my machine(s)

0 投票
1 回答
822 浏览

networking - 如何在命名空间中创建 SSH 服务器?

我创建了两个命名空间,比如命名空间_A 和命名空间_B。

ip netns add namespace_A ip netns add namespace_B

然后为每个命名空间创建 macvlan

ip link add macvlan_A link wlo1 type macvlan mode bridge

ip link set macvlan_A netns namespace_A

ip netns exec namespace_A ifconfig macvlan_A 10.0.0.1

并使用 macvlan_B 和 ip 为 10.0.0.2 的 namespace_B 做同样的事情现在我想在两个命名空间中创建 SSH 服务器并为它们分配一些端口,并使用 SSH 服务器在命名空间之间传输文件。但我无法理解如何在该命名空间中创建服务器并在两个命名空间之间发送文件?谁能帮我?

0 投票
1 回答
274 浏览

docker - docker macvlan 外部子网 pfsense 其他子网

我想知道如何使 docker 容器可以在其自己的网络之外访问。

示例:docker容器有一个专用ip 172.16.0.240,mac0地址是172.16.0.40,主机地址是172.16.0.20

我可以从 172.16.0.0/24 上连接的所有设备访问 172.16.0.240

现在我想从 172.16.50.0/24 访问它。

现在 172.16.50.0/24 访问 172.16.0.0/24 上的所有内容都没有问题,除了使用 macvlan ip 的那些。

谢谢。

0 投票
1 回答
170 浏览

docker - Docker:在网络上强制内部容器通信

我正在进行一个项目,该项目将现有的 VOIP 遗留系统转换为 dockerized 形式。现有系统由 5 台不同的 Linux 机器组成,每台机器都有 2 个不同的网络接口——一个暴露于公共 WAN,另一个是私有 LAN 网络。我计划创建一个 docker compose 文件来设置编排。

网络大致是这样的:

服务器 #1 Eth0:IP 192.168.0.200/24 Eth1:IP XXX65/27

服务器 #2 Eth0:IP 192.168.0.201/24 Eth1:IP XXX66/27

服务器#3 Eth0:IP 192.168.0.202/24 Eth1:IP XXX87/27

服务器 #4 Eth0:IP 192.168.0.203/24 Eth1:IP YYY240/27

服务器 #5 Eth0:IP 192.168.0.204/24 Eth1:IP YYY241/27

服务器 1-3 属于同一子网,服务器 4-5 也是​​。

我正在尝试找到将此网络设置转换为 docker 网络的最佳方法,我希望每个容器都保留他的公共 IP(Eth1 上的那个,这意味着从容器生成的流量将保持与原始 IP 相同的公共 IP服务器),还能够与同一个专用网络上的所有其他 docker 容器进行通信,同时保持它易于管理并尽可能减少开销。

我使用 docker-compose 创建了 3 个 macvlan 网络和 1 个桥接网络,但问题是 DNS 解析为每个容器提供了我在它所属的 Macvlan 网络中给它的 IP 地址,例如 2 个 docker 被分配给桥接网络对于同一个 Macvlan 网络,解析彼此的容器名称将提供它们的 Macvlan 地址,而不是网桥 IP 地址。我想强制所有容器之间仅通过 BRIDGE 网络进行通信(基本上将 Macvlan 网络设置为私有模式)。我怎样才能做到这一点?

0 投票
1 回答
1183 浏览

docker - docker swarm macvlan 网络问题

目标


在我的 LAN 上使用静态 IP 在 swarm 中运行单个 haproxy 容器,如果节点出现故障,该容器将重新创建。从本质上讲,它类似于指向 haproxy 的 VIP,但不需要 swarm 之外的外部负载均衡器。


什么有效 - 本地 macvlan

示例:在两个节点上创建 macvlan 网络,在 node1 上运行容器,停止容器,然后在 node2 上运行容器。haproxy 容器使用相同的静态 IP 创建,可在 LAN 上访问。

什么不起作用 - swarm macvlan

示例:将 macvlan 网络范围设置为 swarm,然后部署堆栈。容器对网络不可见。


示例中使用的文件

码头工人-compose.yml:

localnet.sh(停止堆栈/删除网络/将网络重新创建为本地/本地运行容器的脚本):

swarmnet.sh(删除容器和网络的脚本/将网络重新创建为 swarm/作为 swarm 堆栈运行):

是否可以在集群模式下运行具有静态 macvlan IP 的单个容器?

任何帮助表示赞赏。

编辑:我已经能够让 macvlan 地址正常工作,但是 docker swarm 不遵守 ipv4_address 字段来静态容器。我理解这种情况的原因(副本等不在同一个 IP 上),但在这种情况下,由于它是单个容器,它不会发生。我发现这里讨论了这个问题:https ://forums.docker.com/t/docker-swarm-1-13-static-ips-for-containers/28060/

0 投票
1 回答
532 浏览

kubernetes - 使用带有位置 ipam 的 Macvlan CNI 插件创建的多个网络 - 跨节点通信未发生

我在 Google Cloud Platform 之上建立了 openshift 容器平台。我使用 Multus 将多个网络连接到 pod。

我在 ipam 中使用 Macvlan CNI 和 whereabouts 而不是 static 以避免 IP 冲突。我部署了三个 pod,两个在同一个节点,一个在另一个节点。pod 被分配了 net1 接口,没有 IP 冲突和唯一的 mac 地址。

问题是如果 Pod 在同一个节点中,Pod 通信是通过 ping 发生的。但是跨节点,没有发生 pod 通信,显示目标主机不可达。如果我使用命令“ip route get net1ipaddress”检查路由,还有一件事,路由是存在的。

例如 ip route 得到 192.168.1.1

192.168.1.1 通过 10.0.32.1 开发 ens4 src 10.0.32.3 uid 0 缓存

但是没有发生交流。我该如何进一步检查?

非常感谢。

0 投票
2 回答
2214 浏览

docker - 带有 kubernetes 的 MacVlan 网络

我设置kubernetes cluster使用k3s. 我有一个主节点和两个节点。我在其中一个节点上创建了 dockermacvlan网络。我想实现下面提到的场景。

  1. 将 IP 分配给容器/pod。(用户定义的 IP,而不是集群 IP)。

q1.docker macvlan 有什么替代方案吗?

q2.我们可以在节点上运行命令吗(不是在 pod/container 上)?(在部署 pod/服务时)

q3.我们可以用用户定义的IP创建kubernetes网络吗?(我认为 LB/NP/Ingress 对用户定义的 IP 没有帮助,如果我错了,请纠正我!)