Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014 Balanceamento de Carga em SDN Provido por Comutadores Estocásticos de Prateleira Alextian Liberato1 2 , Diego Mafioletti1 , Eros Spalla1 , Magnos Martinello1 , Rodolfo Villaça1 1 Programa de Pós-Graduação em Informática (PPGI) Universidade Federal do Espı́rito Santo (UFES) – Vitória, ES 2 Grupo de Pesquisa em Informática Aplicada – Departamento de Informática Instituto Federal do Espı́rito Santo (IFES) – Colatina, ES [email protected], [email protected], [email protected] [email protected], [email protected] Abstract. The network load balancing allows you to share traffic in order to reduce congestion the links. Existing products make use of routing algorithms that have not been designed for local networks or require costly proprietary solutions. Our proposal presented in this paper reveals an open platform that uses low-cost hardware and SDN technology to make the stochastic load balancing. The results show a very satisfactory performance. Resumo. O balanceamento de carga em rede permite dividir o tráfego de modo a reduzir o congestionamento nos enlaces. Os produtos existentes fazem uso de algoritmos de roteamento que não foram projetados para redes locais ou exigem soluções proprietárias de alto custo. A proposta apresentada nesse artigo revela uma plataforma aberta que utiliza hardware de baixo custo e a tecnologia SDN para realizar o balanceamento de carga estocástico. Os resultados apresentam um desempenho bastante satisfatório. 1. Introdução As Redes Definidas por Software (SDN - Software-Defined Networking) surgiram como um promissor conceito para o projeto de novas arquiteturas para a Internet. SDN é uma proposta baseada na separação dos planos de dados e de controle, em uma interface uniforme independente de fornecedor para o mecanismo de encaminhamento (ex: (OF) [McKeown et al. 2008]) e em um plano de controle logicamente centralizado. O OpenFlow é um padrão aberto que permite a programação dos elementos ativos da rede, tais como roteadores, switches ou pontos de acesso sem fio. Trata-se de uma proposta pragmática com grande potencial para suportar o grau de programabilidade que as SDN necessitam. Os equipamentos habilitados com Openflow têm sido projetados pelos fabricantes como um sistema fechado no qual o projetista de redes torna-se dependente da implementação do fabricante (e.g. RouterBoard Mikrotik). Se a inovação do projetista requer modificação no plano de dados, por exemplo, encaminhar para uma porta com uma certa probabilidade, então o equipamento não permite tal operação e impede sua validação experimental. Esses fatos limitam significativamente o potencial de inovação 13 Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014 na arquitetura SDN, tanto pela restrição imposta pelo modelo de encaminhamento quanto pelo sistema fechado pelo fabricante. O balanceamento de carga em uma rede permite o encaminhamento do tráfego por diversos caminhos. No entanto, as soluções proprietárias que implementam o balanceamento de carga na rede apoiam-se em protocolos de roteamento (OSPF ou EIGRP) para equilibrar a carga de tráfego entre os switches da rede, o que gera uma enorme sobrecarga de configuração, além de exigir equipamentos com custos elevados. Nossa proposta neste trabalho, é utilizar equipamentos não especializados de prateleira para demonstrar a viabilidade de habilitar o protocolo Openflow na sua versão mais recente, Openflow 1.3, permitindo assim que novas caracterı́sticas possam ser incorporadas pelo projetista de rede. Como prova de conceito, projetamos um comutador estocástico com desempenho similar às plataformas fechadas, em um cenário flexı́vel utilizando nossa proposta de plataforma aberta. A plataforma foi projetada sobre o sistema operacional OpenWRT [OpenWRT 2014] com Open vSwitch (OvS) [Subramanian et al. 2009] compilado para os equipamentos RouterBoard RB2011UASIN, RB433 e RB450G. O restante deste artigo está organizado da seguinte forma: na Seção 2 são apresentados os conceitos de tabela de grupos no OF 1.3 e a plataforma utilizada; na Seção 3 são apresentado os resultados experimentais; na Seção 4 é apresentada a conclusão e os trabalhos futuros. 2. Plataforma Aberta em Equipamentos Reais O projeto da plataforma aberta iniciou-se pela substituição do sistema operacional originalmente RouterOS que suporta apenas OF 1.0 (Plataforma Fechada) pelo OpenWRT (Plataforma Aberta) que permite a instalação dos switches virtuais (OvS e Softswitch13 [CPqD 2014]) que suportam OF 1.3. Na arquitetura do OpenFlow, o switch executa apenas a lógica de encaminhamento. A lógica de controle é executada no controlador e a comunicação entre elas se dá através do protocolo OpenFlow. Na recente versão do Openflow 1.3, uma determinada entrada em uma tabela de fluxo pode apontar para um grupo constituı́do por entradas previamente definidas. O objetivo é estender o comportamento do switch para suportar diferentes métodos de encaminhamento, por exemplo tipos de grupos [ONF 2012]. Figura 1. Recurso de tabela de grupos OF 1.3 – método select Na Figura 1 ilustramos o método Select, como um tipo de grupo com sua própria semântica. Note que o valor do peso (“Weight”) que é atribuı́do ao fluxo determina a 14 Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014 probabilidade de execução da respectiva ação. Existem ainda outros três métodos, que não serão discuticos nesse artigo: All que executa todos os buckets do grupo; Indirect que executa o bucket definido no grupo; e o Fast Failover que executa o primeiro bucket “vivo”. O ambiente experimental utilizado está descrito na Figura 2, sendo dois RB2011UAS-IN (S1 e S5), dois RB433 (S2 e S4) e um RB450G (S3). Para realizar um balanceamento de carga, modificamos o software do OvS para permitir o encaminhamento dos pacotes de forma estocástica, alterando a função xlate select group no arquivo “ofproto-dpif-xlate.c”, de modo a gerar um número aleatório que representa a probabilidade de escolha de um bucket. Essa probabilidade é usada para selecionar uma porta de saı́da. Já o Softswitch13 não precisou ser alterado, pois já possuı́a o algoritmo weighted round-robin (WRR) implementado na função select from select group. Figura 2. Topologia experimental 3. Balanceamento Estocástico Avaliamos o balanceamento estocástico através da transmissão de dados (TCP) com a ferramenta Iperf 3.0.3 entre h1 e h2 (Figura 2), inserindo no S1 a seguinte regra: 50% de todo tráfego de h1 para h2 sairá pela porta 4, devido ao enlace ser Gigabit Ethernet, 30% sairá pela porta 3, menor caminho via Fast Ethernet, o restante 20% sairá pela porta 2. (a) Balanceamento estocástico no OvS (b) Balanceamento estocástico no Softswitch13 Figura 3. Balanceamento estocástico utilizando semântica select – OF 1.3 15 Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014 A Figura 3(a) apresenta o gráfico do OvS com a utilização das portas no S1 durante o tempo de 60 segundos. Em virtude da aleatoriedade, a utilização das portas varia consideravelmente. No entanto, na média, a escolha do bucket é respeitada conforme os pesos atribuı́dos. No Softswitch13 (Figura 3(b)) o gráfico é uniforme, caracterı́stica do algoritmo WRR presente na função de seleção do bucket, em contrapartida o desempenho médio (Mbits) é inferior ao OvS. Aferimos que no OvS sem o balanceador estocástico apresentou valor médio de 122,48 Mbits/seg, contra 44 Mbits/seg com o select, e no Softswitch13 o valor médio foi de 32,54 Mbits/seg contra 24,89 Mbits/seg com o select. 4. Conclusões e Trabalhos Futuros A proposta do trabalho foi utilizar equipamentos não especializados de prateleira para demonstrar a viabilidade de habilitar o protocolo Openflow na sua versão mais recente Openflow 1.3. A ideia é permitir que novas caracterı́sticas possam ser incorporadas livremente pelos projetistas de rede e customizáveis. Como prova de conceito, projetamos um comutador estocástico com desempenho similar às plataformas fechadas. Os resultados obtidos demonstram que existe um grande potencial no uso dos recursos disponı́veis no switches OpenFlow 1.3. A operação de Select pode ser usada dinamicamente ajustando os pesos, e também tomar decisões em nı́vel de plano de dados sem a ajuda do controlador (de forma pró-ativa). A diferença de desempenho, principalmente no OvS, foi causada pela limitação de processamento do hardware utilizado. Como trabalhos futuros pretendemos modificar o OvS para usar o select em modo Kernel. Agradecimentos: aos parceiros Christian Esteve Rothenberg (UNICAMP) e Eder Leão Fernandes (CPqD) pelas orientações com o Softswitch13 e ao professor Ali Mohammad Salahuddin (Western Michigan University) no OvS. Referências CPqD, F. (2014). Openflow 1.3 software switch. Website. https://github.com/ CPqD/ofsoftswitch13. McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G. M., Peterson, L. L., Rexford, J., Shenker, S., and Turner, J. S. (2008). Openflow: enabling innovation in campus networks. Computer Communication Review, 38(2):69–74. ONF, O. N. F. (2012). Openflow switch specification version 1.3.0 (wire protocol 0x04). Website. https://www.opennetworking.org/images/stories/ downloads/sdn-resources/onf-specifications/openflow/ openflow-spec-v1.3.0.pdf. OpenWRT (2014). Openwrt. Website. "http://www.openwrt.org". Subramanian, L., Leland, W. E., and Mahajan, R., editors (2009). Eight ACM Workshop on Hot Topics in Networks (HotNets-VIII), HOTNETS ’09, New York City, NY, USA, October 22-23, 2009. ACM SIGCOMM. 16