Investigação sobre Tolerância a Falhas em Controladores SDN Distribuídos e Implementação de um Algoritmo de Difusão Atômica Hierárquico e Sem líder - Ruchel, Lucas Vinicius (2022)
The growth of the Internet in recent years has meant that an immense amount of data is produced every day. The network infrastructure, due to the growth of the Internet, had to increase both in capacity and in the number of devices. As a result, new paradigms have emerged to maximize the management and control of the network infrastructure. Among the existing paradigms, Software Defined Networks (SDN) allow networks to be flexible through the separation of the data plane and the control plane. However, the control plane distributed across multiple controllers presents challenges related to being able to tolerate faults and maintaining network rules and policies consistently across multiple controllers. The objective of this master’s thesis is to extensively evaluate the distributed SDN control plane and the algorithms to maintain consistency that allow achieving high performance. As a result, this work presents two contributions. The first contribution carries out an investigation of the fault tolerance and network consistency mechanisms in the main distributed controllers found in the literature, that is, the ONOS and Opendaylight (ODL) controllers. The controllers were investigated and evaluated in relation to the different algorithms used to tolerate failures and maintain consistency in the data plane and in the control plane. The results obtained showed how each of the controllers dealt with the different types of failures, as well as performance metrics between them. The second contribution presents the design and evaluation of a leaderless hierarchical atomic broadcast algorithm (called AnyABCast). It is important to note that both ONOS and ODL use a consensus approach in which there is a leader using the consensus algorithm Raft. The implemented algorithm aims to distribute the cost of ordering network rules and policies among all processes. The experiments were performed in a simulated environment and on a local network. On the local network, the algorithm was implemented with the support of the distributed framework Akka.io and compared with an implementation of the Raft algorithm in Apache Ratis. The experiments showed that in the simulated environment AnyABCast presents superior performance both with and without faults. In the real environment, AnyABCast presented superior performance only in the flawless approach.