<a id="network-macvlan"></a>

# Macvlan network

<!-- Include start macvlan intro -->

Macvlan is a virtual  that you can use if you want to assign several IP addresses to the same network interface, basically splitting up the network interface into several sub-interfaces with their own IP addresses.
You can then assign IP addresses based on the randomly generated MAC addresses.

<!-- Include end macvlan intro -->

The `macvlan` network type allows to specify presets to use when connecting instances to a parent interface.
In this case, the instance NICs can simply set the `network` option to the network they connect to without knowing any of the underlying configuration details.

#### NOTE
If you are using a `macvlan` network, communication between the LXD host and the instances is not possible.
Both the host and the instances can talk to the gateway, but they cannot communicate directly.

<a id="network-macvlan-options"></a>

## Configuration options

The following configuration key namespaces are currently supported for the `macvlan` network type:

- `maas` (MAAS network identification)
- `user` (free-form key/value for user metadata)

#### NOTE
LXD uses the [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) where network subnet information is required, for example, `192.0.2.0/24` or `2001:db8::/32`. This does not apply to cases where a single address is required, for example, local/remote addresses of tunnels, NAT addresses or specific addresses to apply to an instance.

The following configuration options are available for the `macvlan` network type:

<!-- Include content from [../metadata.txt](../metadata.txt) -->

<a id="network-macvlan-network-conf:gvrp"></a>
`gvrp`

Whether to use GARP VLAN Registration Protocol

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:gvrp)

| **Key:**     | `gvrp`   |
|--------------|----------|
| **Type:**    | bool     |
| **Default:** | `false`  |
| **Scope:**   | global   |

This option specifies whether to register the VLAN using the GARP VLAN Registration Protocol.

<a id="network-macvlan-network-conf:maas.subnet.ipv4"></a>
`maas.subnet.ipv4`

MAAS IPv4 subnet to register instances in

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:maas.subnet.ipv4)

| **Key:**       | `maas.subnet.ipv4`                                    |
|----------------|-------------------------------------------------------|
| **Type:**      | string                                                |
| **Condition:** | IPv4 address; using the `network` property on the NIC |
| **Scope:**     | global                                                |

<a id="network-macvlan-network-conf:maas.subnet.ipv6"></a>
`maas.subnet.ipv6`

MAAS IPv6 subnet to register instances in

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:maas.subnet.ipv6)

| **Key:**       | `maas.subnet.ipv6`                                    |
|----------------|-------------------------------------------------------|
| **Type:**      | string                                                |
| **Condition:** | IPv4 address; using the `network` property on the NIC |
| **Scope:**     | global                                                |

<a id="network-macvlan-network-conf:mtu"></a>
`mtu`

MTU of the new interface

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:mtu)

| **Key:**    | `mtu`   |
|-------------|---------|
| **Type:**   | integer |
| **Scope:**  | global  |

<a id="network-macvlan-network-conf:parent"></a>
`parent`

Parent interface to create `macvlan` NICs on

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:parent)

| **Key:**    | `parent`   |
|-------------|------------|
| **Type:**   | string     |
| **Scope:**  | local      |

<a id="network-macvlan-network-conf:user.*"></a>
`user.*`

User-provided free-form key/value pairs

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:user.*)

| **Key:**    | `user.*`   |
|-------------|------------|
| **Type:**   | string     |
| **Scope:**  | global     |

<a id="network-macvlan-network-conf:vlan"></a>
`vlan`

VLAN ID to attach to

[<i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i>](#network-macvlan-network-conf:vlan)

| **Key:**    | `vlan`   |
|-------------|----------|
| **Type:**   | integer  |
| **Scope:**  | global   |
