[GTER] RFC 2544 ou similares é. Soft-router

Henrique de Moraes Holschuh hmh at hmh.eng.br
Mon Feb 20 11:15:42 -03 2017


On Wed, Feb 15, 2017, at 17:23, Douglas Fischer wrote:
> Imagine um ASN baseado em Route-Refletor centralizado.
>  - E que esse route-reflector rodasse numa engine escrita em algo que
> suporta-se CUDA/Shared-Nothing, com Hardware PARRUDO de CUDA.

CUDA seria útil só na implementação do plano de dados (para a TCAM),
acho.  

Para o plano de controle, usando implementações decentes de RCU, e
locking, uma implementação para lá de avançada de estrutura de dados
baseada em TRIE e/ou C-TRIE, e alguns cores parrudos x86, já dá conta de
todo o plano de controle BGP.

Dá para montar a C-TRIE da tabela full em alguns segundos, e otimizar
C-TRIE é *muito* fácil.  Se tiver muita memória, quem sabe pode
particionar a TRIE/C-TRIE em várias sub-árvores usando RCU para fazer
múltiplas atualizações simultâneas em pontos diferentes da árvore (que
estejam em sub-árvores diferentes).  De qualquer forma, o uso mais
trivial de RCU já permite nunca bloquear os leitores mesmo enquanto
atualiza a árvore.

Isso criaria a FIB comprimida para a TCAM.

>  - E além de simples Route-Reflecting, ele fize-se a sumarização da
>  tabela internet para cada um do BorderRouters.

Diversas técnicas para fazer isso são patenteadas, motivo pelo qual eu
nunca tentei implementar para ver o que aconteceria. Quem sabe ainda
faça algum dia por motivos acadêmicos, mas não dá nem para colocar em
software livre sem fazer pesquisa de patentes primeiro (para não por em
risco o projeto de software livre para onde iria o código, nem o meu
próprio pescoço), e isso tira a graça de qualquer coisa. 

Procure por papers sobre compressão de tabelas de rotas, e sobre
C-TRIEs.  Tem paper sobre compressão com perda (lossy) e sem perda
(lossless), estudo da eficiência, etc.

Por sinal: compressão com perdas de FIB/RIB significa que você roteia
alguns "buracos" onde não havia nenhuma rota no lugar de descartar o
pacote, por exemplo.  Ou no caso de trânsito (onde supostamente qualquer
escolha funciona, embora existam escolhas "melhores"), você pode ignorar
alguns prefixos "mais específicos" entre as feeds marcadas como
"internet" (e mandar o pacote para um upstream diferente).

O que eu não sei se patentearam é a ideia mais do que óbvia de
compressão lossless básica: não precisa instalar na FIB nenhuma rota
mais específica que envie o pacote para o mesmo gateway que uma menos
específica, pelo menos do ponto de vista de  forwarding/routing.  Note
que tais rotas mais específicas podem ser necessárias na FIB por outros
motivos (por exemplo, para implementar contadores de tráfego por prefixo
atualizadas pelo forwarding engine).

>  - Diminuiria o tamanho da TCAM de cada BorderRouter
>  - Diminuiria o tempo de lookup na FIB

Sim.  Por isso tem caixa por aí que comprime FIB "sem dizer para
ninguém", particularmente quando é lossless (que é invisível para o
usuário): evita chamar a atenção, etc.

-- 
  Henrique Holschuh



More information about the gter mailing list