# Create bridge directly connected to an interface
# https://docs.docker.com/network/macvlan/#bridge-mode
# # Docker requires to run its own DHCP,
# apparently it is not possible to use an existing DHCP server
# To find a proper subnet: http://www.davidc.net/sites/default/subnets/subnets.html
# E.g.
# - The existing DHCP server serves 192.168.178.0/24
# for the range starting 192.167.167.50 41-46
docker network create -d macvlan -o parent=br0 \
--subnet 192.168.178.0/24 \
--gateway 192.168.178.1 \
--ip-range 192.168.178.40/29 \
macvlan
docker network ls
# IPERF 3
docker run --rm -d \
--network macvlan \
--name iperf3-server \
--ip 192.168.178.40 \
alpine \
sh -c \
"
apk add iperf3 \
&& ip addr show dev eth0 \
&& iperf3 -s \
"
# IPERF 2
docker run --rm -d \
--network macvlan \
--name iperf2-server \
--ip 192.168.178.42 \
alpine \
sh -c \
"
apk add iperf \
&& ip addr show dev eth0 \
&& iperf -s \
"
# CLIENT IPERF3
docker run --rm \
--network macvlan \
--name iperf3-client \
--ip 192.168.178.41 \
alpine \
sh -c \
"
apk add iperf3 \
&& ip addr show dev eth0 \
&& iperf3 -c 192.168.178.40
"
# CLIENT IPERF2
docker run --rm \
--network macvlan \
--name iperf3-client \
--ip 192.168.178.41 \
alpine \
sh -c \
"
apk add iperf \
&& ip addr show dev eth0 \
&& iperf -c 192.168.178.42
"
# Cleanup
docker kill iperf2-server
docker kill iperf3-server
docker network rm macvlan