Conteúdo
Visão geral
nftlb depende da pilha de rede netfilter / nftables linux. Com essa nova pilha, são fornecidos novos conceitos e habilidades que precisamos encaixar no design de balanceamento de carga atual.
Este artigo tem como objetivo fornecer uma visão geral sobre como o caminho de dados e o caminho de controle do balanceador de carga nftables são projetados.
Ganchos de Caminho de Dados
Estes são os ganchos do Netfilter que o nftlb usa, aproveitando as cadeias configuráveis. Novos conceitos, como o descarregamento de rastreamento de conexão, precisam ser incluídos para acelerar as conexões encaminhadas estabelecidas para os back-ends.
------------ | 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 | | -------------- ------- ------------ ------------- -------------- ------------ -------
preâmbulo
Filtro (0): Reservado para gerenciamento de cluster. Ainda não incluído no nftlb.
Filtro (50-99): Reservado para aceleração de tabelas de fluxo. Ainda não incluído no nftlb.
Filtro (100): Reservado, na ordem, para: Topologias de diretivas de segurança (lista de bloqueio e lista branca), Retorno direto do servidor e dNAT sem estado.
Prerouting
(-150) filter: Reservado para limites de segurança por serviços virtuais ou por back-end como: número máximo de conexões estabelecidas, limite de TCP RST por segundo, limite de TCP SYN por segundo, queda de conexões TCP não restritas, fila para serviço DNSBL, serviço virtual e marcas backends , uso de helpers, registro de conexões de entrada por serviço virtual.
(0) nat: Reservado para o destino NAT mangling.
para a frente
Filtro (0): Reservado para descarregamento de fluxo. Ainda não incluído no nftlb.
postrouting
(100) nat: Reservado para o destino NAT mangling.
Caminho de controle
O caminho de controle nftlb é projetado como um daemon que fornece um servidor http simples com uma API, ou binário independente que aceita um arquivo de configuração no formato JSON.
------------- traduction ------------- -------- JSON API | | objs to nft | | netlink | | ------------> | http server | --------------> | libnftables | --------> | kernel | | | | | | | | ------------- | ------------- -------- | netlink | ---------------------------------------