[BPF] Placas de Rede para NAT offload
Fernando Frediani
fhfrediani em gmail.com
Quinta Abril 18 10:11:28 -03 2019
Olá pessoal
Estava pesquisando por hardwares ou placas PCI que fossem capaz de fazer
offload de NAT em hardware para não consumir CPU de um softrouter e
encontrei algumas opções que parecem ter tal função. Queria saber se
alguém já utilizou alguma delas, em especial essa função de NAT offload.
Saberia dizer se pra isso funcionar é necessário instalar alguma regras
específicas no FPGA/ASIC da placa ou existe algum tipo de integração
entre Netfilter e o driver da placa de rede para fazer esse offload e
não consumir CPU ?
Para caixas dedicadas à fazer CGNAT parece uma solução interessante e
escalável para quantidades maiores de tráfego e/ou que possam fazer
funcionar perto de wire-speed.
Algumas placas que eu encontrei que dizem ter "Full NAT offload" na
feature list são:
- Chelsio T520-BT, T520-CR e T520-LL-CR
- Chelsio T540-LP-CR e T540-SO-CR
- Chelsio T580-LP-CR
- Chelsio T6225-SO-CR
Na descrição da feature diz: "T540-CR integrates a high performance
packet switch, which allows switching traffic from any of the input
ports to any of the output ports (wire-to-wire) and from any of the
output ports to any of the input ports (host-to-host), with header
rewrite and NAT offload."
Quando eu estava lendo sobre o assunto porém relacionado à existência
dessa feature em CPEs domésticas como roteadores TP-Link que estão
começando a vir com essa funcionalidade em alguns SoC por causa das
velocidades de banda larga maiores diz que em alguns casos algumas
limitações são Port Forwarding não compatível e impossibilidade de
trabalhar com QoS ao mesmo tempo, porém creio que isso seja uma
limitação para aquele cenário que mantém e maioria das funções sendo
feita no switchip ou SoC do equipamento e não para essas placas citadas
acima que possivelmente já integram uma gama maior de features no
próprio chip.
Para as conhecidas Intel X520, 82599 e X710 lendo a documentação delas
não parece haver essa feature. Possuem existem offload para várias
outras como IPSec, VMDq, VXLAN, NVGRE, IPv6, etc mas não NAT.
Para placas Cavium procurei mas para maioria não encontrei NAT offload
especificamente, embora algumas possuam outros offload interessantes.
Apenas um modelo chamado LiquidIO II parece ter tal feature quando
trabalha com OpenVSwitch
Comentem se alguém já utilizou hardware similar para este propósito ou
já pesquisou algo sobre este assunto.
Saudações
Fernando Frediani
More information about the bpf
mailing list