问题标签 [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.
docker - 如何让 docker 容器使用主机上的特定设备进行传出流量?
如何使 docker 容器在主机上使用特定设备(例如 ens256),以便流量仅通过指定设备(ens256)向外转发?
docker - 使用 pi-hole 和 docker 运行多个 DNS 服务器
设置
我有一个带有多个 Wifi 网络的 Unifi 家庭设置和一个带有 Arch 的 RaspberryPi 来处理 DNS 过滤。
目标
我想在 Raspberry Pi 上运行多个 DNS 服务器,并将不同的 Wifi 引导到不同的 DNS。为此,我需要为不同的 DNS 容器提供不同的 IP 地址。
到目前为止我做了什么
在尝试了 systemd 和几个不同的 docker 解决方案之后,我决定将 Pi-Hole 与 cloudflared 结合使用。
使用 docker-compose 运行多个 pi-holes 不是问题,但我对正确的(docker)网络知之甚少,无法弄清楚如何为不同的容器获取不同的、网络可访问的 ip 地址。
这是一组 cloudflare + pi-hole 的 docker-compose 文件:
其中 192.168.2.10 是给树莓派的 ip。
我只能在我的路由器中为 DNS 指定一个 IP,而不是我可以为容器重新映射的不同端口。
PS.:我知道密码不理想,但这是另一天的问题:D
问题
如何在同一台机器上运行此设置的副本,而不会让两个 DNS 互相干扰,以及如何使用不同的 IP 到达单独的 pi 孔?
编辑 1
我发现 docker 中有一个叫做macvlan的东西将 docker 容器直接链接到网络。这似乎也适用于 pi-hole ( macvlan + pi-hole ),只是我还没有成功。有没有人看到这种方法的概念问题?
docker - macvlan 上的 Docker 容器无法 ping 外部互联网
我正在尝试设置一个在 Raspberry Pi 4B 上的 macvlan 上运行的 pihole docker 实例。
我无法从我的容器 ping 外部互联网。
我设法减少了复制问题:
wlan0
在 上创建一个启用混杂模式的 macvlan 。- 启动一个 docker 容器并尝试 ping 外部世界。
详细信息:我正在使用该wlan0
界面运行树莓派 4。我启用了混杂模式wlan0
我创建了 macvlan 网络docker network create -d macvlan --subnet=10.0.37.27/24 --gateway=10.0.37.1 --ip-range 10.0.37.65/29 -o parent=wlan0 --aux-address="pi4=10.0.37.69" macvlan0
- 这会创建一个名为macvlan0
under的子接口wlan0
。这意味着容器将从 .65-.70 获得分配的 IP
然后我运行一个busybox容器来ping我的wlan0
物理IP docker run --net=macvlan0 busybox ping 10.0.37.27
:。这行得通。
如果我尝试 ping1.1.1.1
或什至网关10.0.37.1
,它会失败,我验证路由表是正确的docker run --net=macvlan0 busybox ip route get 1.1.1.1
,我得到一个结果1.1.1.1 via 10.0.37.1 dev eth0 src 10.0.37.64
,这是完全合理的。
分析:
我不明白发生了什么事。我可以从我的主机 ping 我的容器,也可以从我的容器 ping 我的主机(我设置了一个macvlan-shim
)。我ip route
和route -n
显示合理的路由表
然而,外部 ping 失败。我很困惑。
pi4上的ifconfig
kubernetes - GKE 上带有 Macvlan 的第二个 NIC
我需要为 GKE 上的一些特定 K8s pod 添加第二个接口,这些 pod 需要从 Internet 上的公共用户直接访问。所以我使用了 Multus 并像这样定义了一个 Macvlan cni:
10.162.0.1 是我的 K8s 节点在 GCP 中的默认网关。所以,我想在这种情况下,豆荚应该可以访问外部。但是在 pod 中,只有一个默认网关来路由内部 pod 流量。另外,由于权限问题,我无法添加任何路线。
问题:
我的预期错了吗?我应该如何使用 Macvlan 为这些 pod 创建一个公共接口?
docker - 将 docker bridge 网络绑定到特定接口,或以其他方式支持 VLAN 标记网络
我想创建一个 docker 网络,其中所有数据包都标记有 VLAN ID,并且该网络上的容器可以通过由 DHCP 分配 IP 地址的接口公开端口。
我希望我可以通过桥接网络做到这一点。我的第一次尝试是
- 创建带有 VLAN 标记的接口:
sudo nmcli con add type vlan con-name enp36s0.100 dev enp36s0 id 100
- 看到这个接口被 DHCP 分配了一个正确子网的地址(它是)
- 创建网络(以下是 docker-compose 文件的摘录):
这适用于在正确的接口上公开端口,但容器仍在通过其他网络访问互联网。我不确切知道流量是如何路由的,但我通过路由器上的路由规则验证了这一点。在主机上运行curl --interface enp36s0.100 www.google.com
时,它是否正常工作取决于该 VLAN 接口的路由器配置,但在容器中,只要主机网络正常工作,它就会工作。
在这上面花了很多时间之后,看来我可能需要使用 macvlan 网络。但是,我希望我不需要;我实际上并不需要容器直接访问任何接口。尽管如此,我还是尝试了以下网络:
这个 macvlan 网络似乎从来没有工作过。事实上,即使使用 enp36s0(无 VLAN)作为父级,它仍然无法正常工作。我是否需要配置子网和网关以匹配 enp36s0/enp36s0.100 的 DHCP 分配设置?这似乎完全多余并且容易出错。另外,我需要在那里分配一个由 DHCP 分配的地址,以便它可以接收来自网络上其他机器的请求。
提前感谢您的帮助。我知道有一些类似的问题,但我一直无法找到答案。
interface - Pi-hole + Unbound (native. install) on Macvlan: How to configure Unbound to use the macvlan interface?
My Setup/Goal:
I'm running a specific version of Debian 10 on my rpi 4b and have nextcloudpi installed on top. This results in the need for another (virtual) interface because nextcloudpi runs on apache2, port 80 (as well as pi-hole). I could have changed the apache port 80 but I want another interface/IP for my pihole/unbound setup. I could have also achieved it by using docker but it failed (either because IPv6 and macvlan are sometimes a bit buggy within docker or because my brain is a bit buggy).
However, I've installed Pihole successfully using IPv4 and IPv6 (local unicast fd00) of my macvlan. I have told apache to only use my physical interface IP, bound lighttpd to the other IPv4 of my Macvlan, and configured pihole to use the IPv4 and IPv6 local unicast of my Macvlan (setupvars.conf).
Central issue:
My central question: How do I configure unbound correctly to use the Macvlan interface? Do I have to change the default config at all?
Assuming my macvlan IPv4 looks like: 192.168.178.123/24, what would my interface line look like? Would I just need to add
???
Some further questions regarding Macvlan:
My Macvlan has also a global unicast address and I'm not sure about it since I remember a post which told me that macvlan with a global unicast address might be a security risk? In case this is true: how do I disable the global address for my Macvlan?
The important line if my interfaces.d file is:
Do I have to add "mode bridge"? What does it exactly do? I've read some information about networks and bridge mode in general but I'm still not sure whether to use or not? So would it be
?
Thank you much for your help!
windows - Windows 10 - 将 docker 容器直接放在本地网络上?
我一直在尝试将我的容器直接放在我的本地网络(LAN)上。我尝试设置macvlan并使用 docker,但我无法直接与容器通信。
这是我所做的:
-> 创建了一个名为“pub_net”的“macvlan”网络,并将我的 LAN 中的子网提供给它。
我只能通过使用“eth0”来接受以下命令。这个对吗?Docker 在这里期待什么名字?
运行一个图像,将其命名为“yuri”,将其附加到新创建的“pub_net”网络,并为其分配一个来自“pub_net”子网的 IP。
完成后,我无法与 192.168.1.37 的容器通信
任何想法我做错了什么?
谢谢你提供的所有帮助!
kubernetes - 将 macvlan 静态 ip 应用到 pod
我目前正在使用 multus 和 calico 测试 macvlan 配置,并且有 2 个问题。第一个问题是我创建了一个 macvlan 网络,如下所示:
然后我将其作为网络注释添加到测试 pod 中,如下所示:
macvlan 中的静态 ip 设置已成功应用于 pod:
但是,正如您所见,我的 kubernetes 集群 pod (10.222 ....) 的默认 IP 块仍然适用。
我只希望将我在 macvlan 配置中设置的 ip 应用到 pod 并获得类似于此的结果:
无需更改我的 kubernetes 默认 pod ip 块中的任何内容。我怎样才能做到这一点?
第二个问题:我也遇到端口分配问题。如上所示,我为测试 pod 设置了 9201 端口,并且在使用集群的默认网络设置时工作正常。实施 macvlan 后,我似乎只能访问默认端口。为什么会这样?
docker - 如何将vlan ip添加到docker容器
我有一台直接连接到 vlan x 的机器,并通过 VPN 连接到 vlan y。
如何启动容器并将其 ip 设置为位于 vlan y 中的 ip?
我尝试在macvlan
docker 网络上启动容器,但容器无法 ping VPN vlan 中的任何设备。
kubernetes - 将静态 IP 配置到使用 MACVLAN 接口连接的 POD 时遇到问题
这是场景。有一个部署集,通过该部署集创建了 2 个 POD。我将 MACVLAN 接口附加到这些 POD 以进行外部通信。
麦克兰定义
部署集
结果。两个 POD 都有来自分配池的 IP。
现在我需要配置的是,macvlan 定义文件中有一个更大的分配池,但只有特定的 2 个 IP 分配给 POD。我尝试了以下配置。
麦克兰定义
部署集
POD 在没有 MACVLAN 接口的情况下出现,我也没有看到与 POD 相关的错误。
请提出任何有助于满足要求的修改或添加。
提前致谢。