[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