Encapsulador Etherblade.net e Substituição de Importação para Componentes de Rede (Parte Dois)

imagem

No primeiro artigo, eu queria mostrar que o desenvolvimento de FPGA é uma tarefa interessante, e a implementação de um encapsulador de fluxo é um projeto bastante simples que pode funcionar como um projeto acadêmico para estudantes seniores ou estudantes de pós-graduação.

Embora valha a pena fazer o design de hardware apenas por diversão, neste artigo quero prestar atenção ao valor prático desta lição. Em particular, nossa conversa continuará sobre como criar uma infraestrutura de rede para operadoras de telecomunicações usando o encapsulador Etherblade.net implementado no FPGA.

Este texto é uma visão sobre tecnologias de rede e, para encaixar um tópico tão extenso na estrutura de um artigo, decidi escrevê-lo no contexto de algum plano de ação ou, se desejar, a resposta para a seguinte pergunta: “Como substituir equipamentos usando FPGA e código aberto da maneira mais eficiente possível da Cisco e Juniper ".
Então, vamos começar.

O conceito de SDN (rede definida por software) contra grandes fornecedores


Tradicionalmente, há décadas, os equipamentos de rede são fabricados por gigantes como Cisco e Juniper. Hoje, as grandes operadoras de rede que desenvolvem seus próprios equipamentos de rede estão se tornando a nova norma. O objetivo que eles desejam alcançar é a independência dos fornecedores de componentes e um melhor controle sobre a infraestrutura.

Na Rússia, por razões políticas, essa abordagem associada à substituição de produtos de terceiros por sistemas com uma porcentagem maior de componentes intelectuais desenvolvidos localmente (blocos de propriedade intelectual ou núcleos de IP) é geralmente chamada de substituição de importação.

Deve-se entender que as grandes empresas possuem uma enorme quantidade de recursos de engenharia e dependem de um modelo de desenvolvimento verticalmente integrado. E os fabricantes relativamente pequenos?

A falta de recursos pode ser compensada pelo código aberto. E a falta de integração vertical com a distribuição correta de subtarefas entre players menores.

A arquitetura dos dispositivos de rede tradicionalmente produzidos por grandes fornecedores é facilmente segmentada. Para paralelizar o processo e destacar subtarefas individuais, o conceito de SDN (rede definida por software) sugere segmentar a arquitetura dos dispositivos de rede em níveis, em particular, separar o nível de gerenciamento de rede (plano de controle) do nível de dispositivos de transferência de dados (plano de dados).

Observo que hoje o SDN se tornou uma poderosa ferramenta de marketing para grandes fornecedores que o apresentam como um conjunto de "novos recursos" úteis para o usuário final. O engraçado é que historicamente, como já observei, o conceito de SDN foi criado apenas em contraste com os gigantes da indústria.

Portanto, a SDN oferece um modelo de arquitetura de um roteador de rede de forma desmontada. Nossa tarefa é identificar o componente de interesse para nós nesse modelo e começar a desenvolvê-lo.

"Vamos começar pequenos" - encapsulamento em roteadores e sobreposição SDN


É natural resolver todas as necessidades do mundo de uma só vez. Assim, ao criar sistemas grandes, faz sentido começar pequeno e tornar o sistema extensível, para que funcionalidades adicionais possam ser introduzidas integrando blocos adicionais ou modificando os existentes. Com as palavras "começar pequeno", quero dizer a seleção de alguma função de rede completa suficiente para construir um sistema em funcionamento.

No projeto Etherblade.net, como tais funções, foi decidido implementar um mecanismo para encapsular o tráfego de rede.

Encapsulamento em redes é uma coisa comum. Vamos "desagregar" o roteador e considerar como seus componentes correspondem aos componentes do modelo SDN e determinar qual lugar o encapsulamento ocupa nos dois modelos.

Por exemplo, pegue um dos roteadores mostrados na figura no início do artigo e o descreva na figura abaixo - mas já em um formato "preparado".
Na mesma figura, contrastamos o roteador com um “modelo SDN de sobreposição” alternativo que fornece funcionalidade semelhante.

imagem

O nível superior (verde) é o plano de controle / orquestração SDN. Esse é o cérebro do sistema, de fato o microprocessador no qual o software de rede de controle é executado. Nos roteadores tradicionais, esse componente é incorporado. No SDN, essa funcionalidade geralmente é transferida para um "controlador de orquestração" externo - um computador que serve muitos dispositivos de rede.

Caminho de encaminhamento de nível médio (azul). O principal papel desse nível é o fornecimento de transporte de rede (comutação / roteamento de tráfego). Nos roteadores tradicionais - essa funcionalidade é implementada como uma unidade de comutação interna. No nosso modelo “SDN-overlay”, o papel desse componente de “comutação” pode ser completamente reduzido ao conectar diretamente os dispositivos de borda (caixa branca) à rede de transporte.

Nível inferior (laranja) - borda / acesso. Nesses componentes, todas as manipulações com o tráfego de rede, como encapsulamento e outras conversões de protocolo, ocorrem. Este nível é caracterizado por alta velocidade de processamento e funcionalidade determinística - um ótimo local para ASIC / FPGA. Nos roteadores tradicionais, essa funcionalidade é implementada em módulos lineares (placas de linha); no SDN, esses são os chamados "dispositivos de caixa branca".

Assim, resumindo o exposto, podemos dizer que o Etherblade.net é essencialmente um projeto para desenvolver dispositivos de "caixa branca" para "SDN-overlay".

“Encaminhar para data centers !!!” - encapsulador como uma função de NFV (virtualização de funções de rede)


Tendo descoberto como o sistema que estamos desenvolvendo parece estruturalmente, faz sentido falar sobre as opções para sua incorporação física.

imagem

À esquerda, há um encapsulador Etherblade como um dispositivo CPE separado (versão do campus). À direita está o encapsulador Etherblade implementado dentro do servidor (opção para data centers).

É interessante que, ao implementar um encapsulador em uma placa com uma interface PCIe e "ocultar" essa placa dentro do servidor, podemos realmente criar a ilusão de virtualizar essa função de rede. Essa abordagem é chamada NFV - virtualização de funções de rede.

O conceito de NFV envolve livrar-se de dispositivos de rede externos, como firewalls, balanceadores de carga, etc., devido à virtualização de suas funções dentro dos servidores. A implementação do encapsulador como uma função NFV nos permite livrar-nos dos roteadores físicos "de ponta".

Assim, o NFV está na moda e é conveniente. A dificuldade é que, em termos de design de hardware, restringir o PCIe não é tão fácil quanto a Ethernet. Se ethernet é um protocolo serial serial, o PCIe é um protocolo transacional complexo com muitos estados finais (essencialmente uma pilha de rede implementada em hardware). Não esqueça que o sistema operacional requer os drivers apropriados para funcionar com o dispositivo PCIe.

Uma das soluções mais elegantes para o problema é o uso de placas FPGA, semelhante à mostrada no início do artigo. A figura a seguir mostra a arquitetura da placa e as duas opções para implementar o encapsulador nela.

imagem

Como você pode ver, essa placa FPGA possui adaptadores de rede “externos”, que são essencialmente conversores entre ethernet e PCIe. Assim, a implementação do encapsulador em tais dispositivos torna possível obter o NFV "pronto para uso" - sem problemas desnecessários com PCIe e drivers de gravação.

De “privado a geral” - criando um repositório aberto de núcleos IP de rede


Não se pode discordar do fato de que hoje existem muitos ASICs de rede especializados (por exemplo, da Broadcom) que podem traduzir qualquer projeto desse tipo em outra história da série “Gostando de Trabalhar com FPGA”. O ceticismo é apropriado nesse caso, no entanto, quero lembrá-lo de que o projeto Etherblade.net não se limita à criação de um dispositivo de rede separado. O principal objetivo do Etherblade.net é criar um repositório aberto de núcleos IP parametrizados e documentados.

Este repositório pode se tornar uma base eficaz para a criação de toda uma gama de dispositivos de rede (incluindo os mais exóticos), que por sua vez podem ser implementados no FPGA e na forma de ASIC.

Sobre isso - eu termino. No próximo artigo, iremos diretamente ao design de hardware, mas, por enquanto, convido você a se familiarizar com o projeto mais perto do etherblade.net .

Source: https://habr.com/ru/post/pt484108/


All Articles