ROUTEOPS - SBRC 2016

Transcrição

ROUTEOPS - SBRC 2016
ROUTEOPS: Orquestração de Rotas Centrada na Operação
de Sistemas Autônomos
Rafael S. Guimarães12 , Magnos Martinello1 , Cristina K. Dominicini12
Dione S. A. Lima1 , Rodolfo S. Villaça1 , Moisés Renato N. Ribeiro1 ∗
1
2
Núcleo de Estudos em Redes Definidas por Software (NERDS)
Universidade Federal do Espı́rito Santo (UFES) – Vitória, ES
Instituto Federal de Educação, Ciência e Tecnologia do Espı́rito Santo (IFES)
Campus Cachoeiro/ES, Serra/ES – Brazil
[email protected], [email protected], [email protected]
[email protected], [email protected], [email protected]
Abstract. The Internet is formed by the union of different autonomous systems
(ASes), which use the BGP protocol for exchanging routing information. In each
AS, the operators make use of archaic and obscure mechanisms for defining
intra-AS and inter-AS policies. In this context, this paper presents ROUTEOPS:
an architecture centered on ASes operation for orchestrating routes. The proposal is based on the use of a SDN controller with centralized view of the AS that
assists in defining more expressive policies and facilitate their implementation.
The centralized vision is guaranteed by integrating ROUTEOPS with eBGP announcements from neighboring ASes; while control and greater expressiveness
of routing policies are achieved with OpenFlow and the centralization of iBGP
announcements (intra-AS). The proposed architecture is implemented in Mininet
and several experiments were executed as proof of concept, in order to demonstrate its feasibility and benefits.
Resumo. A Internet é formada pela união de diversos sistemas autônomos
(ASes), que utilizam o protocolo BGP para troca de informações de rotas.
Em cada AS, seus operadores fazem uso de mecanismos arcaicos e obscuros
na definição de polı́ticas intra-AS e inter-AS. Nesse contexto, este artigo apresenta a ROUTEOPS: uma arquitetura para orquestração de rotas centrada na
operação de ASes. A proposta se baseia na utilização de um controlador SDN
com visão centralizada do AS que auxilia na definição de polı́ticas mais expressivas e facilita a aplicação das mesmas. A visão centralizada é garantida
pela integração da ROUTEOPS com os anúncios eBGP provenientes dos ASes
vizinhos; o controle e a maior expressividade das polı́ticas de roteamento são
alcançados com o uso do OpenFlow e da centralização dos anúncios iBGP
(intra-AS). A arquitetura proposta é implementada no Mininet e vários experimentos foram executados como prova de conceito, visando demonstrar sua
viabilidade e as vantagens de sua utilização.
∗
Este trabalho tem recebido financiamento do projeto Horizon 2020 da União Européia para pesquisa,
desenvolvimento tecnológico e demonstração sob no. 688941 (FUTEBOL), assim como do Ministério
Brasileiro da Ciência, Tecnologia e Inovação (MCTI) por meio da RNP e do CTIC. Além disso, gostarı́amos
de agradecer o financiamento do CNPq sob no. 456143/2014-9 e 449369/20145, e da FAPES sob no.
524/2015.
1. Introdução
A Internet é formada pela união de aproximadamente 12000 Sistemas Autônomos (ASes,
Autonomous Systems) independentes. Nesta arquitetura, cada AS possui suas próprias
polı́ticas, que são aplicadas à rede mediante distribuição de prefixos IP inter-AS usando
o protocolo BGP (Border Gateway Protocol). Embora o BGP seja o principal protocolo
existente para se anunciar rotas entre os sistemas autônomos, a não existência de uma
padronização na definição de polı́ticas de cooperação entre os AS (inter-AS) dificulta a
sua operação interna (intra-AS).
As polı́ticas de roteamento inter-AS e intra-AS precisam ser frequentemente modificadas em função de informações espaciais (“de onde vêm os dados?” ou “para onde
eles vão?”), temporais (“quando?”) e dos acordos existentes entre os AS (bilaterais ou
multilaterais) [Akashi et al. 2006]. Por ser pouco flexı́vel e de difı́cil gerenciamento, o
modelo atual de cooperação faz com que os operadores de rede acabem tendo que usar
mecanismos arcaicos e obscuros, tais como a aplicação de filtros baseados somente em
prefixos IP, para modificar suas polı́ticas de divulgação. Em geral esses filtros possuem
pouca expressividade, são de difı́cil compreensão e precisam ser corretamente configurados em cada roteador envolvido na polı́tica que se quer expressar.
Por geralmente operarem um AS, os Provedores de Serviço de Internet (ISP, Internet Service Provider) são as principais entidades interessadas no desenvolvimento de
soluções que facilitem a operação de redes baseadas no protocolo BGP. Neles a arquitetura de rede geralmente é composta tanto de arranjos inter-AS, com a utilização de eBGP
(External Border Gateway Protocol), quanto de arranjos intra-AS, com a utilização do
iBGP (Internal Border Gateway Protocol). O iBGP é usado para disseminar, no interior
de um AS, informações de rotas aprendidas externamente por meio do eBGP. Além dos
problemas citados anteriormente referentes à pouca expressividade das regras e à obscuridade na definição das polı́ticas, por ser um protocolo baseado em um algoritmo de vetor
de distância a divulgação de rotas somente entre vizinhos iBGP limita a visão geral dos
roteadores. Isso afeta, por exemplo, a visualização de todas as possı́veis rotas para um determinado destino a partir de um ponto no interior do AS. Além disso, o encaminhamento
sempre é baseado no prefixo IP de destino, limitando a sua expressividade e dificultando
a criação de regras especı́ficas para determinados tipos de serviço (vı́deo sob demanda ou
armazenamento na nuvem), por exemplo.
Este artigo defende a ideia de que uma visão centralizada dos anúncios provenientes dos ASes vizinhos, o controle centralizado dos roteadores no interior do AS e
uma maior expressividade na criação das regras de encaminhamento, são elementos centrais para avançar na orquestração de rotas na perspectiva de um AS. Nesse contexto, a
separação entre as funções de encaminhamento e controle, existente nas Redes Definidas
por Software (SDN, Software Defined Networks), oferece aos pesquisadores e operadores de rede uma excelente oportunidade para contribuir na definição e implementação das
polı́ticas de roteamento [Rothenberg et al. 2012, Gupta et al. 2014] nos ISPs.
Desta forma, este artigo apresenta a ROUTEOPS: uma arquitetura inovadora para
orquestração de rotas centrada na operação de sistemas autônomos. Contrariamente à expressividade limitada presente nas arquiteturas tradicionais de implantação do protocolo
BGP, a ROUTEOPS avança o estado da arte i) ao oferecer expressividade mais clara e
ampla no controle e divulgação interna dos anúncios de rotas recebidos pelo AS; ii) ao
ampliar a granularidade do controle das polı́ticas de roteamento intra-AS, não existente
nas formas atuais de implantação de roteamento dinâmico. Por meio de um controlador
SDN com uma visão logicamente centralizada da infra-estrutura interna do AS, pode-se
auxiliar na definição de polı́ticas mais expressivas e facilitar a aplicação dessas polı́ticas
no interior do AS. A visão externa (inter-AS) é garantida pela integração da ROUTEOPS
com os anúncios eBGP provenientes dos ASes vizinhos. O uso de iBGP e eBGP garante a interoperabilidade da arquitetura ROUTEOPS com roteadores legados e com os
AS vizinhos que não fazem uso da ROUTEOPS.
A arquitetura ROUTEOPS é implementada em ambiente emulado baseado no
Mininet1 e vários experimentos foram executados como prova de conceito, visando demonstrar a viabilidade de implementação da arquitetura proposta e as vantagens de sua
utilização em um AS. O artigo é estruturado da seguinte forma: Na Seção 2, são apresentadas as caracterı́sticas dos anúncios intra-AS e aborda os trabalhos relacionados à
proposta. A Seção 3 detalha as caracterı́sticas da arquitetura ROUTEOPS. A Seção 4
apresenta os resultados como prova de conceito. A Seção 5 conclui o artigo e apresenta
os trabalhos futuros.
2. Roteamento BGP e Trabalhos Relacionados
Em um ISP que opera um AS, o protocolo BGP é usado para descobrir rotas a serem percorridas por um pacote para um determinado destino.O iBGP é usado como mecanismo
de distribuição das rotas, recebidas via anúncios externos, para o interior do AS. Uma
diferença crucial entre eBGP e iBGP, basicamente, é o uso de mecanismos diferentes para
a prevenção de “looping“ no anúncio de suas rotas. Neste caso, o eBGP simplesmente
olha para o atributo AS PATH, que contém a lista de ASes e compara com o ASN (Autonomous System Number) de seus vizinhos. O iBGP, por sua vez, utiliza outros meios
para lidar com este problema, uma vez que todos os seus vizinhos possuem o mesmo
ASN. Contudo, as sessões iBGP podem ser estabelecidas de duas maneiras: full-mesh ou
centralizados em um único roteador.
A utilização de conexões full-mesh no iBGP não é escalável, pois o número de
sessões BGP entre os roteadores será de α(α−1)
, sendo α o número de roteadores no ISP.
2
Uma alternativa para este tipo de conexão é a utilização de Reflexão de Rotas (Route
Reflection) [Society 2006], uma abordagem que habilita um determinado roteador (Route
Reflector) a atuar como uma espécie de concentrador de rotas, repassando o anúncio de
rotas recebidas por ele para outros pares de roteadores iBGP vizinhos. Para a utilização
de Route Reflection, os operadores de rede devem efetuar configurações adicionais no
Route Reflector visando delimitar o escopo da reflexão, evitando problemas de “looping“
nos anúncios para os seus vizinhos. Por outro lado, a reflexão de rotas torna a visão mais
restrita em relação aos anúncios de todos os ASes, uma vez que serão refletidas somente
as melhores rotas na visão de um determinado roteador (Route Reflector).
Em resumo, o uso do iBGP impõe fortes restrições na orquestração de rotas na
rede interna de um ISP devido a dois fatores principais: i) a inviabilidade de ligações fullmesh entre os roteadores de um AS de médio ou grande porte, o que daria uma maior visão
da infraestrutura da rede e; ii) as limitações do mecanismo de reflexão de rotas usando
iBGP, que impede a orquestração de rotas com critérios customizados de acordo com a
1
http://mininet.org/
visão do operador da rede. Nesse contexto, a seguir serão apresentados alguns trabalhos
importantes relacionados à ROUTEOPS.
O RCP [Feamster et al. 2004] é pioneiro na criação de uma visão logicamente centralizada do sistema de roteamento, personalizando a distribuição interna dos anúncios
com a substituição do método de reflexão de rotas do iBGP. Além disso, a abordagem
do RCP simplifica a configuração e seleção da melhor rota: ao invés de utilizar-se dos
atributos de seleção do BGP, propõe uma nova camada de interação inter-AS. A ROUTEOPS se inspira no RCP no tratamento do roteamento intra-AS, substituindo o método
convencional de reflexão de rotas pela centralização do controle interno dos anúncios. A
utilização, pela ROUTEOPS, de um controlador SDN baseado no protocolo OpenFlow
traz uma maior granularidade na configuração do encaminhamento de pacotes e habilita
a engenharia de tráfego em decorrência da interação direta com o plano de dados. Mais
especificamente, a ROUTEOPS se diferencia do RCP principalmente por não criar uma
camada de comunicação inter-AS, respeitando a autonomia dos ASes na divulgação de
prefixos de rede.
O SDX [Gupta et al. 2014] foi utilizado como base para a criação da ROUTEOPS
e também propõe a existência de um controle centralizado, porém com visão completa
do encaminhamento inter-AS. Para isso, o SDX também faz uso do protocolo OpenFlow
para contrapor as principais limitações do roteamento BGP, que são: i) encaminhamento
baseado apenas no endereço de destino; ii) influencia apenas sobre seus vizinhos e; iii)
expressão indireta das polı́ticas de roteamento. Assim como na ROUTEOPS, o uso do
OpenFlow garante uma maior expressividade na criação e manipulação das polı́ticas de
cada participante da rede. Entretanto, o SDX delimita seu escopo de controle aos IXPs
(Internet Exchange Points) e comunicação inter-AS, enquanto a ROUTEOPS se diferencia
por ter como foco os sistemas autônomos, tratando o anúncio de rotas intra-AS com uso
do iBGP como mecanismo de transporte.
Na visão de uma estrutura intra-AS, o BTSDN [Pingping Lin 2014] utiliza
informações obtidas nos roteadores de borda para influenciar o encaminhamento intraAS, utilizando o OpenFlow como elemento de configuração de regras de encaminhamento,
assim como a ROUTEOPS. A finalidade principal desse arranjo é obter uma cooperação
entre uma rede OpenFlow e os roteadores de borda legados, sem alterá-los, com a criação
de regras de fluxo auxiliadas pela visão interna dos anúncios. Através da utilização do
iBGP, o controlador não tem apenas informações de anúncios intra-AS, mas também
informações inter-AS de forma indireta. A principal diferença entre a arquitetura ROUTEOPS e o BTSDN, é que a primeira trabalha de forma ativa na divulgação dos anúncios
intra-AS, permitindo a divulgação de anúncios personalizados para determinados roteadores, enquanto a última apenas faz o mapeamento das rotas em regras de encaminhamento
OpenFlow de forma passiva.
O RouteFlow [Nascimento et al. 2011] é uma abordagem que faz uso da separação
entre plano de dados e controle por meio do protocolo OpenFlow. O RouteFlow, assim
como o BTSDN, também faz um mapeamento de rotas em regras de encaminhamento
OpenFlow, utilizando-se de máquinas virtuais e switches OpenFlow para implementação
do plano de dados. No Routeflow, o switch terá as mesmas funções de um roteador convencional, através da realização do encaminhamento usando reescrita do endereço de
MAC de destino. Com isso, o RouteFlow habilita a experimentação de diferentes for-
mas de encaminhamento no plano de dados associado aos anúncios BGP. A principal
diferenciação para a ROUTEOPS é que no RouteFlow existe uma rede sobreposta de roteadores virtuais mapeados em switches OpenFlow que realizarão o encaminhamento dos
pacotes e, no caso do ROUTEOPS, o switch Openflow é utilizado apenas para melhorar
a granularidade do encaminhamento interno, em conjunto com a visão inter-AS proporcionada pelo BGP.
Após uma breve revisão dos principais trabalhos relacionados é importante
reforçar as duas principais contribuições da ROUTEOPS: i) a disponibilização de uma
maior expressividade no controle e divulgação interna dos anúncios de rotas recebidos
pelos ASes vizinhos; ii) a ampliação da granularidade do controle das polı́ticas de roteamento intra-AS, não existente nas formas atuais de implantação de roteamento dinâmico.
Como contribuição secundária, mas não menos importante, a proposta da ROUTEOPS
também propicia um ambiente adequado para experimentação de soluções de encaminhamento inovadoras no interior dos ASes, com utilização do protocolo OpenFlow e switches
SDN no núcleo dos ASes e roteadores legados nas bordas.
3. ROUTEOPS
A arquitetura proposta baseia-se na integração, de forma centralizada, entre a arquitetura
BGP e o protocolo OpenFlow[McKeown et al. 2008], de forma que a primeira fornece
acesso aos anúncios intra e inter-domı́nios de toda a infra-estrutura de um ISP e o último
permite a manipulação do plano de dados. A Figura 1 mostra os módulos da arquitetura responsáveis pela construção e manipulação de polı́ticas de roteamento, que serão
descritos a seguir.
Operador
Topologia
iBGP
IPC
Openflow 1.3
Políticas
GUI
Proxy Arp
Configs
RIB
Agente
FlowStats
Manipulação
Políticas
Switch
Switch
Switch
OpenFlow
OpenFlow
OpenFlow
Tradução
da Política
Processo de
Decisão BGP
L2 Switch
Anúncios
BGP
Controlador
OpenFlow
Orquestrador
de Rotas
Switch
Switch
Roteador
OpenFlow
OpenFlow
Daemon
BGP
Controlador
BGP
ROUTEOPS
Figura 1. Arquitetura ROUTEOPS
3.1. Orquestrador de Rotas
Suponha que um operador de rede deseja configurar uma polı́tica que não aceitará rotas
anunciadas pelo ISP A. Na Figura 2(a) o operador de rede deverá configurar em C que as
rotas anunciadas por ISP A sejam associadas a uma determinada “community“. No BGP,
“community“ é um atributo no qual os valores podem estar associados a uma rota, utilizada como uma espécie de marcação para os operadores. No roteador A , baseando-se
no valor da “community“ configurado em C, um filtro deverá ser aplicado. No exemplo,
nota-se que uma inconsistência nas configurações dos roteadores invalidará a polı́tica de
roteamento, ou seja, deverá existir uma sincronia entre os valores de “community“ definidos no roteador C e A para que este tipo de polı́tica funcione. A configuração topológica
no BGP é consequência das ligações entre os roteadores, que só trocam informações com
seus vizinhos.
Na configuração topológica da ROUTEOPS é preciso definir os endereços MAC
(Media Access Control), IP (Internet Protocol), as ligações lógicas entre os roteadores e
a polı́tica de reflexão das rotas para cada roteador do AS. Para a criação de polı́ticas, o
operador poderá criar regras que manipulam o processo de decisão dos anúncios no BGP e
regras especı́ficas que diversificam o encaminhamento interno dos pacotes. Por exemplo,
na Figura 2(b), para o roteador D foram definidas ligações entre os roteadores (Peers) A,
B e E e Router Reflector (RR) para A, o que significa que A receberá anúncios de B e E
mesmo não sendo seus vizinhos.
CLIENTE
ISP_A
192.168.0.1
A
C
B
10.0.0.1
ROTEADOR A
D
E
ip community-list 1 permit 0:1000
neighbor 10.0.0.1 router-map IMPORT-D in
router-map IMPORT-D deny 10
match community 1
!
ROTEADOR C
neighbor 192.168.0.1 router-map IMPORT-IXP in
router-map IMPORT-IXP permit 10
set-community 0:1000
!
(a) Arquiteturas Convencionais
"D": {
CLIENTE
}
“Peers”: [“A”,”B”,”E”],
“RR”: [“A”],
10.0.0.1
Policy: {
“announce”: “A”,
“from”: “C”,
“to”: “A”,
“action”: “deny”
}
ROUTEOPS
ISP_A
192.168.0.1
A
C
B
D
E
(b) ROUTEOPS
Figura 2. Exemplo de expressividade de polı́ticas utilizando método tradicionais
em comparação com as polı́ticas definidas no ROUTEOPS
Voltando ao exemplo onde o operador deseja configurar uma polı́tica que não aceitará rotas anunciadas pelo ISP A, vamos ilustrar como essa polı́tica pode ser expressada
de forma simples com a utilização da ROUTEOPS. Na Figura 2(b), descrevemos que os
anúncios originados em C e destinados a A serão negados (”action deny“).
Como podemos observar, a definição de uma determinada polı́tica no modelo tradicional é obscura, conforme observado na Figura 2(a), e a determinação da polı́tica é
descentralizada com uma visão limitada dos anúncios de todas as rotas. Com a utilização
da ROUTEOPS, expressamos a topologia e as polı́ticas diretamente no módulo Orquestrador de Rotas através de uma GUI (Graphical User Interface) de acesso às configurações
e polı́ticas. Desta forma o operador terá um leque de opções de polı́ticas que diversificam o encaminhamento dos anúncios para um determinado roteador, entregando a melhor
rota para aquele roteador. Tudo isso em função de uma visão e controle centralizados e
a possibilidade de orquestração destes anúncios, com base em critérios definidos pelo
operador.
Além disso, o módulo Orquestrador de Rotas recebe e envia mensagens para o
módulo Controlador BGP e para o módulo Controlador OpenFlow. Na comunicação
com o módulo Controlador BGP, o componente Processo de Decisão BGP é responsável
por receber todos os anúncios e, em seguida, tomar uma decisão sobre qual deles oferece
a “melhor“ rota para cada destino. Essas melhores rotas são colocados em uma base
de dados, denominada de RIB (Routing Information Base). No entanto, a definição da
“melhor“ rota envolve diversos critérios além de observar o caminho mais curto.
O componente Processo de Decisão BGP, após definir as melhores rotas, deverá
encaminhar os anúncios para o componente Anúncios BGP, utilizando, de forma similar,
dos critérios de reflexão de rotas da RFC4456 utilizados no BGP. O componente Anúncios
BGP, por sua vez, irá encaminhar esses anúncios para o módulo Controlador BGP que,
por fim, envia os anúncios para os roteadores. A forma como acontecerá a reflexão de
rotas deve ser definida e configurada de acordo com as polı́ticas especı́ficas daquele AS.
O componente Manipulação de Polı́ticas, a partir das polı́ticas pré-definidas pelo operador
de rede, influencia no processo de decisão do protocolo BGP. Essa influência acontece por
meio da interação com o componente Processo de Decisão BGP e Tradução da Polı́tica
do módulo Controlador OpenFlow. A interação com o operador de rede é feita por meio
de uma interface gráfica, componente GUI, que permite a inserção de configurações de
topologia e polı́ticas na base de dados do módulo Orquestrador de Rotas.
3.2. Controlador BGP
No módulo Controlador BGP, o componente Daemon BGP é responsável pela conectividade iBGP (Internal BGP) com os roteadores legados. Portanto, este componente será
responsável por estabelecer uma sessão entre os pares BGP (Peers) e trocar informações
sobre atualização de rotas e notificações de erros.
O componente Agente é responsável por receber mensagens do componente Daemon BGP e enviar mensagens para o módulo Orquestrador de Rotas utilizando o formato
JSON2 . Além disso, o componente Agente recebe as mensagens do módulo Orquestrador
de Rotas e as encaminha para o componente Daemon BGP em formato adequado.
2
http://www.json.org
3.3. Controlador OpenFlow
No módulo Controlador OpenFlow, responsável por enviar e receber mensagens OpenFlow para um determinado switch, o componente Tradução da Polı́tica é responsável por
traduzir as polı́ticas definidas pelo módulo Orquestrador de Rotas em regras OpenFlow
na versão 1.3. Além disso, o componente FlowStats, recebe dos switches informações
relacionadas aos fluxos que serão entregues ao componente Manipulação de Polı́ticas do
módulo Orquestrador de Rotas. Já o componente Proxy ARP responde as requisições ARP
obedecendo às determinações expressas nas polı́ticas definidas no módulo Orquestrador
de Rotas.
3.4. Implementação
A implementação do protótipo descrito neste artigo foi dividida em três partes: Controlador OpenFlow, Controlador BGP e Plano de Gerência de Rotas e Polı́ticas (Router Server). Cada item foi referenciado como um módulo na arquitetura proposta. A
comunicação entre os módulos será realizada através de mensagens IPC (Inter-Process
Communication), utilizando o banco de dados distribuı́do NoSQL MongoDB3 versão
2.6.5. Além disso, essa base de dados NoSQL é usada para implementar uma fila de
mensagens JSON entre os módulos, permitindo a comunicação de perda de desempenho
e facilitando o gerenciamento de falhas, depuração e monitoramento.
No módulo Controlador OpenFlow foi utilizado o controlador Ryu versão 3.23.
Nele foram implementados os componentes Tradução das Polı́ticas, L2 Switch, FlowStats e Proxy ARP. As principais tarefas associadas a este módulo são: interpretação das
polı́ticas, criação de regras de fluxo no plano de dados, respostas ARP REPLY e coleta
de informações de fluxos.
Na implementação do módulo Orquestrador de Rotas, foi utilizado a linguagem
Python em conjunto com a biblioteca PyMongo4 para integração com o MongoDB, responsável pela leitura das mensagens recebidas e enviadas para os outros módulos e pela
persistência das informações de rotas, polı́ticas e expressões topológicas. Fazem parte
deste módulo os componentes Processo de Decisão BGP, Anúncios BGP e Manipulação
das Polı́ticas. As principais funcionalidades deste módulo são: armazenamento dos
anúncios de rotas e anúncio customizado de rotas com base em uma determinada polı́tica.
No módulo Controlador BGP, foi utilizado, como Daemon BGP, o ExaBGP5
e, como Agente, um software escrito em Python que se comunica diretamente com o
ExaBGP para habilitar a troca de mensagens com o módulo Orquestrador de Rotas.
4. Prova de Conceito
Este seção apresenta o ambiente de experimentação que foi utilizado para a avaliação
do protótipo e os resultados obtidos nos experimentos como prova de conceito. Para
uma melhor organização da apresentação da prova de conceito, realizou-se a divisão em
3(três) subseções. A primeira (seção 4.1), descreve as caracterı́sticas do ambiente de
experimentação. Em seguida (seções 4.2 e 4.3), avaliamos o funcionamento do protótipo
3
https://www.mongodb.org
https://api.mongodb.org/python/
5
https://github.com/Exa-Networks/exabgp
4
em determinadas topologias e polı́ticas. Neste caso, apresentamos resultados medindo
a vazão de fluxos na visão de operação do AS. Os casos de uso servem para ilustrar a
orquestração de rotas da ROUTEOPS.
4.1. Ambiente de Experimentação
Para validar a proposta, utilizamos como ambiente de emulação o Mininet6 na versão
2.1.0p2 com uma extensão que provê serviços de forma simplificada, denominada de MiniNext7 na versão 1.10. Esta versão do Mininet provê suporte ao Openflow 1.3, utilizada
como base no protótipo. No plano de dados, foi utilizado como máquina de encaminhamento (Software Switch), o Open vSwitch8 na versão 2.3.2. Além disso, todos os enlaces
foram configurados com limite de 1Gbps.
Portanto, em uma dada topologia de ISP operando seu próprio AS, cada roteador
executa o software Quagga9 na versão 0.99.22.4 para o serviço (daemon) que implemementa o protocolo BGP. Para a geração e análise do tráfego durante os experimentos foi
utilizada a ferramenta Iperf10 na versão 3.0.4 com os protocolos TCP e UDP.
4.2. Orquestração de rotas de entrada e saı́da
O objetivo do primeiro experimento é mostrar uma regra de reflexão de rotas customizadas
que impacta na vazão de 2(dois) fluxos de entrada. A topologia utilizada é ilustrada na
figura 3, com fluxos TCP com origem no AS150 e com destinos para o AS300 e para
o roteador R03 contido no AS65000. Utilizamos 3(três) roteadores trocando mensagens
iBGP e ligados a um Switch Openflow e ao servidor ROUTEOPS, fazendo o papel de um
ISP, e 4(quatro) roteadores que trocam mensagens eBGP para realizar troca de anúncio de
rotas entre ASes distintos. O AS300, exclusivamente, é um cliente, do ISP de exemplo,
ligado ao roteador R02.
Figura 3. Topologia Cenário 01 e 02
6
http://mininet.org/
http://mininext.uscnsl.net
8
http://openvswitch.org/
9
http://www.nongnu.org/quagga/
10
https://iperf.fr/
7
Originalmente, o roteador R03 está configurado para refletir suas rotas tanto para
R01 quanto para R02. Estas informações chegam até o AS150 via anúncios eBGP que,
por sua vez, seleciona o melhor caminho por meio do processo de decisão BGP. Desta
forma, os fluxos originados do AS150 com destino ao AS300(Fluxo 1 na Figura 4) seguia
o caminho AS150-AS200-R02-AS300. Já os fluxos originados do AS150 com destino
ao R03(Fluxo 2 na Figura 4) seguia o caminho AS150-AS200-R02-R03. Assim, como
é possı́vel ver na Figura 4 no perı́odo de 0s até 200s, a vazão dos fluxos é limitada pela
sobrecarga do enlace entre AS200 e R02. Para resolver tal problema, no instante 200s,
o operador insere uma polı́tica na GUI de acesso ao protótipo para realizar uma reflexão
de rotas customizada em que R03 reflete suas rotas apenas para R01. Desta maneira,
conforme ilustrado na Figura 4, o Fluxo 2 com destino para R03 passa a ser encaminhado
por meio do caminho AS150-AS100-R01-R03, liberando o enlace que estava sobrecarregado e aumentando a vazão de ambos os fluxos. Nota-se ainda que houve um tempo
de convergência para que cada sistema autônomo passe a interpretar o anúncio das novos
anúncios de rotas e a mudança seja efetivada.
Trafego de Entrada
1000
Fluxo 1
Fluxo 2
Fluxo em Mbits/sec
800
600
400
200
0
Anuncio para R01
0
50
100
150
200
250
300
350
400
Tempo(Segundos)
Figura 4. Cenário 01 - Tráfego de entrada
Neste segundo experimento, considera-se como base os fluxos de saı́da: Fluxo 1
com origem no AS300, Fluxo 2 com origem no R03 e ambos com destino para o AS150.
Inicialmente, tanto o roteador R01 e R02 estão configurados para refletir suas rotas para o
R03. Desta forma, quando R03 deseja encaminhar fluxo para o destino AS150 ele utiliza
o R02 em função do processo de decisão BGP. De forma similar, o AS300 quanto deseja
encaminhar fluxos para o AS150 também escolherá a rota que passe por R02. Como
consequência, a Figura 5 mostra que durante o perı́odo 0s ao 57s a vazão esta limitada
devido a sobrecarga do enlace entre AS200 e R02.
Para resolver tal problema, no instante 57s, o operador insere uma polı́tica na GUI
de acesso ao protótipo para realizar uma reflexão de rotas customizada onde apenas rotas
oriundas de R01 sejam refletidas para R03. Desta maneira, conforme ilustrado na Figura
5, o Fluxo 2 com origem para R03 passa a ser encaminhado por meio do caminho R03R01-AS100-AS150, liberando o enlace que estava sobrecarregado e aumentando a vazão
de ambos os fluxos. Nota-se ainda que houve um tempo de convergência menor do que o
cenário anterior, já que a mudança do anúncio precisa ser aplicada apenas em R03.
Trafego de Saida
1000
Fluxo 1
Fluxo 2
Fluxo em Mbits/sec
800
600
400
Anuncio para R03
200
0
0
10
20
30
40
50
60
70
80
90
Tempo(segundos)
100
110
120
130
140
Figura 5. Cenário 02 - Tráfego de saı́da
4.3. Orquestração de anúncios a partir da monitoração de fluxos
Serviços de vı́deo com necessidade de uma alta largura de banda como o YouTube e Netflix, oferecem uma grande demanda de tráfego em relação ao volume global de tráfego,
de modo que os ISP estão cada vez mais interessados em trocar tráfego com as aplicações
especı́ficas (CDNs) observando sempre o Custo X Benefı́cio para se conseguir realizar
estes acordos. De fato, o BGP não torna esta polı́tica simples de ser implementada.
Um ISP pode determinar o encaminhamento de um determinado fluxo em detrimento da
classificação dos serviços atrelados. Para isso, ele deverá identificar o tráfego relevante e
efetuar e redirecionar o tráfego para um caminho especial. Por exemplo, um ISP necessitará configurar em seus roteadores de borda diversas tabelas de roteamento que serão
utilizadas para uma determinada aplicação e outra tabela de roteamento para as demais
aplicações. Este tipo de abordagem cria tabelas com rotas adicionais que sobrecarregam
ainda mais a tabela de roteamento e ainda acrescentam uma obscuridade na configuração
e classificação dos serviços[Gupta et al. 2014].
Neste experimento é proposta uma solução para esse problema e analisados os
impactos de vazão quando um anúncio é feito de forma diversificada por fluxos de cada
serviço. A topologia do cenário deste experimento é ilustrada pela Figura 6. Utilizamos
4(quatro) roteadores trocando mensagens iBGP e ligados a um Switch Openflow e ao
servidor ROUTEOPS, fazendo o papel de um ISP, e 4(quatro) roteadores que trocam
mensagens eBGP para realizar troca de anúncio de rotas entre ASes distintos. O AS300,
exclusivamente, é um cliente ligado aos roteadores R03 e R04.
Neste cenário, foram configurados dois fluxos com serviços distintos, ambos com
origem no AS150 e destino para o AS300, que competem pelos recursos do meio: o Fluxo
1 do Serviço 1 utiliza o protocolo UDP de forma contı́nua tentando consumir toda a banda
disponı́vel e o Fluxo 2 do Serviço 2 utiliza o protocolo TCP com rajadas de transmissão.
Inicialmente, o roteador AS300 tem sessões eBGP estabelecidas com os roteadores R03
e R04, não existe polı́ticas especı́ficas para os anúncios e os dois fluxos são encaminhados
Figura 6. Topologia Cenário 03
pelo mesmo caminho(AS150-AS100-R01-R03-AS300) porém para prefixos distintos do
AS300.
Com base em um SLA (Service Level Agreement) para o cliente do AS300, em
que será priorizado o QoS (Quality of Service) para o Serviço 1, a polı́tica determina como
ação um anúncio diversificado na infra-estrutura do ISP caso o serviço em questão não
consiga garantir uma determinada vazão mı́nima para os prefixos anunciados pelo AS300.
No instante anterior a 100s, a vazão do Fluxo 1 diminui em função da competição pelos
recursos de rede com o Fluxo 2, conforme ilustrado na Figura 7. Então, o operador de
rede detecta que o SLA do Serviço 1 não está sendo cumprido e, após o instante 100s,
informa uma polı́tica em que determina um valor mı́nimo de vazão para o Fluxo 1, que
neste caso foi de 512Mbps, e uma ação de diversificação de anúncio para o roteador R02,
onde o roteador R04 será responsável por encaminhar os fluxos relacionados aos prefixos
do Serviço 1 para o AS300. Não alterou-se nenhuma polı́tica em relação ao Serviço
2 de forma que o Fluxo 2 continua a seguir pelo caminho AS150 − AS100 − R01 −
R03 − AS300. Já o Fluxo 1 do Serviço 1, passa a seguir o caminho AS150 − AS100 −
R02 − R04 − AS300. A partir disso, observamos que além de obtermos uma melhor
vazão para o Fluxo 1, melhoramos também a vazão do Fluxo 2. Desta maneira, mostra-se
que observar a vazão de um serviço associado a um determinado prefixo, e realizar uma
anúncio diversificado em função dessa observação, garante uma engenharia de tráfego
mais expressiva dentro da infraestrutura de um ISP.
Para que essa polı́tica seja aplicada, é adicionada uma regra especı́fica de encaminhamento no Switch Openflow que conta o número de bytes dos fluxos que correspondem
ao padrão: Endereços IPs de Origem AS150, Endereços IPs de destinos para AS300,
porta de origem e protocolo de transporte. O intervalo de amostragem será de 10s. Com
essa informação, o controlador terá uma amostra da vazão do Serviço 1 entre os ASes
AS150 e AS300. O tempo de coleta de informações de cada fluxo fica condicionado a
não deteriorar o desempenho do plano de dados e do plano de controle [Curtis et al. 2011].
Cenario 3
1000
Fluxo 1
Fluxo 2
Anuncio para R02
Fluxo em Mbits/sec
800
600
400
200
0
0
20
40
60
80
100
120 140 160 180
Tempo(segundos)
200
220
240
260
280
Figura 7. Cenário 03 - Anúncio diversificado com base na análise dos fluxos
5. Conclusões e Trabalhos Futuros
As polı́ticas de roteamento em sistemas autônomos (ASes) são ditadas essencialmente
pelo protocolo BGP. O BGP faz uso de mecanismos, tais como a aplicação de filtros
baseados somente em prefixos IP, que possuem i) pouca expressividade (arcaicos), ii) são
de difı́cil compreensão (obscuros) e iii) precisam ser corretamente configurados em cada
roteador envolvido para que a polı́tica seja aplicada na infraestrutura de rede do sistema
autônomo (tempo longo de convergência).
Neste contexto, este trabalhado apresenta a ROUTEOPS que é uma arquitetura
para orquestração de rotas centrada na operação de sistemas autônomos. ROUTEOPS
apoia-se no conceito de SDN com base na visão centralizada provida por um controlador
que facilita definir polı́ticas de modo mais claro, garantindo aplicação dessas polı́ticas de
modo ágil na infraestrutura interna do AS. A orquestração de rotas é centrada na operação
do AS pela integração da ROUTEOPS com os anúncios eBGP provenientes dos ASes
vizinhos. Tanto o controle da infra-estrutura interna do AS, quanto a maior expressividade
na aplicação das polı́ticas de roteamento são alcançados com o uso de OpenFlow. O
protocolo OpenFlow define como será o encaminhamento interno das mensagens iBGP
para os roteadores no interior do AS. O uso de iBGP e eBGP garante a interoperabilidade
da arquitetura ROUTEOPS com roteadores legados e com os AS vizinhos que não fazem
uso da ROUTEOPS.
Como prova de princı́pio, ROUTEOPS foi implementada em um ambiente de
emulação de redes (Mininet). Experimentos demonstraram que ROUTEOPS permite a
operação de rotas no AS em tráfegos de entrada e saı́da no AS que levou a um uso mais
equilibrado da infraestrutura do AS. Houve também redução no tempo de convergência
para aplicação da polı́tica de roteamento intra-AS.
Como trabalhos futuros, pretende-se utilizar a abordagem do trabalho
[Alan Chang et al. 2015], no qual realiza uma tratamento misto do encaminhamento
através de roteadores convencionais e um Switch Openflow, que mostra um melhor desempenho no tempo de convergência do encaminhamento interno. Como outro trabalho
futuro, pretende-se utilizar uma forma de redução na tabela de roteamento proposto pelo
trabalho [Luiz Fernando T. de Farias 2014], que permite uma redução das tabelas de encaminhamento (FIB) nos roteadores internos.
Referências
Akashi, O., Fukuda, K., Hirotsu, T., and Sugawara, T. (2006). Policy-based bgp control architecture for autonomous routing management. In Proceedings of the 2006
SIGCOMM Workshop on Internet Network Management, INM ’06, pages 77–82, New
York, NY, USA. ACM.
Alan Chang, M., Holterbach, T., Happe, M., and Vanbever, L. (2015). Supercharge me:
Boost router convergence with sdn. SIGCOMM Comput. Commun. Rev., 45(5):341–
342.
Curtis, A. R., Mogul, J. C., Tourrilhes, J., Yalagandula, P., Sharma, P., and Banerjee, S.
(2011). Devoflow: Scaling flow management for high-performance networks. SIGCOMM Comput. Commun. Rev., 41(4):254–265.
Feamster, N., Balakrishnan, H., Rexford, J., Shaikh, A., and van der Merwe, K. (2004).
The Case for Separating Routing from Routers. In ACM SIGCOMM Workshop on
Future Directions in Network Architecture (FDNA), Portland, OR.
Gupta, A., Vanbever, L., Shahbaz, M., Donovan, S. P., Schlinker, B., Feamster, N., Rexford, J., Shenker, S., Clark, R., and Katz-Bassett, E. (2014). Sdx: A software defined
internet exchange. In Proceedings of the 2014 ACM Conference on SIGCOMM, SIGCOMM ’14, pages 551–562, New York, NY, USA. ACM.
Luiz Fernando T. de Farias, Morganna C. Diniz, S. C. d. L. (2014). Uma abordagem para
redução da tabela de encaminhamento sob a ótica da interface de saı́da dos pacotes.
In XIII Workshop em Desempenho de Sistemas Computacionais e de Comunicação
(WPerformance 2014), Porto Alegre/RS. SBC.
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford,
J., Shenker, S., and Turner, J. (2008). Openflow: Enabling innovation in campus
networks. SIGCOMM Comput. Commun. Rev., 38(2):69–74.
Nascimento, M. R., Rothenberg, C. E., Salvador, M. R., Corrêa, C. N. A., de Lucena,
S. C., and Magalhães, M. F. (2011). Virtual routers as a service: The routeflow approach leveraging software-defined networks. In Proceedings of the 6th International
Conference on Future Internet Technologies, CFI ’11, pages 34–37, New York, NY,
USA. ACM.
Pingping Lin, Jun Bi, H. H. (2014). Btsdn: Bgp-based transition for the existing networks
to sdn. IEEE 2014, Shanghai. IEEE.
Rothenberg, C. E., Nascimento, M. R., Salvador, M. R., Corrêa, C. N. A., Cunha de
Lucena, S., and Raszuk, R. (2012). Revisiting routing control platforms with the eyes
and muscles of software-defined networking. In Proceedings of the First Workshop on
Hot Topics in Software Defined Networks, HotSDN ’12, pages 13–18, New York, NY,
USA. ACM.
Society, T. I. (2006). Bgp route reflection: An alternative to full mesh internal bgp (ibgp).
Website. https://www.ietf.org/rfc/rfc4456.txt.