Etherblade.net - projeto de código-fonte aberto para criar um encapsulador de tráfego Ethernet no FPGA (parte um)

imagem

Quero fazer uma reserva imediata de que este artigo não apenas implica leitura passiva, mas também convida todos a participar do desenvolvimento. Programadores de sistemas, desenvolvedores de hardware, engenheiros de rede e DevOps são bem-vindos.

Como o projeto está no cruzamento da tecnologia de rede e do design de hardware, vamos dividir nossa conversa em três partes - será mais fácil adaptar as informações a um público específico de leitores.

Defina a primeira parte como introdutória. Aqui, falaremos sobre o encapsulador de tráfego Ethernet de hardware criado no FPGA, discutiremos suas principais funções, recursos arquitetônicos e vantagens em comparação com as soluções de software.

A segunda parte, vamos chamá-la de "rede", será mais interessante para os desenvolvedores de hardware que desejam conhecer melhor as tecnologias de rede. Será dedicado ao papel que “Etherblade.net” pode assumir nas redes de operadoras de telecomunicações. Também falaremos sobre o conceito de SDN (rede definida por software) e como o hardware de rede aberta pode complementar e até competir com soluções de grandes fornecedores, como Cisco e Juniper.

E a terceira parte é o "hardware", que tem mais probabilidade de interessar aos engenheiros de rede que desejam participar do design de hardware e começar a desenvolver dispositivos de rede por conta própria. Nele, examinaremos mais de perto o fluxo de trabalho do FPGA, a “união de software e hardware”, placas do FPGA, ambientes de desenvolvimento e outros problemas que mostram como conectar-se para participar do projeto EtherBlade.net.
Então vamos lá!

Encapsulamento Ethernet


O objetivo do projeto Etherblade.net é projetar e construir um dispositivo que possa, no nível do hardware, emular um canal Ethernet L2 sobre um ambiente L3. Um caso de uso simples é conectar servidores e estações de trabalho diferentes entre si da mesma maneira como se houvesse um cabo Ethernet físico comum entre eles.

Na Internet, você pode encontrar termos diferentes para esta tecnologia. Os mais comuns são pseudowire, evpn, L2VPN, e-line / e-tree / e-lan , etc. Bem, um grande número de termos derivativos é diferente para diferentes tipos de redes de transporte através das quais um canal Ethernet virtual é instalado.

Assim, por exemplo, a emulação Ethernet através de uma rede IP é fornecida pelas seguintes tecnologias - EoIP, VxLAN, OTV ;
emulação Ethernet na rede MPLS - tecnologias VPLS e EoMPLS ;
A emulação Ethernet sobre Ethernet é uma tarefa das tecnologias MetroEthernet , PBB-802.1ah , etc.

O trabalho dos profissionais de marketing é apresentar termos, mas se os projetistas de ferro inventassem um dispositivo separado para cada termo ou abreviação, eles ficariam loucos. Portanto, o objetivo dos desenvolvedores de hardware e nosso objetivo é desenvolver um dispositivo universal - um encapsulador que pode encapsular quadros ethernet em qualquer protocolo da rede de transporte, seja IP / IPv6, MPLS, Ethernet , etc.

E esse encapsulador já foi implementado e está sendo desenvolvido em um projeto chamado "Etherblade-Version1 - encapsulator core".

Para uma melhor compreensão, proponho considerar uma figura explicando esse princípio de encapsulamento:
imagem

Vemos que os encapsuladores estão localizados em torno do perímetro da rede de transporte da transportadora. Cada encapsulador possui duas interfaces (L2 - porta de tronco, "olhando" em direção aos clientes, e L3-interface, que "olha" em direção à rede de transporte) .

Vamos dar uma olhada no encapsulador mais à direita. Os clientes estão conectados a ele, onde o tráfego de cada cliente "vai" em uma vlan-e separada. O dispositivo deve ser capaz de criar canais virtuais para clientes individuais ou, em termos científicos, ser capaz de encapsular o tráfego Ethernet para diferentes vlan s com diferentes cabeçalhos L3. A figura mostra como um encapsulador emula quatro canais virtuais para quatro clientes:

  • vlan-11 (verde) - Ethernet sobre IP (IPv4 + GRE) ;
  • vlan-12 (roxo) - Ethernet sobre IP (IPv4 + UDP) ;
  • vlan-13 (azul) - Ethernet sobre MPLS ;
  • vlan-14 (vermelho) - Ethernet sobre IP (IPv6 + UDP) ;

Então, com a funcionalidade resolvida, agora vamos falar sobre as opções para implementar o encapsulador.

Porquê FPGA?


O FPGA é, de fato, um chip que substitui um ferro de solda e uma caixa de chips (elementos lógicos, chips de memória etc.) . Ou seja, com o FPGA, somos capazes de criar hardware para nossas necessidades e tarefas.
imagem

Mas, além do “conjunto de elementos e ferro de soldar”, também é necessário ter diagramas de circuitos. Portanto, o repositório de tais esquemas dos quais você pode "soldar" o encapsulador dentro do FPGA e obter um dispositivo de trabalho é o projeto "Etherblade.net". Outra vantagem importante do FPGA pode ser chamada de fato de que seus elementos podem ser "soldados novamente" a novos circuitos, mas os próprios circuitos, graças ao repositório, não precisam ser criados e verificados "do zero" para implementar novas funcionalidades.

E, no entanto, por que FPGA, e não uma solução de software?

Obviamente, se a pergunta fosse feita sobre o desenvolvimento do sistema do zero, pegar um computador pronto e escrever um programa seria mais fácil e rápido do que o desenvolvimento de um dispositivo de hardware especializado.

Para simplicidade e velocidade de desenvolvimento, no entanto, é necessário pagar um desempenho pior, e essa é a principal desvantagem da solução de software. O fato é que o software é um programa de computador que possui um tempo de execução variável devido a ramificações e loops. Adicionamos aqui interrupções constantes do microprocessador pelo sistema operacional e recirculação de tráfego no subsistema DMA.

Em uma implementação de hardware, nosso encapsulador é, de fato, um buffer de "armazenamento e encaminhamento" de fluxo direto equipado com memória adicional na qual os cabeçalhos são armazenados. Devido à sua simplicidade e linearidade, a solução de hardware processa o tráfego a uma velocidade igual à largura de banda do canal Ethernet com atrasos mínimos e instabilidade estável. Como bônus, adicionamos aqui soluções de FPGA com menor consumo de energia e menor custo em comparação com os sistemas de microprocessador.

Antes de passar para o próximo tópico, deixe-me compartilhar com você este link para um vídeo que demonstra um encapsulador em ação. O vídeo é acompanhado por legendas em inglês e, se necessário, o “Youtube” tem a opção de ativar a tradução automática para o russo.

Na parte final do artigo, gostaria de falar sobre alguns blocos que também estão sendo desenvolvidos como parte do projeto Etherblade.net.

Desenvolvimento do receptor “Etherblade-Version2 - decapsulator core”


Você deve ter notado que no diagrama de rede anterior (que mostra os encapsuladores conectados à rede do provedor), há uma pequena observação indicando que o MTU na rede deve ser superior a 1560. Para grandes operadoras de telecomunicações, isso não é um problema, pois elas trabalhe em canais de fibra óptica "escuros" com jumbo-frames no hardware ativado. Nesse caso, os pacotes Ethernet encapsulados com um tamanho máximo de 1.500 bytes e um cabeçalho L3 adicional podem "caminhar" livremente por essas redes.

Mas e se gostaríamos de usar a Internet comum com encapsuladores conectados, por exemplo, a modems DSL ou 4G domésticos como uma rede de transporte? Nesse caso, a parte receptora dos encapsuladores deve poder coletar quadros Ethernet fragmentados.

No momento, nem a Cisco nem a Juniper oferecem essa funcionalidade em seus dispositivos, e isso é compreensível, porque seus equipamentos estão focados em grandes operadoras de telecomunicações. O projeto EtherBlade.net foi inicialmente direcionado a clientes de vários calibres e já possui em seu arsenal um método desenvolvido de montagem de fragmentos "hardware", que permite emular canais de qualquer lugar Ethernet com qualidade de serviço de nível de telecomunicações. Para documentação detalhada e códigos-fonte, bem-vindo ao https://etherblade.net .

10 gigabits


Atualmente, o trabalho ativo também está em andamento em uma versão de dez gigabytes do encapsulador e portando-o em hardware, em particular, para o conselho da equipe de P&D geral de São Petersburgo, mostrado no início do artigo Intel Cyclone 10GX.

Além da funcionalidade descrita neste artigo, os encapsuladores de dez gigabits podem ser usados ​​nas redes das operadoras de telecomunicações para redirecionar o tráfego "interessante" para os centros de compensação de DDoS, o servidor Yarovoy etc. Leia mais sobre isso no próximo artigo sobre o conceito de SDN (rede definida por software) e o uso do Etherblade.net em grandes redes - fique atento.

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


All Articles