1.4 KiB
HostChecker
HostChecker est un outil très simpliste, qui teste la disponibilité de services distants (tcp, http, smtp) pour établir la disponibilité d'un serveur (host).
En fonction du résultat du test, il ajoute ou supprime le serveur (désigné par son IP) d'une table PF.
L'outil est écrit spécifiquement pour répondre à un besoin précis.
Sur des pare-feux réseau FreeBSD ou OpenBSD, PF (packet filter) permet de distribuer un traffic entrant vers un ou plusieurs serveurs backends
en round-robin.
Si l'un de ces serveurs est indisponible, PF ne peut le détecter et continue de distribuer du traffic vers ce backend, générant donc des erreurs. Il existe plusieurs moyens pour pallier à ce problème, dont l'utilisation d'un proxy applicatif sur le pare-feu lui-même ou l'utilisation d'IP virtuelles redondées sur les serveurs backends.
HostChecker permet d'avoir un troisième solution, celle de gérer dynamiquement la liste des serveurs backends référencés dans une table PF.
Configuration
La configuration se fait dans un seul fichier YAML qui décrit un ou plusieurs groupes de serveurs, les méthodes de test et les tables PF a mettre à jour.
cluster-web:
tables:
- cluster-web-hosts
hosts:
- 10.10.1.10
- 10.10.1.11
check:
- type: http
- port: 80
- interval: 5
- timeout: 2