nftlb udviklere guide

SLAGT DEN 30. juli 2019

Oversigt

nftlb er afhængig af netfilter / nftables linux-netværkstack. Med denne nye stak er der tilvejebragt nye koncepter og evner, som vi har brug for til at passe ind i det aktuelle belastningsbalanceringsdesign.

Denne artikel har til formål at give en oversigt over, hvordan nftables-belastningsbalancerdatabanen og kontrolstien er designet.

Datasøgekroge

Dette er Netfilter-kroge, som nftlb bruger, idet de drager fordel af de konfigurerbare kæder. Nye koncepter som forbindelsessporingsafladning skal inkluderes for at fremskynde etablerede fremsendte forbindelser til bagenden.

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

indtrængen

(0) filter: Reserveret til klyngestyring. Endnu ikke inkluderet i nftlb.
(50-99) filter: Reserveret til flowborde-acceleration. Endnu ikke inkluderet i nftlb.
(100) filter: Reserveret i rækkefølge for: Sikkerhedspolitikker (sortlister og hvidlister), Direct Server Return og statsløse dNAT-topologier.

PREROUTING

(-150) filter: Reserveret til sikkerhedsgrænser pr. Virtuel service eller per backend som: maksimalt antal etablerede forbindelser, grænse for TCP RST per sekund, grænse for TCP SYN pr. Sekund, dråbe ikke-strenge TCP-forbindelser, kø til DNSBL-service, virtuel service og backends-mærker , brug af hjælpere, logning af inputforbindelser pr. virtuel service.
(0) nat: Reserveret til destination NAT-mangling.

frem

(0) filter: Reserveret til flowoffload. Endnu ikke inkluderet i nftlb.

postrouting

(100) nat: Reserveret til destination NAT-mangling.

Kontrolvej

Nftlb-kontrolstien er designet som en dæmon, der giver en simpel http-server med en API eller en enkeltstående binær, der accepterer en konfigurationsfil i JSON-format.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler