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
orip addr
on deployed machines to confirm connectivity.
Next steps
- Explore about MAAS networking for deeper context.
- Investigate how to tune MAAS network services to improve performance or create special configurations.
- If you need redundancy, learn how to manage high availability.