Errors or typos? Topics missing? Hard to read? Let us know.
Network discovery
Network discovery scans your environment to identify all connected devices, including non-deployable devices such as routers and switches.
UI
-
In MAAS 3.4 (and above) UI:
- Navigate to Networking > Network discovery > Configuration.
- In the Network discovery drop-down, choose “Enabled” or “Disabled”.
- Save your changes.
-
All other versions:
- Navigate to Canonical MAAS > Configuration.
- In the Network discovery drop-down, choose “Enabled” or “Disabled”.
- Save your changes.
CLI
To enable network discovery via CLI:
maas $PROFILE maas set-config name=network_discovery value="enabled"
Static routes
Static routes allow traffic between different subnets or through specific gateways.
UI
-
In MAAS 3.4 (and above) UI:
- Navigate to Networking > Subnets > Subnet summary > Add static route.
- Enter Gateway IP address, Destination subnet, and routing Metric.
- Save your changes.
-
For older versions:
- Navigate to Subnets > Add static route.
- Enter the Gateway IP address, Destination subnet, and routing Metric.
- Click Add to save the route.
CLI
To create a static route via CLI:
maas admin static-routes create source=$SOURCE_SUBNET destination=$DEST_SUBNET gateway_ip=$GATEWAY_IP
Configure loopback
Configuring the loopback interface (lo) is essential for advanced networking tasks such as Free Range Routing (FRR) and BGP.
-
Manually add the loopback interface:
- After commissioning a node, manually add the loopback interface in MAAS.
- You may use a placeholder MAC address (e.g., 00:00:00:00:00:00) for the loopback interface.
-
Use post-deployment scripts:
- If needed, use tools like
cloud-init
to configure the loopback interface after deployment.
- If needed, use tools like
Bridging
Bridges enable multiple network interfaces to act as one.
UI
- Navigate to Machines > machine > Network > Create bridge.
- Configure details and save the 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 with Netplan
Netplan configurations can be used to set up bridges outside of MAAS.
- Open the Netplan config file (
/etc/netplan/50-cloud-init.yaml
or similar). - Modify the file to add a bridge:
network: bridges: br0: addresses: - 10.0.0.101/24 gateway4: 10.0.0.1 interfaces: - enp1s0 macaddress: 52:54:00:39:9d:f9
- Apply the new configuration:
sudo netplan apply
Configure two NICs on one machine
To set up a machine with two NICs—one for a private subnet and one for the public internet—follow these steps.
UI
-
Detect both NICs:
- Ensure MAAS detects both network interfaces (e.g.,
ens18
andens19
).
- Ensure MAAS detects both network interfaces (e.g.,
-
Private NIC (ens18):
- Set to DHCP on the private subnet (e.g., 192.168.10.0/24).
-
Public NIC (ens19):
- Manually configure or use DHCP for the public subnet (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
VLANs
Create VLANs
To create a VLAN:
maas admin vlans create $FABRIC_ID name=$VLAN_NAME vid=$VLAN_ID
Assign VLAN to an interface
To assign a VLAN to an interface:
maas admin interfaces create-vlan $SYSTEM_ID vlan=$VLAN_ID parent=$INTERFACE_ID
Delete VLANs
To delete a VLAN:
maas $PROFILE vlan delete $FABRIC_ID $VLAN_ID
Set the default gateway
To set the default gateway for a subnet:
maas $PROFILE subnet update $SUBNET_CIDR gateway_ip=$MY_GATEWAY
Set up DNS
To configure DNS servers:
maas $PROFILE subnet update $SUBNET_CIDR dns_servers=$MY_DNS_SERVER
Create bonds
Bonds allow multiple network interfaces to act together for redundancy or performance.
UI
- Select multiple interfaces and choose Create bond.
- Choose a bond mode such as:
- balance-rr: Round-robin transmission.
- active-backup: Only one active follower; failover to another upon failure.
- balance-xor: Transmit based on hash policy.
CLI
To create a bond via CLI:
maas $PROFILE interfaces create-bond $SYSTEM_ID name=$BOND_NAME parents=$IFACE1_ID,$IFACE2_ID bond_mode=$BOND_MODE
Managing NTP
Use external NTP
-
UI:
- Go to Settings > Network services > NTP.
- Select External Only and enter your desired NTP server.
-
CLI:
maas $PROFILE maas set-config name=ntp_servers value=$NTP_IP_ADDRESS maas $PROFILE maas set-config name=ntp_external_only value=true
Netplan static IP configuration
To configure a static IP with Netplan:
-
Open the Netplan configuration file:
sudo nano /etc/netplan/50-cloud-init.yaml
-
Modify the configuration:
network: version: 2 ethernets: ens160: addresses: - 192.168.0.100/24 gateway4: 192.168.0.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
Create a reserved IP range
-
UI:
- Navigate to Subnets > > Reserved Ranges > Add Reserved Range.
- Define start/end IP address and purpose (optional).
- Save the results.
- Verify the new reserved range is now in the list.
-
CLI:
maas $PROFILE ipranges create type=reserved start_ip=$IP_STATIC_RANGE_LOW end_ip=$IP_STATIC_RANGE_HIGH comment='Reserved range'
Create a dynamic IP range
maas $PROFILE ipranges create type=dynamic start_ip=$IP_DYNAMIC_RANGE_LOW end_ip=$IP_DYNAMIC_RANGE_HIGH comment='Reserved dynamic range'
Create a single reserved IP
maas $PROFILE ipaddresses reserve ip_address=$IP_STATIC_SINGLE
Edit an IP range
-
UI:
- Select Subnet > Edit reserved range.
- Update and save.
-
CLI:
- Find range ID:
maas admin ipranges read
- Update range:
maas admin iprange update $ID start_ip="<start ip>" end_ip="<end ip>" comment="freeform comment"
Delete an IP range
- Select Subnet > .
- Select Remove range.