Errors or typos? Topics missing? Hard to read? Let us know.
Basics
Manage MAAS networks by setting gateways, routes, loopback, bridges, and bonds.
Set default gateway
maas $PROFILE subnet update $SUBNET_CIDR gateway_ip=$MY_GATEWAY
Add static routes
UI:
Networking > Subnets > (Select subnet) > Add static route > Fill fields > Save
CLI:
maas $PROFILE static-routes create source=$SOURCE_SUBNET destination=$DEST_SUBNET gateway_ip=$GATEWAY_IP
Configure loopback
After commissioning, manually add a loopback interface using a placeholder MAC (00:00:00:00:00:00
).
For automation, use cloud-init
.
Create bridges
UI:
Machines > (Select machine) > Network > (Select interface) > Create bridge > (Configure details) > Save interface
CLI:
INTERFACE_ID=$(maas $PROFILE machine read $SYSTEM_ID | jq .boot_interface.id)
BRIDGE_ID=$(maas $PROFILE interfaces create-bridge $SYSTEM_ID name=br0 parent=$INTERFACE_ID | jq .id)
SUBNET_ID=$(maas $PROFILE subnets read | jq -r '.[] | select(.cidr == "10.0.0.0/24" and .managed == true).id')
maas $PROFILE interface link-subnet $SYSTEM_ID $BRIDGE_ID subnet=$SUBNET_ID mode="STATIC" ip_address="10.0.0.101"
Bridging via netplan
Modify /etc/netplan/50-cloud-init.yaml
:
network:
bridges:
br0:
addresses:
- 10.0.0.101/24
gateway4: 10.0.0.1
interfaces:
- enp1s0
Apply:
sudo netplan apply
Create bonds
UI:
Machines > (Select machine) > Network > (Select 2 physical interface) > Create bond > (Configure details) > Save interface
CLI:
maas $PROFILE interfaces create-bond $SYSTEM_ID name=$BOND_NAME parents=$IFACE1_ID,$IFACE2_ID bond_mode=$BOND_MODE
Modes:
- balance-rr: Round-robin
- active-backup: Failover only
- balance-xor: Hash-based
Two-NIC setup
UI steps
- NIC 1 (private subnet): Set to DHCP (e.g.,
192.168.10.0/24
). - NIC 2 (public internet): Set to DHCP/static (e.g.,
192.168.1.0/24
).
Netplan example
network:
version: 2
ethernets:
ens18:
addresses:
- 192.168.10.5/24
gateway4: 192.168.10.1
ens19:
addresses:
- 192.168.1.10/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Network discovery
See also: Network discovery.
Detects connected devices, including non-deployables.
Turn discovery on
UI:
Networking > Network discovery > Configuration > Enabled
CLI:
maas $PROFILE maas set-config name=network_discovery value="enabled"
Turn discovery off
UI:
Networking > Network discovery > Configuration > Disabled
CLI:
maas $PROFILE maas set-config name=network_discovery value="disabled"
DHCP management
Enable MAAS DHCP
UI:
Subnets > (Select VLAN) > Configure DHCP (Fill fields) > Configure DHCP
CLI:
maas $PROFILE vlan update $FABRIC_ID $VLAN_TAG dhcp_on=True primary_rack=$PRIMARY_RACK
Enable DHCP for HA
CLI
maas $PROFILE vlan update $FABRIC_ID $VLAN_TAG dhcp_on=True primary_rack=$PRIMARY_RACK secondary_rack=$SECONDARY_RACK
Set default gateway
UI
Subnets > (Select subnet) > Edit > (Set Gateway IP) > Set
CLI
maas $PROFILE subnet update $SUBNET_CIDR gateway_ip=$MY_GATEWAY
Set up a DHCP relay
UI
Subnets > (Select VLAN) > Configure DHCP > Relay to another VLAN > (Select VLAN) > Configure DHCP
CLI:
maas $PROFILE vlan update $FABRIC_ID $VLAN_VID_SRC relay_vlan=$VLAN_ID_TARGET
DHCP snippets
Create snippets
UI
Settings > DHCP snippets > Add snippet > (Fill fields) > Save snippet
CLI (global snippet)
maas $PROFILE dhcpsnippets create name=$DHCP_SNIPPET_NAME value=$DHCP_CONFIG description=$DESCRIPTION global_snippet=true
CLI (subnet snippet)
maas $PROFILE dhcpsnippets create name=$DHCP_SNIPPET_NAME value=$DHCP_CONFIG description=$DESCRIPTION subnet=$SUBNET_ID
CLI (node snippet)
maas $PROFILE dhcpsnippets create name=$DHCP_SNIPPET_NAME value=$DHCP_CONFIG description=$DESCRIPTION node=$NODE_ID
List snippets
UI
Settings > DHCP snippets
CLI
maas $PROFILE dhcpsnippets read
Update a snippet
UI
Settings > DHCP snippets > Actions > Pencil icon (edit) > (Edit snippet) > Save snippet
maas $PROFILE dhcpsnippet update $DHCP_SNIPPET_ID enabled=false
Delete a snippet
UI
Settings > DHCP snippets > Actions > Trash can icon (delete) > Delete
CLI
maas $PROFILE dhcpsnippet delete $DHCP_SNIPPET_ID
IP management
Static IP via netplan
Modify /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
Reserve IPs
Reserve single IP
CLI
maas $PROFILE ipaddresses reserve ip=$IP_ADDRESS_STATIC_SINGLE
Reserve dynamic range
UI
Subnets > (Select subnet> > (Scroll down> > Reserve range > Reserve dynamic range > (Fill fields) > Reserve
CLI
maas $PROFILE ipranges create type=dynamic subnet=$SUBNET_ADDRESS start_ip=$IP_DYNAMIC_RANGE_LOW end_ip=$IP_DYNAMIC_RANGE_HIGH
Reserved range:
UI
Subnets > (Select subnet> > (Scroll down) > Reserve range > Reserve range > (Fill fields) Reserve
CLI
maas $PROFILE ipranges create type=reserved subnet=$SUBNET_ADDRESS start_ip=$IP_STATIC_RANGE_LOW end_ip=$IP_STATIC_RANGE_HIGH
VLANs
Create VLAN
UI
Subnets > Add > VLAN > (Fill fields) > Add VLAN
CLI
maas $PROFILE vlans create $FABRIC_ID name=$VLAN_NAME vid=$VLAN_ID
Assign VLAN to interface
UI
Machines > (Select machine> > (Select physical interface) > Actions > Add VLAN
CLI
maas $PROFILE interfaces create-vlan $SYSTEM_ID vlan=$VLAN_ID parent=$INTERFACE_ID
Delete VLAN
UI
Subnets > (Select VLAN) > Delete VLAN > Delete VLAN*
CLI
maas $PROFILE vlan delete $FABRIC_ID $VLAN_ID
NTP management
Use external NTP
UI:
Settings > Network > NTP > (Fill in NTP address) > External Only > Save
CLI:
maas $PROFILE maas set-config name=ntp_servers value=$NTP_IP_ADDRESS
maas $PROFILE maas set-config name=ntp_external_only value=true
DNS management
Set DNS server
UI
Settings > DNS > (Fill fields) > Save
CLI
maas $PROFILE subnet update $SUBNET_CIDR dns_servers=$MY_DNS_SERVER
Create DNS records
A record
CLI
maas $PROFILE dnsresources create fqdn=$HOSTNAME.$DOMAIN ip_addresses=$IPV4ADDRESS
AAAA record
maas $PROFILE dnsresources create fqdn=$HOSTNAME.$DOMAIN ip_addresses=$IPV6ADDRESS
Set CNAME record
CLI
maas $PROFILE dnsresource-records create fqdn=$HOSTNAME.$DOMAIN rrtype=cname rrdata=$ALIAS
For example:
CLI
maas $PROFILE dnsresource-records create fqdn=webserver.maas.io rrtype=cname rrdata=www
Set MX record
CLI
maas $PROFILE dnsresource-records create fqdn=$DOMAIN rrtype=mx rrdata='10 $MAIL_SERVER.$DOMAIN'
For example:
CLI
maas $PROFILE dnsresource-records create fqdn=maas.io rrtype=mx rrdata='10 smtp.maas.io'
Set DNS forwarder
CLI
maas $PROFILE maas set-config name=upstream_dns value=$MY_UPSTREAM_DNS
Last updated 12 hours ago.