[GTER] Construindo um EBGP com NetFPGA

Provedor Bogus provedorbogus at gmail.com
Mon Dec 19 17:02:57 -02 2011


Em 19 de dezembro de 2011 14:17, Rubens Kuhl <rubensk at gmail.com> escreveu:

> É certo que tem a capacidade de, mas requer uma quantidade de
> desenvolvimento especializado que eu só vejo em fabricantes ou em
> universidades.
>

Você acabou de delinear uma idéia simples no final do seu e-mail que vai
chegar muito perto desse objetivo.

Essa idéia de substituir TCAM não é nova e há muito material na Internet.
Os papers que andei lendo, até agora, não representam (pelo menos numa
primeira análise) algo muito complexo de ser implementado.


Uma das maneiras é fazer CIDR-cache, ou seja, ao fazer look-up de um
> IP fazer cache de todo o espaço de endereçamento no entorno que tenha
> o mesmo destino.
>
>
É um excelente começo com possibilidade de se definir a busca baseando-se
na geometria da tabela.

Temos que pensar que um ataque é algo excepcional. Não é regra que um
roteador esteja sendo atacado o tempo todo.
Pensando assim, é possível computar estatísticas pra tomar decisões na
forma de lookup quando certos parâmetros forem alcançados, evitando a sua
preocupação.



> Talvez GPU seja um caminho para wire-speed multi-gigabit enquanto se
> prepara um router FPGA 10G.
>
>
Fiz alguns experimentos simples gerando pacotes de 64 bytes com o BitFrost
numa máquina Intel com 2 CPUs e dual IOH e ela processou ~ 1732Mpps com uma
FIB de 360k rotas usando apenas as CPUs. Isso deu ~ 2,3 Gbps.

Usando GPU + CPU, mesma FIB e um algoritmo simples de lookup baseado em LC
Trie, foi possível alcançar ~ 2941 Mpps e 3,8 Gbps.

Recursos de multiqueue das placas de rede não foram utilizados e deverão
acrescentar algum ganho em ambos os casos.

Um grande gargalo foi que a CPU que transmitia o pacote não era a mesma que
fazia o cleanup dos buffers e o __ticket_spin_lock era feito por uma IRQ
diferente perdendo o cache L2 da CPU. Talvez fazer um CPU affinity resolva
esse problema e se consiga uma boa redução de ciclos de máquina.

Estes e alguns outros melhoramentos (algoritmo de lookup, hardware melhor,
ajustes de configuração), dá pra chegar bem fácil em ~ 5 Mpps a 64 bytes e
7 Gbps, usando a GPU.

É exeqüível e resolve o problema de muitos de nós que não tem dinheiro pra
dar pra Cisco porque estamos falando de uma máquina de R$ 9.000 com uma boa
GPU (480 cores).

Abraços !



More information about the gter mailing list