Publicações‎ > ‎Pesquisa‎ > ‎

HestiaNet: Sistema Operacional para Dispositivos OpenFlow

Introdução

A Internet é constituída por vários equipamentos de comutação (roteadores e switches). Esses equipamentos foram obrigados a aumentar o seu desempenho para encaminhar o tráfego que chega a suas portas. O legado de 40 anos de Internet criou dispositivos de comutação complexos e lentos.

Assim como no mundo dos computadores, os sistemas proprietários dos fabricantes de equipamento forçaram que os usuários migrassem das plataformas fechadas de mainframe para plataformas abertas como Unix e Windows (apesar de ser um software comercial, o Windows tem interface aberta, possibilitando que qualquer programador desenvolva seu próprio programa.

O HestiaNet se propõe a ser o sistema de libertação dos projetistas de rede. Um sistema aberto que possibilite o desenvolvimento de novas funcionalidades para suas necessidades. Poderíamos dizer que é uma plataforma baseada no paradigma SDN (Software Defined Networks).

O projeto HestiaNet pretende ser o complemento do projeto HermesNet. No entanto, o HestiaNet se propõe a ser mais completo implementando protocolos legados, e não apenas OpenFlow. Além do OpenFlow também implementa protocolos L3 com XORP e L2 com o Xorplus.

Porém a grande contribuição é oferecer uma API padrão que permite agregar novas funcionalidades (protocolos) sem a necessidade de acesso à API dos chipsets, geralmente coberto por contratos estritos de NDA.

Sobre o Nome

Hestia é a protetora do lar e das famílias na mitologia grega. Também conhecida como Vesta na mitologia romana.  Hestia era a guardiã do fogo sagrado, presente nos templos e nos lares. Sempre fixa e imutável, Héstia simbolizava a perenidade da civilização.

HestiaNet, é uma plataforma que pretende ser a guardiã da perenidade da rede mantendo sempre operando.

Objetivos

Construção de um sistema operacional para dispositivos de rede que poderá dar várias sugestões de projetos finais e dissertações de mestrado. Depois de pronto vai oferecer uma plataforma de teste para novos módulo e proposta, que darão novas dissertações e projetos finais.

Juntamente com o HermesNet se pretende dispor de uma arquitetura completa para experimentação e avaliação da Internet do Futuro.

Características Gerais

Como se trata de um projeto acadêmico, deve-se utilizar o máximo de projetos Open Source.  Como sugestão inicial vamos utilizar o projeto Pica8, realizar um fork e continuar o desenvolvimento (os desenvolvedores do Pica8 não tem interesse em parcerias conosco).

Parcerias

Esse projeto conta com uma parceria importante do Prof. Omar Cherkaoui da Univesidade de Quebec Montreal (UQAM) no Canadá. Essa parceria envolve também o desenvolvimento conjunto de soluções para arquitetura de Internet do Futuro.

Ambiente de desenvolvimento

  • Embedded Linux Development Kit (ELDK 4.2)
  • Processador Freescale 85xx PowerQUICC III (Power PC e500)
Porocessador base dos reference design Broadcom e EZChip. Base também do Pronto switch.

Divisão trabalho:
  • UQAM: EZChip
  • UECE: Broadcom

Arquitetura

Estrutura básica:

  • SO: Linux 2.6.27
  • Boot loader: U-boot 1.3.0
  • CLI: Busybox 1.13.3
  • L3 Routing: XORP 1.6
  • L2 Forwarding: XorPlus 1.1
  • Openflow 1.0
  • Broadcom SDK 5.9.2

Layer 3: XORP (eXtensible Open Router Platform)

O projeto XORP implementa vários protocolos L3 Open Source, tanto unicast como multicast. Ele é licenciado sob licensa GPL e tem uma comunidade bastante ativa.
Unicast Routing Protocols:
  • BGP4+ (IPv4 and IPv6)
  • OSPFv2 (IPv4), OSPFv3 (IPv6)
  • RIPv2 (IPv4), RIPng (IPv6)
  • VRRPv2 (IPv4), VRRPv3 (IPv6)
  • IS-IS
Unicast Routing Protocols:
  • PIM-SM (IPv4 e IPv6)
  • IGMPv1, IGMPv2, IGMPv3 (IPv4)
  • MLDv1, MLDv2  (IPv6)

XORP Resource Locators (XRL)

O projeto XORP especifica uma interface padrão e extensível para se comunicar com o hardware. O XRL é uma Interface padrão de comunicação IPC que define a comunicação entre os protocolos e o módulo FEA (Forwarding Engine Abstraction). No projeto HestiaNet será desenvolvido um módulo FEA (Forwarding Engine Abstraction) para a plataforma Broadcom (UECE) e EZChip (UQAM).

Usar o XRL vai oferecer aos alunos a possibilidade de desenvolver protocolos e serviços sem precisar ter acesso a API sob NDA.

Layer 2: XorPlus


O XorPlus é uma extensão do projeto XORP, incluindo funções L2. Para manter a compatilidade utiliza interface XRL para se comunicar com o Hardware.
Protocolos implementados:
  • STP/RSTP
  • LACP
  • LLDP
  • SNMP
  • IPFIX

Config Protocol

Lado servidor do protocolo para configurar dispositivos que existe no HermesNet. Recebe um arquivo de configuração do HermesNet interpreta e configura o dispositivo.

Outra função é informar a configuração atual para o HermesNet para ajudar no gerenciamento. Ele deve ser flexível para permitir inclusão e alteração de novos parâmetros.
Formatos possíveis: XML, JSON, YAML

Recuperação de Falhas

Implementar mecanismo para recuperar falhas em tempos padrão SDH (abaixo 50 ms). Esse modulo deve receber uma notificação de falha pela interface XRL e executa medida corretiva, por exemplo rerotear o tráfego por outra interface. Além disso deve sinalizar ao módulo SNMP a falha.

Linguagem de desenvolvimento

  • GNU C/C++

Sistema Operaciona e Bootloader

  • Linux 2.6.27
  • Bootloader U-boot 1.3.0
  • Toolchain Linux ELDK 4.2

Licença

O sistema HestiaNet foi desenvolvido com uma licença GPLv3.

Os códigos que acessam as API dos chipset Broadcom e EZChip não podem ser disponibilizadas devido as restrições dos contratos de NDA.

Download

Utilizamos o SourceForge como repositório de código (Git), plataforma de Wiki, listas de discussão e bug track.

http://sourceforge.net/projects/hestianet

Para copiar o conteudo do repositorio git use:

git clone git://git.code.sf.net/p/hestianet/code hestianet

Para salvar sua contribuição:

git config user.name "YOUR NAME"
git config user.email "USERNAME@users.sourceforge.net"

git add .
git commit -m "Version information"
git push ssh://<user>@git.code.sf.net/p/hestianet/code <branch>

Ambiente de teste

Todos nos servidores e desktops do Larces poderão ser usados para desenvolvimento e implantar o sistema.

A ideia seria testar o firmware em um switch Pronto, porém o CNPq negou a importação devido a problemas burocráticos da universidade.

Sugestão de Projetos

Veja algumas sugestões de Projeto Final e Dissertação de Mestrado.

Material Complementar

Slides da apresentação Apresentação do HestiaNet

Colaboradores

Esse projeto conta com os seguintes colaboradores:

Cronograma

Lançamento do projeto: maio/2011
Fechamento da arquitetura: junho/2011
Primeira versão Alfa: dezembro/2011
Primeira versão beta: abril/2012
Versão RC: julho/2012

Ċ
Marcial Fernandez,
20 de jul de 2011 13:43
Comments