---
title: About controllers
description: Canonical makes open source secure, reliable and easy to use, providing
  support for Ubuntu and a portfolio of enterprise-grade technologies. Founded in
  2004, Canonical operates globally with team members in over 80 countries.
url: https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md
---

*Submit*

# About controllers

Understanding controllers within the MAAS ecosystem helps to metal infrastructure. You may find it useful to [tweak your controller settings](https://canonical.com/maas/docs/how-to-manage-controllers) based on your specific network and machine count. Even consider opting for a [high availability setup](https://canonical.com/maas/docs/how-to-manage-controllers#p-9026-enable-ha) for robustness.

At the core of MAAS are its controllers: region controllers and rack controllers. While the region controller is the interaction hub for operators, the rack controller focuses on delivering high-bandwidth services to the machines.

## [Region controllers](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-region-controllers)

A region controller provides several services:

* REST API server (TCP port 5240)
* PostgreSQL database
* DNS
* caching HTTP proxy
* Web UI

It manages either an entire data centre or a specific region and orchestrates a myriad of tasks from API request routing to keeping DNS records up to date.

## [Rack controllers](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-rack-controllers)

Rack controllers manage fabrics, offering four key services:

* DHCP
* TFTP
* HTTP (for images)
* Power management

Racks caches essential resources like OS install images for better performance.

## [Fabrics](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-fabrics)

Fabrics link otherwise isolate VLANs, so they can communicate under specific conditions.

## [Controllers connect](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-controllers-connect)

The hierarchy of communication in MAAS flows from the UI/API to the region controller, then to the rack controller, and finally to the machines. [High availability](https://canonical.com/maas/docs/how-to-manage-controllers#p-9026-enable-ha) (HA) setups introduce redundancy but don’t alter this fundamental flow.

## [Racks to machines](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-racks-to-machines)

All communications from machines route through rack controllers. This includes everything from DNS lookups to APT cache-and-forward proxies via Squid. A unique DNS resource is created for each subnet, which machines use to find an available rack controller.

## [Region and rack](https://canonical-com-2934.demos.haus/maas/docs/about-controllers?format=md#p-13954-region-and-rack)

Messaging between the region and rack controllers involves multiple steps.

Tell me about the DHCP "next-server" statement

The `next-server` directive specifies the host from which a machine should load its initial boot file. In the context of MAAS, the rack controller serving DHCP roles as this host, acting as a broker for boot file delivery.

---

[Previous

Networking](https://canonical-com-2934.demos.haus/maas/docs/about-maas-networking)
[Next

Images](https://canonical-com-2934.demos.haus/maas/docs/about-images)

Last updated 1 year, 1 month ago. [Help improve this document in the forum](https://discourse.maas.io/t/about-controllers/6690).
