开启混杂模式
使用命令查看目标网卡名称,复制备用
ifconfig
同时也可以观察输出内容中是否包含PROMISC字样

如果上述输出中不包含PROMISC字样,则需要开启网卡的混杂模式
#设置为off即可关闭混杂模式
ip link set 网卡名称 promisc on
开启之后网卡属性中会包含PROMISC字样

创建macvlan
docker network create \
-d macvlan \
--subnet=192.168.0.0/24 \
--ip-range=192.168.0.0/24 \
--gateway=192.168.0.254 \
-o parent=网卡名称 \
macvlan网络名称
在docker容器中使用macvlan
此处创建一个debian12:slim容器作为示例
docker run -itd \
--name=debian12 \
--network=macvlan网络名称 \
--ip=192.168.0.111 \
debian:bookworm-slim
macvlan子网与宿主机互通
macvlan的设计为了安全考虑,所以隔离了容器和宿主机的网络
- 创建名为"br-macvlan"的macvlan接口,绑定到物理网卡(如enp2s0)
ip link add br-macvlan link enp2s0 type macvlan mode bridge
- 为该接口分配与容器同网段的IP(如192.168.0.99)
ip addr add 192.168.0.99 dev br-macvlan
- 启用该接口
ip link set br-macvlan up
- 添加路由规则(假设容器IP为192.168.0.111)
ip route add 192.168.0.111 dev br-macvlan
评论区