Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

An error occurred while submitting your form. Please try again or file a bug report. Close

How to manage networks

MAAS provides pre-configured networks for convenience. You can reconfigure these networks to match your environment.

This page shows you how to:

  • Manage subnets (the foundation of IP allocation).
  • Create and use VLANs.
  • Allocate and reserve IP addresses.
  • Configure and maintain interfaces (NICs, bonds, bridges).
  • Use network discovery to detect devices.
  • Apply advanced patterns such as dual NICs and loopbacks.

Quick reference: common networking commands

Here are the most common MAAS networking commands at a glance. Use this cheat sheet if you just need the basics. The sections below provide full detail and context.

# Subnets
maas $PROFILE subnets read
maas $PROFILE subnet update $SUBNET_CIDR managed=true

# VLANs
maas $PROFILE vlans create $FABRIC_ID name=$VLAN_NAME vid=$VLAN_ID
maas $PROFILE interfaces create-vlan $SYSTEM_ID vlan=$VLAN_ID parent=$INTERFACE_ID

# IP addresses
maas $PROFILE ipaddresses reserve ip=$IP_ADDRESS
maas $PROFILE ipranges create type=dynamic subnet=$SUBNET start_ip=$LOW end_ip=$HIGH

# Interfaces
maas $PROFILE interfaces read $SYSTEM_ID
maas $PROFILE interface update $SYSTEM_ID $INTERFACE_ID key=value...

# Routes
maas $PROFILE interface link-subnet $SYSTEM_ID $INTERFACE_ID subnet=$SUBNET_ID mode=STATIC ip_address=10.0.0.101

# Discovery
maas $PROFILE maas set-config name=network_discovery value=enabled

Manage subnets

Subnets are the building blocks for all networking in MAAS. You’ll use them to assign addresses, set gateways, and control routing.

View and edit subnets

UI
Networking > Subnets > (Select subnet)

CLI

maas $PROFILE subnets read
maas $PROFILE subnet read $SUBNET_ID

Enable or disable subnet management

maas $PROFILE subnet update $SUBNET_CIDR managed=true   # enable
maas $PROFILE subnet update $SUBNET_CIDR managed=false  # disable

Configure DNS servers

maas $PROFILE subnet update $SUBNET_CIDR dns_servers=$DNS_SERVER_IPS

Add static routes

maas $PROFILE static-routes create source=$SOURCE_SUBNET destination=$DEST_SUBNET gateway_ip=$GATEWAY_IP

Manage VLANs

VLANs let you segment networks for isolation, PXE booting, or multi-tenancy.

Create a VLAN

maas $PROFILE vlans create $FABRIC_ID name=$VLAN_NAME vid=$VLAN_ID

Assign a VLAN to an interface

maas $PROFILE interfaces create-vlan $SYSTEM_ID vlan=$VLAN_ID parent=$INTERFACE_ID

Delete a VLAN

maas $PROFILE vlan delete $FABRIC_ID $VLAN_ID

Manage IP addresses

You can reserve addresses for static or dynamic use.

Reserve a single IP

maas $PROFILE ipaddresses reserve ip=$IP_ADDRESS_STATIC_SINGLE

Reserve a dynamic range

maas $PROFILE ipranges create type=dynamic subnet=$SUBNET_ADDRESS   start_ip=$IP_DYNAMIC_RANGE_LOW end_ip=$IP_DYNAMIC_RANGE_HIGH

Reserve a static range

maas $PROFILE ipranges create type=reserved subnet=$SUBNET_ADDRESS   start_ip=$IP_STATIC_RANGE_LOW end_ip=$IP_STATIC_RANGE_HIGH

Configure static IP via netplan (post-deploy)

Edit /etc/netplan/50-cloud-init.yaml:

network:
  ethernets:
    ens160:
      addresses:
        - 192.168.0.100/24
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

Apply with:

sudo netplan apply

Manage interfaces

Interfaces control how machines connect to subnets. MAAS supports physical NICs, VLANs, bonds, and bridges. Most changes require the machine to be in Ready or Broken state.

View and maintain interfaces

  • List interfaces:
    maas $PROFILE interfaces read $SYSTEM_ID
    
  • View one interface:
    maas $PROFILE interface read $SYSTEM_ID $INTERFACE_ID
    
  • Update interface:
    maas $PROFILE interface update $SYSTEM_ID $INTERFACE_ID key=value...
    
  • Delete interface:
    maas $PROFILE interface delete $SYSTEM_ID $INTERFACE_ID
    

Common interface types

  • Physical (detected during commissioning)
  • VLAN (virtual interface tied to a parent NIC and VLAN ID)
  • Bond (group NICs for redundancy or throughput)
  • Bridge (share NICs with VMs/containers or route traffic)

Each has UI and CLI creation commands. See interface reference for details.

Manage routes and links

  • Disconnect interface:
    maas $PROFILE interface disconnect $SYSTEM_ID $INTERFACE_ID
    
  • Link interface to subnet:
    maas $PROFILE interface link-subnet $SYSTEM_ID $INTERFACE_ID     mode=STATIC subnet=$SUBNET_ID ip_address=10.0.0.101
    
  • Unlink interface:
    maas $PROFILE interface unlink-subnet $SYSTEM_ID $INTERFACE_ID
    
  • Set default gateway:
    maas $PROFILE subnet update $SUBNET_CIDR gateway_ip=$MY_GATEWAY
    

Tag interfaces

Tags help classify interfaces for automation (e.g., "uplink", "pxe").

  • Add tag:
    maas $PROFILE interface add-tag $SYSTEM_ID $INTERFACE_ID tag=my-tag
    
  • Remove tag:
    maas $PROFILE interface remove-tag $SYSTEM_ID $INTERFACE_ID tag=my-tag
    

Manage network discovery

Use discovery to detect devices on connected subnets.

  • Enable:
    maas $PROFILE maas set-config name=network_discovery value=enabled
    
  • Disable:
    maas $PROFILE maas set-config name=network_discovery value=disabled
    
  • Clear all discoveries:
    maas $PROFILE discoveries clear all=true
    

You can fine-tune discovery (force re-scan, use ping, slow scan, limit threads) and filter results by unknown IP or MAC. See CLI reference for full commands.

Advanced: dual NICs and loopbacks

  • Dual NICs: Assign private and public roles to different NICs (e.g., internal DHCP + external static IP). Configure in MAAS or via netplan.
  • Loopbacks: Add a loopback interface with a dummy MAC (00:00:00:00:00:00). Useful for routing or HA testing.

Verify your changes

  • Check the UI: Machines > Network tab should reflect changes.
  • Confirm CLI reads show the expected subnets, bonds, or bridges.
  • Use ping or ip addr on deployed machines to confirm connectivity.

Next steps

Last updated 3 days ago. Help improve this document in the forum.