Balanceamento de tráfego em LANS ethernet usando uma abordagem SDN/Openflow

De MediaWiki do Campus São José
Revisão de 15h14min de 18 de junho de 2013 por Kalvim (discussão | contribs) (→‎Cronograma)
Ir para navegação Ir para pesquisar

Resumo Estendido

Introdução

A necessidade de fazer com que dados fossem compartilhados remotamente, fez com que computadores fossem interconectados, criando assim as redes de computadores. As redes locais são redes privadas formadas por computadores interconectados por meio de um barramento (Ethernet) ou conectados entre eles formando um anel (Token Ring). Portanto, a tecnologia predominante nas redes locais é a Ethernet, na qual assume uma topologia em forma de barramento. Nesse modelo, o sinal de transmissão é jogado no barramento, que é um meio físico como um fio de cobre formando um único domínio de colisão, dessa forma ficando disponível para todos os computadores. No entanto, apenas o computador que possui o adaptador de rede com o endereço físico contido no cabeçalho do quadro (PDU de enlace) irá extrair o datagrama e entregar à camada de rede. Porém, essa estrutura se torna saturada com o aumento de hosts e um tráfego de rede muito alto, tornando assim, o acesso ao meio de comunicação muito disputado, gerando muitas colisões. Portanto, com a evolução das redes e a necessidade de topologias mais flexíveis e escaláveis, foram desenvolvidos equipamentos como bridges e switches. Estes equipamentos comutadores eliminam o domínio único de colisão isolando suas portas, formando assim, um domínio de colisão para cada interface. Para isso, o quadro recebido será processado pelo equipamento e encaminhado à porta na qual o host de destino se encontra, conforme sua tabela de comutação que é formada de forma automática e dinâmica. Então, se um endereço de destino não consta na tabela de comutação, o Switch repassa o quadro em todas as suas interfaces, dessa forma, para cada quadro recebido será armazenado na tabela de comutação a porta em que o endereço físico do remetente se encontra.

Então com a evolução das redes locais os equipamentos comutadores se tornaram muito importantes para desempenho da rede, pois eles são o centro da rede local. Portanto em redes de médio a grande porte, se faz necessário a utilização de muitos equipamentos que atuam na camada de enlace. Nestes casos pretendem-se organizar estes equipamentos em diferentes topologias, afim de ter caminhos reduntantes para evitar falhas, expandir a rede, ter auta disponibilidade, realizar isolamentos na rede e fazendo tudo isso sempre com auto desempenho. Porém ao formar caminhos redundantes irá formar loops entre Switches, que são indesejados pois geram problemas como congestionamento e o travamento da rede. Estes problemas ocorrem porque os switches criam um único domínio broadcast para interligar as redes. Então encaminhamentos em broadcast irão percorrer os loops infinitamente.

Para evitar o problema de caminhos redundantes entre Switches, utiliza-se protocolos do tipo Spanning Tree (STP), que atuam controlando os switches determinando a porta a ser desabilitada e assim evitar loops. Para isso o protocolo STP envia BPDUs (Bridge PDUs) entre os switches, que de acordo com o Bridge ID escolhe quem será o Root, determina uma topologia de acordo com o ID dos demais e o custo dos enlaces, de modo que não formem nenhum loop entre eles. Apesar da utilização destes protocolos resolver o problema de quadros circulando indefinidamente pelos switches, para resolver o problema acabam diminuindo a otimização dos recursos físicos.

Uma abordagem interessante para tratar estes tipos cenários é o SDN (Software-Defined Networking). Com SDN é possível criar um controlador para equipamentos de rede e programar todo o seu funcionamento, para isso, se abstrai a camada de hardware e faz o controle da rede de forma centralizada na camada lógica de controle do SDN. A camada de controle fala diretamente com as camadas de aplicação e de hardware. Por esse motivo, pode-se criar ambientes de rede de forma customizada, atendendo especificamente a necessidade do administrador de rede. Tendo essa possibilidade de se programar o funcionamento da rede na camada de controle, pode-se criar regras de encaminhamento para que o fluxo de dados assuma algum determinado caminho, afim de realizar balanceamento de tráfego e evitar o problema de loops em caminhos redundantes.

O protocolo mais utilizado para implementar SDN é o Openflow. Ele foi o primeiro padrão de interface de comunicação entre as camadas de controle e de hardware. Openflow usa padrões nos fluxos de pacotes para identificar o tráfego de rede de acordo com regras pré definidas estaticamente ou dinamicamente programadas pelo software de controle do SDN. Então ele permite que o administrador defina como os determinados fluxos de pacotes devem ser encaminhados pelos equipamentos de rede. Dessa maneira, pode-se realizar balanceamento de tráfego e tratar o problema com enlaces redundantes de uma só vez. Para isso, precisa-se identificar os determinados fluxos de pacotes e assumir diferentes caminhos pelos Switches, de forma a utilizar todos os recursos disponíveis e evitar encaminhamentos cíclicos.

Motivação

Atualmente, com o crescimento das redes locais, necessita-se de um controle da rede muito mais eficaz e seguro. Portanto, nos cenários de médio a grande porte, a realização de balanceamento de tráfego é imprescindível. Dessa forma, tirando os gargalos da rede e aproveitando os recursos físicos, com certeza resulta em um impacto muito positivo para o desempenho da rede e consequentemente na produtividade da instituição.

De fato, o que nos impulsiona a tratar estas questões é ter acesso a um protocolo que nos possibilita programar o funcionamento dos Switches. Sendo que, sem essa possibilidade estamos limitados aos mecanismos disponibilizados pelos fabricantes dos equipamentos, não havendo muito poder de controle e customização. Então para tratar estas questões com Openflow/SDN, possibilita controlar a rede para fazer o devido balanceamento de tráfego e otimização de recursos físicos.

Objetivo

O objetivo deste trabalho é desenvolver um controlador Openflow capaz de programar os Switches de uma rede local de forma a balancear o tráfego entre seus caminhos redundantes.

Cronograma

Etapas Mês
Maio/2013 Junho/2013 Julho/2013 Agosto/2013 Setembro/2013
Revisão Bibliográfica x x x
Escrita do Documento x x x

Bibliografia