OpenFlow é um protocolo concebido para redes definidas por software (SDN) para gerir o tráfego e as rotas da rede. É um padrão aberto que permite aos administradores de rede controlar o fluxo de pacotes através de switches e roteadores, facilitando o gerenciamento e a otimização do tráfego de rede. O OpenFlow funciona separando o plano de controlo do plano de dados, permitindo que um controlador centralizado faça a gestão dos comutadores de rede. Este artigo explorará como o OpenFlow funciona, seus componentes e como o encaminhamento de pacotes funciona usando o protocolo OpenFlow.
Ações e switches OpenFlow
No OpenFlow, as ações são as instruções dadas aos switches para determinar como lidar com o tráfego de rede. Essas ações incluem encaminhar pacotes para uma porta específica, descartar pacotes ou modificar cabeçalhos de pacotes. Quando um pacote chega a um switch, ele é encaminhado para o controlador OpenFlow, que determina a ação apropriada a ser tomada. Depois que o controlador decide sobre um curso de ação, ele envia uma instrução ao switch para executar a ação.
Os comutadores OpenFlow são os dispositivos que executam as acções especificadas pelo controlador. São responsáveis pelo encaminhamento de pacotes com base nas instruções do controlador e pela manutenção de informações sobre a topologia da rede. Os comutadores OpenFlow são normalmente integrados em comutadores de hardware, mas também podem ser implementados em software.
Arquitetura do Openvswitch
O Openvswitch é uma implementação de código aberto do protocolo OpenFlow que fornece um switch virtual para ambientes SDN. A sua arquitectura é composta por vários componentes, incluindo o módulo kernel do Openvswitch, o daemon do Openvswitch e a base de dados do Openvswitch. O módulo kernel é responsável por interagir com o controlador OpenFlow e processar pacotes, enquanto o daemon fornece uma interface para configurar o switch. O banco de dados armazena informações de configuração e estado.
O encaminhamento de pacotes com OpenFlow envolve três etapas principais. Primeiro, quando um pacote chega a um switch, ele é encaminhado para o controlador OpenFlow. Em segundo lugar, o controlador determina a ação apropriada a ser tomada com base nas políticas de rede e envia instruções para o switch. Finalmente, o switch executa a ação, como encaminhar o pacote para uma porta específica.
Usando um Buffer ID
Quando um switch recebe um pacote, ele pode precisar armazená-lo em um buffer se não puder ser encaminhado imediatamente. Nesses casos, o switch atribui um ID de buffer ao pacote e o envia ao controlador OpenFlow para processamento posterior. O controlador decide então o que fazer com o pacote e envia instruções ao switch para encaminhá-lo ou descartá-lo.
Em conclusão, o OpenFlow é um protocolo importante para ambientes SDN que permite aos administradores de rede controlar o tráfego e as rotas da rede. Funciona separando o plano de controlo do plano de dados e permitindo que um controlador centralizado faça a gestão dos comutadores de rede. Os switches OpenFlow executam ações especificadas pelo controlador, e o Openvswitch fornece um switch virtual para ambientes SDN. O encaminhamento de pacotes com OpenFlow envolve o encaminhamento de pacotes para o controlador, determinando a ação apropriada e executando a ação. Ao usar um ID de buffer, os switches atribuem um ID aos pacotes que não podem ser encaminhados imediatamente e os enviam ao controlador para processamento posterior.
Em relação à arquitectura OpenFlow, podemos dizer que a API Westbound é utilizada para comunicar entre o controlador OpenFlow e o comutador de rede, enquanto a API Eastbound é utilizada para comunicar entre o controlador e as aplicações que utilizam os dados da rede. A API Westbound é responsável por encaminhar o tráfego do switch para o controlador para processamento, enquanto a API Eastbound é responsável por enviar o tráfego processado de volta ao switch para encaminhamento.
No contexto do OpenFlow, um coletor é um dispositivo ou software que recebe e analisa dados de rede de switches OpenFlow. Ele pode ser usado para monitorar, relatar e analisar o tráfego da rede. Um comutador, por outro lado, é um dispositivo de rede que encaminha pacotes de dados entre diferentes nós da rede. No OpenFlow, os switches são programáveis e podem ser controlados por um controlador OpenFlow por meio do protocolo OpenFlow.
Em uma rede SDN, uma tabela de fluxo é um componente-chave que reside no plano de encaminhamento do switch OpenFlow. É essencialmente um banco de dados que contém um conjunto de regras ou entradas de fluxo que especificam como os pacotes de entrada devem ser processados e encaminhados. Cada entrada de fluxo normalmente inclui campos como os endereços de origem e destino, tipo de protocolo e números de porta. Quando um pacote chega ao switch, ele é comparado com as entradas da tabela de fluxo em uma ordem seqüencial até que uma correspondência seja encontrada. Quando uma entrada de fluxo correspondente é localizada, o switch executa a(s) ação(ões) associada(s) especificada(s) na entrada de fluxo, que pode(m) incluir o encaminhamento do pacote para uma porta específica, a eliminação do pacote ou a modificação do cabeçalho do pacote. A tabela de fluxo é um componente crítico do protocolo OpenFlow que permite o controlo centralizado do fluxo de tráfego da rede.