Guide du développeur nftlb

PUBLIÉ LE 30 juillet, 2019

Aperçu

nftlb repose sur la pile réseau netfilter / nftables linux. Avec cette nouvelle pile, nous fournissons de nouveaux concepts et capacités que nous devons intégrer dans la conception actuelle de l'équilibrage de charge.

Cet article vise à donner un aperçu de la conception du chemin de données et du chemin de contrôle de l'équilibreur de charge nftables.

Crochets de chemin de données

Ce sont les crochets Netfilter utilisés par nftlb, tirant parti des chaînes configurables. De nouveaux concepts, tels que le déchargement du suivi des connexions, doivent être inclus afin d’accélérer les connexions transférées établies vers le serveur.

                                                                  ------------
                                                                 |    DNSBL   |
                                                                  ------------
                                                                       |
                                                                     queue
                      ingress                                          |  prerouting                      forward         postrouting
      ------------ ------------- --------------                   ------------ -------                 --------------       -------
     |   filter   |    filter   |    filter    |                 |   filter   |  nat  |               |    filter    |     |  nat  |
     |     0      |    50-99    |     100      |                 |    -150    |   0   |               |      0       |     |  100  | 
 --> |            |             | Sec Policies |-( Conntrack )-> | Sec Limits |       |-( Routing )-> |              | --> |       |
     | Clustering | Flow tables | DSR          |           VS{}  | Helpers    | dNAT  |         VS{}  | Flow offload |     |  sNAT |
     |            |             | stless dNAT  |                 | Marks      |       |                --------------       -------
      ------------ ------------- --------------                   ------------ ------- 

entrée

Filtre (0): Réservé pour la gestion des clusters. Pas encore inclus dans nftlb.
Filtre (50-99): Réservé pour l'accélération des tables de flux. Pas encore inclus dans nftlb.
Filtre (100): Réservé, dans l'ordre, pour: les topologies de stratégies de sécurité (listes noires et listes blanches), de retour direct de serveur et dNAT sans état.

préroutage

Filtre (-150): Réservé pour la sécurité Limites par services virtuels ou par serveur, telles que: nombre maximal de connexions établies, limite de TCP RST par seconde, limite de TCP SYN par seconde, suppression des connexions TCP non strictes, service de file d'attente à DNSBL, service virtuel et marques d'arrière-plan , utilisation d’aides, journalisation des connexions d’entrée par service virtuel.
(0) nat: Réservé à la destination NAT.

vers l'avant

Filtre (0): Réservé au déchargement de flux. Pas encore inclus dans nftlb.

postrouting

(100) nat: Réservé à la destination NAT.

Chemin de contrôle

Le chemin de contrôle nftlb est conçu comme un démon qui fournit un serveur http simple avec une API ou un binaire autonome qui accepte un fichier de configuration au format JSON.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
Partager sur:

Documentation sous les termes de la licence de documentation libre GNU.

Cet article a-t-il été utile?

Articles Relatifs