nftlb ontwikkelaars gids

GEPOST DOOR Zevenet | 30 juli 2019

Overzicht

nftlb vertrouwt op de netfilter / nftables linux netwerkstack. Met deze nieuwe stapel worden nieuwe concepten en mogelijkheden geboden die we in het huidige ontwerp voor taakverdeling moeten passen.

Dit artikel heeft als doel een overzicht te geven van hoe het datapad en het controlepad van de nftables load balancer zijn ontworpen.

Gegevenspadhaken

Dit zijn de Netfilter-haken die nftlb gebruikt, gebruik makend van de configureerbare ketens. Nieuwe concepten zoals offload van connectietracking moeten worden opgenomen om gevestigde doorstuurde verbindingen met de backends te versnellen.

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

toegang

(0) filter: Gereserveerd voor clusteringbeheer. Nog niet opgenomen in nftlb.
(50-99) filter: Gereserveerd voor flow-tabellen versnelling. Nog niet opgenomen in nftlb.
(100) filter: Op volgorde gereserveerd voor: Beveiligingsbeleid (zwarte en witte lijsten), Direct Server Return en Stateless dNAT-topologieën.

prerouting

(-150) filter: Gereserveerd voor beveiligingslimieten per virtuele services of per back-end zoals: maximaal aantal gevestigde verbindingen, limiet van TCP RST per seconde, limiet van TCP SYN per seconde, daling van niet-strikte TCP-verbindingen, wachtrij naar DNSBL-service, virtuele service en backends-markeringen , gebruik van helpers, logging van invoerverbindingen per virtuele dienst.
(0) nat: Gereserveerd voor bestemming NAT-mangelen.

vooruit

(0) filter: Gereserveerd voor flow-offload. Nog niet opgenomen in nftlb.

POSTROUTING

(100) nat: Gereserveerd voor bestemming NAT-mangelen.

Controlepad

Het nftlb-besturingspad is ontworpen als een daemon die een eenvoudige http-server met een API biedt, of een zelfstandig binair bestand dat een configuratiebestand in JSON-indeling accepteert.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
Delen op:

Documentatie onder de voorwaarden van de GNU-licentie voor vrije documentatie.

Was dit artikel behulpzaam?

Gerelateerde artikelen