Docker Rootless with MACVLAN networks

Hi,

Has anyone managed to create and use a MACVLAN network within docker rootless? I have tried several things but just cannot seem to get any inbound or outbound connectivity in any container attached to it.

Docker rootless seems to be working as expected and containers attached to the ‘host’ or and network driven by the bridge driver are working fine.

I suspect something needs to change with iptables/ebtables on the host or in the slirp4netns namespace but cannot figure what. iptables within the dockerd namespace is enabled as per the defaults.

Issue type:
Technical, Network configuration, Docker Rootless

OS Version/build:
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster

App version:
Client: Docker Engine - Community
Version: 20.10.7
API version: 1.41
Go version: go1.13.15
Git commit: f0df350
Built: Wed Jun 2 11:57:27 2021
OS/Arch: linux/arm
Context: default
Experimental: true

Server: Docker Engine - Community
Engine:
Version: 20.10.7
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: b0f5bc3
Built: Wed Jun 2 11:55:25 2021
OS/Arch: linux/arm
Experimental: false
containerd:
Version: 1.4.6
GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d
runc:
Version: 1.0.0-rc95
GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
docker-init:
Version: 0.19.0
GitCommit: de40ad0

Steps to reproduce:

With user for which rootless docker is running as;

  • Run docker network create -d macvlan --subnet=<local network IP range> --gateway=<gateway on local IP range> -o parent=tap0 mv_test
  • Create a container, attached to the ‘mv_test’ with a spare fixed IP in the local IP range defined above. Attempt to ping any external address with no response.

Same question as the unanswered above. I can’t find anything that says macvlan will not work with rootless docker, but I can’t find any examples to show how to set it up.

Trying to set it up with a parent of eth0 returns ‘invalid subinterface vlan name eth0, example formatting is eth0.1”

Trying to set it up with a parent of tap0 does not return an error, but nothing I can do (ping, curl, etc.) work, essentially no network.

Anyone know if it is possible?