[GTER] Hardware para softrouter com DANOS até uns 10Gbps ou 20Gbps

Fernando Frediani fhfrediani at gmail.com
Thu Dec 23 10:40:01 -03 2021


Bom dia

Pra quem tem receio de virtualizar esse tipo de aplicação e fica 
desconfiado que não vai performar bem ou igual um bare-metal pode fazer 
sem medo que vai sim. Porém para isso é necessário observar alguns 
detalhes bastante importantes como PCI Passthrough e também dependendo 
do tráfego passante fazer affinity de CPU para o tráfego não ficar 
atravessando de um socket para outro e isso vai depender da arquitetura 
do servidor utilizado e quais slots utilizados. Se fizer isso 
corretamente não há com o que se preocupar que de precisar ser 
bare-metal e ainda é possível utilizar uma mesma caixa para múltiplos 
usos ou até mesmo múltiplos CGNAT com múltiplas interfaces de rede.

A solução de CGNAT com Debian/Ubuntu é ótima e funciona bem redondo e 
com uma boa performance, porém tem uma limitação importante que é a 
ausência de Bulk Port Allocation (BPA) o que além de dar mais 
flexibilidade para aqueles poucos usuários que utilizam um maior número 
de portas ajuda e muito a economizar uma quantidade razoável de 
endereços IP.

Nisso o DANOS é ótimo e BPA talvez seja a feature mais interessante dele 
além do DPDK. Ele vai "fritar" mais as CPUs com o Willian mencionou por 
causa do DPDK porém a vantagem é que não são necessários um grande 
número de cores para fazer todo o trabalho e conseguir usar a capacidade 
completa dessas placas de rede mais comuns utilizadas seja de 10Gb ou 40Gb.

Fernando Frediani

Em 23/12/2021 02:34, Willian Pires de Souza via gter escreveu:
> Boa noite:
>
> CgNat Bare Metal, sem DPKD rodando Debian 10:
>
>
> 2x Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
> PowerEdge R720
> 64Gb de ram
> 2x Ethernet Controller X710 for 10GbE SFP+
>
> 02:24:16 up 254 days, 18:46,  1 user,  load average: 0,01, 0,04, 0,04
>
> bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
>          RX packets 32157844271087  bytes 40482127125413624 (35.9 PiB)
>          RX errors 0  dropped 7898261056  overruns 0  frame 0
>          TX packets 13390913755273  bytes 4306926658488085 (3.8 PiB)
>          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
> bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
>          RX packets 13390070560702  bytes 4312303158348009 (3.8 PiB)
>          RX errors 0  dropped 6559  overruns 0  frame 0
>          TX packets 32073983370032  bytes 40463220080524215 (35.9 PiB)
>          TX errors 0  dropped 26074 overruns 0  carrier 0  collisions 0
>
> Passa 30Gb/s toda noite, sem reclamações, a mais de 90 dias.
>
> Se você rodar ele virtual, você vai fritar os cpus onde rodara o Danos, você vai ter que pinnar, as cpus
> para ficar exclusiva para essa máquina e aí acaba matando a máquina host.
>
>
> No seu cenário, 2 cavalos desse aí em cima.
>
> 1 CGNat(Linux Debian/Ubuntu 10/11 ipfilter ou netfilter), o Danos tem uns problemas com ALG, até onde eu tinha visto ainda não resolvidos.
> 1 BGP(Danos) DPDK, o Danos resolve o problema do route-lookup, mas aqui só passa os pacotes para as rotas corretas.
> 1 switch 67xx da vida ou equivalente com portas de 10Gb para você fazer os portchannels
> OBS, todos os seus Links, PTT e etc conectam no switch, e dele você desce vlan para o Danos, o Danos tem vlans para seus clientes BGP,
> e vlan para o seu CGNat, boladao.
>
>
> Vamos lá: até 33/35Gb vai de boa, sem stress, utilize 2 placas de 4 portas para maximizar a distribuição de pacotes entre todas as cpus,
> você vai precisar cruzar as portas entre as placas para o portchannel poder usar todos os cpus,
> esse foi o melhor comportamento que consegui fazer, utilize cabos DAC da Intel,Cisco pelo amor de Deus.
>
> Evite vlan, menos 1 modulo menos 1 jump no kernel, faça tudo na interface roteada.
>
> Coloque as placas em portas de CPU diferente.
>
> Prós, funciona e tem um custo acessível, cada máquina dessa no mercado de usados sai uns 27k, na conta que você é um provedor
> tranquilamente está com mais de 10k clientes com valor na média de  R$ 89,90 dá para segurar, essas máquinas são duráveis e se fizer o trabalho de firmware e comprar
> de vendedor sério elas vão servir seu provedor por muito tempo.
>
> Funciona tudo com 2000 portas por cliente, e protocolos como SIP, H264, H323,GRE, jogos e vpn em geral funcionam sem maiores problemas.
>
> Contras, consumo de energia elétrica, essas máquinas devem ser setadas para "maximum performance" na bios e acredite, elas vão consumir de 2 a 3 mil reais
> por mês, o suporte é 100% seu, independente do seu esforço sempre vai acontecer de 1 pacote chegar em 1 cpu com 100% e cada vez que isso ocorre é
> um ping falhando e um cliente ligando, em hardware com ASIC isso é menos problemático.
>
> Não vejo como você rodar o que vocês precisam virtualizado, melhor colocar um MK de emergência, ou fazer "bgp announce only" no switch.
>
> O BPF Brasil Peering Forum tem uma documentação excelente.
>
>
>
>
> ________________________________
> De: gter <gter-bounces at eng.registro.br> em nome de Tiago SR via gter <gter at eng.registro.br>
> Enviado: terça-feira, 21 de dezembro de 2021 18:16
> Para: gter <gter at eng.registro.br>
> Cc: Tiago SR <listas at tiagosr.com>
> Assunto: [GTER] Hardware para softrouter com DANOS até uns 10Gbps ou 20Gbps
>
> Boa tarde,
>
> Hoje nossa borda é um EdgeRouter Pro e estamos chegando no limite dele tanto em tráfego quanto necessidade de porta 10Gbps. Funciona muito bem, a propósito, nos seus 1.4Gbps com 2 full routings e EdgeOS 2.0.9, e iria tentar levar ele até os 2Gbps, se não fosse porque em um dos upstreams vamos passar de 1Gbps por questões comerciais. Até pensei no EdgeRouter Infinity, mas está caro de mais para o nível dele. Quanto a CCR, quero evitar, vejo por feedbacks que nem as 2004 ARM agradam no BGP.
>
> Temos que trocar também a caixa de CGNAT, que era uma CCR1009 que estava reservada para isso mas nunca chegamos a implementar nessa função porque não cheguei a uma solução para CGNAT determinístico fácil de aplicar para nossa rede (endereçamentos feitos sem prever isso). E ela só tem 1 porta 10Gbps, então não resolve de qualquer forma.
>
> Roteadores de verdade, tipo Huawei ou Juniper, iriam quebrar nosso caixa. Então parece que restou montar softrouter e o DANOS parece ser a melhor opção de software atualmente para isso (e resolve nosso problema de CGNAT sem custos, com BPA). A questão é o hardware, até porque estou pensando em fazer borda e CGNAT BPA no mesmo servidor por enquanto. Acredito que deve fluir bem, né, porque BGP em si não é algo que demande muito hardware e CPU x86 roda sem sentir, e tem o DPDK que faz escalar para boas capacidades de encaminhamento... Ou estou enganado? Sem falar de ser arquiteturalmente errado, também acho, mas por enquanto é o que é viável ($$ - vamos ter que trocar BRAS também) e só precisa funcionar bem...
>
> Sobre hardware, esses servidores mais antigos, com Xeons sixcore E56xx/X56xx (Westmere), escalam até uns 10Gbps ou 20Gbps fazendo BGP e CGNAT no DANOS bare metal? Penso em pegar um IBM x3650 M3 (porque já temos um, gosto dele, e facilitaria questão de peças), um Dell R710 ou um HP DL380 G7 com processadores assim, uns 32GB de RAM e 2 Intel X520 D2. Quase sempre que se fala em softrouter, parece que a conversa já começa com no mínimo Xeons E5...
>
> E se eu pegar o servidor desse que já temos aqui rodando Proxmox com algumas aplicações virtualizadas, uso de CPU abaixo de 10%, instalar mais RAM e colocar o DANOS em uma VM com as X520 D2 em PCI Passthrough pra ele? O que isso daria de desempenho com DPDK, teriam uma noção para me informar, talvez em comparação a um bare metal? Nem cogito implementar assim, o questionamento veio do pessoal que segura a verba, mas dependendo do desempenho, poderia ser um backup para uma emergência...
>
> Agradeço desde já pelas contribuições!
> --
> gter list    https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Feng.registro.br%2Fmailman%2Flistinfo%2Fgter&data=04%7C01%7C%7C22529becff494994d68f08d9c547fe95%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637757735279746078%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=hs%2FZngOYxnAydIUJA5GJhsZVtxRftBtbWktZlSKv%2Bc8%3D&reserved=0
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter


More information about the gter mailing list