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