Skip to content

Creating a MACVLAN Sub Interface (For Docker)

Purpose: You may find that you only have one network adapter on a server / VM and need to have multiple virtual networks associated with it. For example, Home Assistant exists on the 192.168.3.0/24 network but it needs to also access devices on the 192.168.4.0/24 surveillance network. To facilitate this, we will make a MACVLAN Sub-Interface. This will make a virtual interface that is parented to the actual physical interface.

Assumptions

It is assumed that you are running Rocky Linux (or CentOS / RedHat).

Create the Permanent Sub-Interface

You will begin with making a new interface, it will have the name macvlan0.

nmcli connection add type macvlan ifname surveillance dev ens18 mode bridge ipv4.method manual ipv4.addresses 192.168.4.100/24
nmcli connection up macvlan-surveillance
nmcli connection show

Bind a Docker Network to the Sub-Interface

Now you need to run the following command to allow docker to use this interface for the surveillance_network

docker network create -d macvlan --subnet=192.168.4.0/24 --gateway=192.168.4.1 -o parent=surveillance surveillance_network