guida per gli sviluppatori nftlb

PUBBLICATO DA Zevenet | 30 luglio, 2019

Descrizione

nftlb si affida allo stack di rete di netfilter / nftables linux. Con questo nuovo stack vengono forniti nuovi concetti e abilità di cui abbiamo bisogno per adattarci all'attuale progetto di bilanciamento del carico.

Questo articolo ha lo scopo di fornire una visione d'insieme su come sono progettati il ​​percorso dati di bilanciamento del carico nftables e il percorso di controllo.

Ganci del percorso dati

Questi sono gli hook Netfilter che utilizza nftlb, sfruttando le catene configurabili. Nuovi concetti come l'offload di tracciamento delle connessioni devono essere inclusi per accelerare le connessioni inoltrate stabilite ai back-end.

                                                                  ------------
                                                                 |    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      |       |                --------------       -------
      ------------ ------------- --------------                   ------------ ------- 

ingresso

Filtro (0): Riservato alla gestione del clustering. Non ancora incluso in nftlb.
Filtro (50-99): Riservato per l'accelerazione delle tabelle di flusso. Non ancora incluso in nftlb.
Filtro (100): Riservato, in ordine, per: Politiche di sicurezza (blacklist e whitelist), restituzione diretta del server e topologie dNAT senza stato.

PREROUTING

Filtro (-150): Riservato per i limiti di sicurezza per servizi virtuali o per back-end come: numero massimo di connessioni stabilite, limite di TCP RST al secondo, limite di TCP SYN al secondo, caduta di connessioni TCP non rigide, coda al servizio DNSBL, servizio virtuale e segni di backend , utilizzo di helper, registrazione delle connessioni di input per servizio virtuale.
(0) nat: Riservato alla manipolazione NAT di destinazione.

inoltrare

Filtro (0): Riservato allo scarico del flusso. Non ancora incluso in nftlb.

POSTROUTING

(100) nat: Riservato alla manipolazione NAT di destinazione.

Percorso di controllo

Il percorso di controllo nftlb è progettato come un demone che fornisce a un semplice server http un'API o un binario autonomo che accetta un file di configurazione in formato JSON.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
Condividere su:

Documentazione sotto i termini della GNU Free Documentation License.

questo articolo è stato utile?

Articoli Correlati