如何在启动时创建 macvlan?(19.10)

如何在启动时创建 macvlan?(19.10)

我在一台基于 Intel 的 PC 上运行 Ubuntu Budgie 19.10,专用于 NAS。该系统将 PiHole 作为 docker 容器运行,在 Docker 中,创建了一个 macvlan,以确保 PiHole docker 从路由器接收自己的专用 IP 地址。一切正常。

为了从主机 PC 访问 PiHole 网络界面(我已经可以从 LAN 中的任何其他设备访问它),我需要在主机 PC 上创建一个 macvlan 桥:

ip link add mynet-shim link eno1 type macvlan  mode bridge
ip addr add 192.168.88.10/24 dev mynet-shim
ip link set mynet-shim up
ip route add 192.168.88.5 dev mynet-shim

运行这些命令后,我可以通过 hostPC 本身 (192.168.88.10) 访问我的 PiHole (192.168.88.5/admin) webUI。注意,我不理解这些命令或 macvlan,我只是在互联网上搜索并尽可能多地了解。经过多次反复尝试 :)

但是,重启后,这个 macvlan 桥就消失了。我该如何让它持久化?我知道我可能必须创建一个文件 /etc/network/interfaces,但我将被迫在那里定义所有接口……不仅仅是我手动创建的这个东西,还有自动创建的虚拟或真实接口。我不确定我是否有能力做到这一点。

解决这个问题的最佳方法是什么?

答案1

也许太晚了,但我一直在努力解决这个问题,解决方案很简单。希望它能帮到别人

只需编辑 /etc/network/interfaces 并在接口设置后添加以下内容:

#MacVLAN
# Create new macvlan interface on the host 
up ip link add mynet-shim link eno1 type macvlan  mode bridge
# Add the host address and bring up the interface 
up ip addr add 192.168.88.10/24 dev mynet-shim 
up ip link set mynet-shim up
# Tell our host to use that interface to communicate with containers
up ip route add 192.168.88.5 dev mynet-shim

相关内容