On this page:

You are viewing documentation for CNI version: v0.9

CNI v0.9 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest release, v1.1, or the current documentation.

macvlan plugin



macvlan functions like a switch that is already connected to the host interface. A host interface gets “enslaved” with the virtual interfaces sharing the physical device but having distinct MAC addresses. Since each macvlan interface has its own MAC address, it makes it easy to use with existing DHCP servers already present on the network.

Example configuration

	"name": "mynet",
	"type": "macvlan",
	"master": "eth0",
	"ipam": {
		"type": "dhcp"

Network configuration reference

  • name (string, required): the name of the network
  • type (string, required): “macvlan”
  • master (string, optional): name of the host interface to enslave. Defaults to default route interface.
  • mode (string, optional): one of “bridge”, “private”, “vepa”, “passthru”. Defaults to “bridge”.
  • mtu (integer, optional): explicitly set MTU to the specified value. Defaults to the value chosen by the kernel. The value must be [0, master’s MTU].
  • ipam (dictionary, required): IPAM configuration to be used for this network. For interface only without ip address, create empty dictionary.


  • If you are testing on a laptop, please remember that most wireless cards do not support being enslaved by macvlan.
  • A single master interface can not be enslaved by both macvlan and ipvlan.