This article describes the architecture of the Halon platform.
How messages are processed
|SMTP||Flow||Configured per||HSL script||Process||Description|
|CONNECT||Server (listener)||CONNECT context||
||IP based filtering in order to check against e.g. IP reputation services|
||HELO||Server (listener)||HELO context||
||Allows verification of the HELO and EHLO domain.|
||AUTH||Server (listener)||AUTH context||
||Used if client tries to authenticate (SASL).|
||MAIL FROM||Server (listener)||MAIL FROM context||
||Filtering in order to control relaying, or verify SPF etc.|
||RCPT TO||Domains||RCPT TO context||
||Filtering in order to control relaying, prevent backscattering.|
||Processing the actual mail message, such as spam and virus rejection.|
||Before a message delivery attempt (unless in-line delivery is used).|
||After a message delivery attempt (unless in-line delivery is used).|
In order to provide reliable updates and simple maintenance, each Halon platform node consists of four partitions, listed in the table below.
- The recovery OS takes care of the actual software update procedure (overwriting the system partition). It is always read-only, and never updated in itself.
- The system partition (mounted read-only during normal operation) contains the actual Halon software, which is a complete software distribution (operating system, based on FreeBSD). The system partition completely overwritten with each update.
- The configuration partition contains the revision-managed configuration file. This partition is, of course, not touched during updates.
- The storage partition is used for all large files and heavy write operations, such as mail queue, swap, virus definitions, logs, and much more.
|Partition #||Partition label||Mount||Function||Read/write||Size|
|1||halonrecovery||Recovery OS||Always read-only||20 MB|
|2||halonsystem||/||System||Read-only||250 MB (approx.)|
|3||halonconfig||/cfg||Configuration||Infrequent writes||20 MB|
|4||/storage||Storage and swap||Heavy IO||Configurable, can also be on a separate disk|
Growing storage disk
If you're running on a hypervisor, you can grow the storage disk under Hosts -> System -> Disks after you have expanded the disk in the hypervisor.