GT-ATER: Aceleração do Transporte de Dados com o
Emprego de Redes de Circuitos Dinâmicos
RT1 - Termo de referência e estado da arte
Sand Luz Corrêa
Kleber Vieira Cardoso
05/02/2013
1. Introdução
Em NRENs (National Research and Education Networks) como APAN, Internet2, ESnet,
GÉANT, CLARA e RNP, a necessidade de transportar de maneira confiável e eficiente grandes
volumes de dados é sempre crescente. Grande parte dessa necessidade é justificada pela
existência de equipamentos e aplicações em áreas como Física, Meteorologia, Medicina e
Computação que, ao evoluírem, demandam maior capacidade de transmissão de dados.
Portanto, há uma demanda crescente por largura de banda e uso efetivo dessa capacidade.
Por outro lado, é bastante conhecida a dificuldade do TCP de acompanhar a ampliação da
capacidade da rede, sobretudo devido aos altos valores do produto largura de bandaatraso[1,2]. Atualmente, há várias abordagens para melhorar o desempenho do TCP em redes
de alta capacidade como, por exemplo, conexões TCP em paralelo [3,4], UDT [5], logística em
rede [6] e mecanismos de controle de congestionamento especializados [7,8,9,10]. Quando
uma rede de backbone suporta a criação de circuitos dinâmicos, uma nova abordagem passa a
estar disponível. Os circuitos dinâmicos podem ser usados como atalhos dentro da rede, onde
o produto largura de banda-atraso é reduzido pela remoção de parte dos atrasos de
enfileiramento.
Atualmente, a RNP oferece, através do Serviço Experimental CIPÓ (SE-CIPÓ) [11], uma
maneira dos usuários solicitarem a criação de circuitos sob demanda. O intuito do GT-ATER é
desenvolver um serviço para transporte de grandes volumes de dados através de circuitos
dinâmicos criados automaticamente a partir de regras de encaminhamento. Este serviço foi
denominado de ATER (Aceleração do Transporte de Dados com o Emprego de Redes de
Circuitos Dinâmicos). O serviço ATER fará uso do SE-CIPÓ para o aprovisionamento de
circuitos fim-a-fim para o tráfego selecionado.
Este relatório apresenta o resultado de um trabalho de levantamento do estado da arte em
áreas importantes para o desenvolvimento do serviço ATER. Em especial, o levantamento se
concentra no estudo de soluções eficientes para o encaminhamento e filtragem de pacotes,
soluções para o controle de regras de encaminhamento e um estudo sobre as tecnologias
usadas no SE-CIPÓ.
Este documento está organizado da seguinte forma. A Seção 2 apresenta os objetivos
deste projeto e descreve uma arquitetura de alto nível definida para a implementação do
serviço ATER. A Seção 3 discute soluções para a implementação dos componentes da
arquitetura definida na Seção 2. A Seção 4 finaliza este relatório apresentando trabalhos
similares ao proposto pelo serviço ATER.
2. Descrição do projeto
2.1
Objetivos
Atualmente, os usuários da RNP podem solicitar o estabelecimento de circuitos virtuais
dinâmicos através do SE-CIPÓ. Acessando uma interface Web, o usuário indica as
extremidades de origem e de destino do circuito, assim como os horários em que deseja o
estabelecimento desse circuito. Em geral, essas extremidades são definidas através da
indicação do equipamento (normalmente um switch), porta do equipamento e, geralmente,
2
identificador de VLAN. Apesar do SE-CIPÓ atender uma ampla gama de necessidades,
algumas demandas importantes ainda não são contempladas, por exemplo:
•
Não é possível ativar circuitos automaticamente a partir do perfil de tráfego. Esse tipo
de demanda é importante em cenários em que o usuário não é capaz de determinar
quando uma transmissão de dados deve ter início. Por exemplo, o mecanismo de
sincronização de grandes storages pode ser ativado de maneira não determinística.
•
Não é possível filtrar os dados que serão transmitidos pelo circuito. O SE-CIPÓ
estabelece um circuito entre duas redes, ficando a cargo do usuário definir o que deve
fluir através do circuito dinâmico. Ou seja, caso o usuário tenha interesse em
encaminhar apenas fluxos específicos, ele deverá implementar essa filtragem.
O objetivo desse projeto é oferecer um serviço que permita aos usuários da RNP
solicitarem circuitos dinâmicos de maneira automatizada através da definição de regras para
identificação do perfil do tráfego. Apenas o tráfego que combinar com as regras definidas deve
ser enviado através de circuito dinâmico criado sob demanda, enquanto o restante é enviado
pela rede IP convencional. Inicialmente, o objetivo é atender usuários que tenham necessidade
de realizar transporte confiável de grande volume de dados. A seguir, descrevemos alguns
requisitos a serem satisfeitos pelo serviço ATER.
•
O usuário acessará uma interface Web na qual informará o perfil do tráfego que deseja
enviar por um circuito dinâmico. Caso queira, o usuário poderá indicar o destino do
circuito, mas essa informação é opcional, uma vez ela que poderá ser extraída dos
próprios pacotes. O perfil do tráfego será descrito através da escolha de regras de
filtragem, ou seja, o usuário escolhe um protocolo (ex.: TCP) e indica as eventuais
informações extras (ex.: porta). Não é necessário indicar quando o circuito deve ser
ativado, pois a ativação ocorrerá sob demanda, quando o tráfego começar a fluir.
•
A duração de um circuito será em fatias (slots) fixas de tempo, cujo tamanho poderá
ser indicado pelo usuário ou definido pelo administrador. Quando uma fatia de tempo
for encerrada e ainda existir tráfego a ser enviado, o serviço poderá solicitar um novo
circuito por mais uma fatia de tempo.
•
O serviço ATER será capaz de encaminhar o tráfego pela rede convencional sempre
que não conseguir reservar um novo circuito, de maneira transparente e sem perda de
dados.
•
Quando o usuário não desejar mais utilizar uma regra, pode simplesmente removê-la.
A regra garante que apenas o perfil do tráfego definido será transportado através do
circuito. Como o esquema de regras é flexível, o usuário pode escolher enviar desde
todo o tráfego entre duas redes até um fluxo bastante específico.
•
A autorização para que uma regra seja efetivamente ativada deverá ser fornecida pela
equipe de operação da RNP, semelhante ao que é realizado no SE-CIPÓ. Assim, um
administrador acessará a interface Web oferecida pelo serviço ATER, porém com
privilégios especiais. A interface oferecida ao administrador o permitirá autorizar regras
solicitadas e também criar regras. A criação de regras pelo administrador permite que o
serviço seja mais transparente para o usuário final, pois seu tráfego pode ser
transportado por um circuito dinâmico sem que ele tome conhecimento.
3
•
O administrador poderá ativar uma regra ou apenas solicitar seu monitoramento. No
modo de monitoramento, a regra não pode dar origem a um circuito dinâmico, mas
todo tráfego que casar com a regra será contabilizado. Assim, após um tempo
determinado pelo administrador, ele poderá verificar a quantidade de fluxos, número de
pacotes por fluxo e número de pacotes totais, duração de cada fluxo e duração média,
vazão por fluxo e vazão média. Essas informações podem ser usadas para subsidiar a
decisão de ativar ou não a regra solicitada. Essas informações também estarão
disponíveis quando a regra for ativada, podendo ser utilizadas para decidir pela
continuidade ou remoção da regra. Além disso, caso observe algum indício de tráfego
que envolva grande volume de dados, o administrador pode criar regras de
monitoramento e usar as informações para antecipar a demanda dos usuários.
•
Por fim, o administrador pode também mudar o nível de um usuário para gerente local,
permitindo que suas regras sejam ativadas sem a necessidade de intervenção do
administrador.
2.2
Solução Proposta
A Figura 1 ilustra os dois tipos de equipamentos que o serviço ATER fará uso: um servidor e
um intermediário. No servidor, doravante chamado de CORE (Circuit Operation and Rule
Establishment), será hospedado o núcleo do serviço, ou seja: o controle de acesso dos
usuários e dos administradores, a solicitação para criação de circuitos dinâmicos, o
armazenamento do resumo das estatísticas de tráfego, a comunicação com o serviço de
circuitos dinâmicos da RNP e o controle remoto dos equipamentos intermediários. Nos
equipamentos intermediários, denominados RACEs (Rule Applier and Circuit Endpoint),
estarão as regras e a configuração para estabelecer a conectividade entre as extremidades dos
circuitos dinâmicos.
Figura 1: Arquitetura do Serviço ATER
Um RACE pode ser implementado em um computador convencional com algumas
interfaces de rede. Inicialmente, duas interfaces do equipamento são colocadas em modo
ponte (bridge), fazendo com que o encaminhamento seja realizado na camada de enlace. Essa
abordagem ajuda a tornar um RACE transparente aos demais equipamentos no mesmo
4
segmento de rede. Normalmente, os RACEs trabalharão aos pares, sendo coordenados pelo
CORE para formar as extremidades dos circuitos dinâmicos. Quando um circuito dinâmico se
torna disponível, o RACE de origem inicia o processo de reencaminhamento do tráfego de
acordo com a regra que recebeu do CORE. O reencaminhamento pode ser realizado
logicamente, acrescentando a etiqueta (tag) de VLAN que identifica o circuito, ou fisicamente,
através de envio por outra interface de rede, conforme ilustrado na Figura 1. Em ambas as
soluções, o endereço MAC dos pacotes também será alterado para refletir o RACE que está na
outra extremidade do circuito. O RACE de destino realiza a tarefa complementar de remover a
etiqueta de VLAN adicionada pelo serviço ou simplesmente encaminhar o pacote para o
destino final. Novamente, é necessário substituir o endereço MAC para o valor adequado.
Assim, os RACEs funcionam como comutadores de nível 2 (switches) que escondem os
circuitos dinâmicos das redes que estão nas bordas.
Cada RACE mantém uma conexão segura com o CORE a partir da qual recebe toda a
configuração necessária e pela qual informa sobre o tráfego que casa com alguma regra, envia estatísticas de uso e relatórios de operação. O canal seguro também é usado para
monitorar a disponibilidade de todos os componentes do serviço. Caso algum RACE não
consiga estabelecer a comunicação segura com o servidor após algum tempo, todas as regras
são desativadas e o equipamento passa a funcionar como um comutador (switch) simples,
reencaminhando de maneira convencional todos os pacotes. Do lado do CORE, a ausência de
algum RACE significa que novos circuitos não podem ser iniciados ou terminados naquela
localidade.
Após a aprovação de uma regra, é tarefa do CORE estabelecer um circuito dinâmico assim
que é informado sobre o surgimento de tráfego que atenda à referida regra. Para isso, o CORE
entra em contato com o SE-CIPÓ e solicita a criação do circuito.
3. Tecnologias Envolvidas
Com base na solução descrita na seção anterior, os componentes de software que irão compor
o serviço ATER são apresentados na Figura 2. Os principais componentes são descritos a
seguir.
1. Módulo Web: sistema instanciado no CORE que permite a criação e gerência de regras
de forma simples e amigável.
2. Módulo de Criação de Circuitos: componente instanciado no CORE, responsável pela
comunicação com o SE-CIPÓ para a criação de circuitos dinâmicos.
3. Módulo de Encaminhamento e Filtragem: componente instanciado no RACE,
responsável pela aplicação das regras e tratamento do tráfego nas extremidades de
um circuito virtual.
4. Coleta de Estatística: componente instanciado no CORE e no RACE que permite a
coleta de estatísticas do serviço para auxiliar o administrador em tomadas de decisão
envolvendo a criação e manutenção de regras.
5. Canal Seguro: camada de software que permite a comunicação segura entre CORE e
RACE e vice-versa.
5
Figura 2: Componentes de Software do Serviço ATER
A seguir, são discutidas as principais tecnologias que serão empregadas no
desenvolvimento de cada componente de software listados na Figura 2, bem como a forma de
comunicação entre esses componentes. Também serão discutidas algumas tecnologias
utilizadas pelo SE-CIPÓ, que é contatado pelo Módulo de Criação de Circuitos do serviço
ATER.
3.1
SE-CIPÓ
A RNP oferece a possibilidade do uso de circuitos dinâmicos em seu backbone através do SECIPÓ. Como mostrado na Figura 3, atualmente, esse serviço é composto por três ferramentas
principais: DRAGON (Dynamic Resource Allocation via GMPLS Optical Networks)[12],
OSCARS (On-demand Secure Circuits and Advance Reservation System) [13] e MEICAN
(Management Environment of Inter-domain Circuits for Advanced Networks) [14].
O nível mais baixo da arquitetura do serviço é composto pelo DRAGON. Essa
ferramenta é responsável pelo estabelecimento do circuito e aprovisionamento dos recursos de
rede através de tecnologias heterogêneas. O DRAGON utiliza GMPLS (Generalized
Multiprotocol Label Switching) em sua arquitetura e seu plano de controle é composto por dois
elementos principais: NARB (Network Aware Resource Broker) e VLSR (Virtual Label Switch
Router). O primeiro elemento usa OSPF (Open Shortest Path First-Traffic Engineering) para
criar uma visão abstrata da topologia intra-domínio, enquanto o segundo elemento traduz
6
comandos GMPLS para protocolos específicos de dispositivos que não têm suporte nativo a
esse protocolo.
No nível intermediário da arquitetura do serviço está o OSCARS, uma ferramenta
desenvolvida pela ESnet com o objetivo de oferecer um serviço seguro de reserva e
estabelecimento de circuitos inter-domínio. A comunicação inter-domínio é possível pela
implementação do protocolo IDCP (Inter Domain Controller Protocol).
Ao contrário do
DRAGON, o OSCARS provê suporte à criação e políticas de usuário, bem como ao
agendamento de reservas de circuito a serem estabelecidos em um determinado período. As
reservas podem ser solicitadas através de uma interface Web ou através de chamadas a Web
Services. Em ambos os casos, a solicitação é verificada por um serviço de autenticação.
O nível mais alto da arquitetura do SE-CIPÓ é composto pelo MEICAN. Este é um
sistema Web desenvolvido pelo Grupo de Redes de Computadores do Instituto de Informática
da Universidade Federal do Rio Grande do Sul (UFRGS), para atuar como uma solução de
front-end no gerenciamento de reservas de circuitos dinâmicos. O MEICAN se comunica com o
OSCARS, através de sua API Web Services, para realizar operações sobre reservas de
circuitos (criação, consulta, remoção) e consultas a topologias de domínios. Outra
funcionalidade importante do MEICAN é o suporte à criação de políticas de autorização
baseadas em workflow. Esse tipo de suporte facilita a definição de políticas de autorização
específicas de cada domínio.
Figura 3: Principais Ferramentas do SE-CIPÓ
3.2
Módulo Web
O objetivo do módulo Web no ATER é oferecer aos usuários e administradores do serviço um
front-end simples e amigável para criar, manter e gerenciar regras para criação e
estabelecimento de circuitos. Os principais módulos desse sistemas são: gerência de usuários,
gerência de regras, gerência de RACEs e configuração do serviço. Este sistema será
implementado usando CakePHP [15], um arcabouço de código aberto que permite o
desenvolvimento rápido de aplicações Web usando a linguagem de programação PHP. O
CakePHP possui uma série de recursos para o desenvolvimento de aplicações Web:
7
•
adota o padrão MVC (Model - View - Controller);
•
suporta de forma transparente vários sistemas de banco de dados;
•
possui funções para validar entrada de dados em formulários;
•
realiza sanitização de dados para evitar os ataques mais comuns a aplicações Web
(CSRF, XSS, SQL injection);
•
permite geração automatizada e semi-automatizada de código;
•
possui nativamente recursos de internacionalização, autenticação/autorização, ACL;
•
é extensível através de plugins personalizados ou bibliotecas de terceiros.
O módulo Web a ser desenvolvido seguirá o padrão MVC. Esta arquitetura divide uma
aplicação em três camadas principais. A primeira camada, denominada model, representa os
dados e as regras de negócio da aplicação; a segunda camada, denominada view, é
responsável pela apresentação dos dados, enquanto que a terceira camada, denominada
controller, faz a mediação de entradas em comandos para as duas camadas anteriores. A
adoção do padrão MVC neste projeto é justificada pelo fato dessa arquitetura ser uma das mais
bem sucedidas no desenvolvimento de aplicações Web, sendo também a arquitetura mais
utilizada nos arcabouços de desenvolvimento disponíveis para esse tipo de aplicação. Além
disso, a arquitetura MVC provê benefícios como:
•
separação de interesse;
•
modularidade;
•
prototipação rápida;
•
facilidade de manutenção.
Todas os dados gerados ou mantidos pelo módulo Web serão persistidos em um banco de
dados relacional. O gerenciador de banco de dados escolhido foi o PostgreSQL [16], por se
tratar de um software de código aberto maduro e robusto, possuindo também uma comunidade
de desenvolvedores consolidada. O PostgreSQL possui vários recursos que atendem as
necessidades desse componente do serviço ATER, entre eles:
•
possui suporte a chave primária e estrangeira, joins, views, triggers e procedimentos
armazenados;
•
suporta conjunto de caracteres internacionais, com codificação de caracteres multibyte
(Unicode);
•
implementação de SQL compatível com o padrão ANSI-SQL:2008;
•
possui uma linguagem procedural própria para procedimentos armazenados (PLpgSQL);
8
•
possui recursos de nível corporativo, como: recuperação Point-in-Time, utilização de
tablespaces, replicação assíncrona, backup
online e registro de transações
sequenciais;
Outra vantagem do PostgreSQL é o fato da linguagem de programação PHP suportar
nativamente esse gerenciador de banco de dados, facilitando a integração entre o CakePHP e
o banco de dados onde as informações ficarão armazenadas.
3.3
Módulo de Criação de Circuitos
O serviço ATER é capaz de estabelecer circuitos virtuais através de chamadas ao SE-CIPÓ.
No ATER, o componente responsável pela interação com o SE-CIPÓ é o módulo de criação de
circuitos. Como no MEICAN, o módulo de criação de circuitos irá interagir diretamente com o
OSCAR para realizar operações como criar, consultar ou cancelar reservas de circuitos. Todas
essas operações serão invocadas diretamente da API Web Services provida pelo OSCARS.
Essa API é baseada em SOAP [17] com suporte a segurança WS-SECURITY [18]. A
tecnologia utilizada para implementação de SOAP é Apache Axis2/Java[19], enquanto que A
tecnologia utilizada para implementação de WS-SECURITY é Rampart, um módulo do Axis2
que suporta HTTP sobre SSL (HTTPS).
É importante notar que outra alternativa de comunicação com o SE-CIPÓ seria através
do próprio MEICAN. Ou seja, o serviço ATER executaria sobre o MEICAN, como um usuário
desse serviço. Essa solução, no entanto, foi descartada pois o acesso direto ao OSCARS
permite maior flexibilidade. Além disso, o uso de um software intermediário adicional
aumentaria a complexidade da solução.
3.4
Módulo de encaminhamento transparente e comunicação através de circuitos
dinâmicos
Para realizar o encaminhamento transparente, o projeto do software do RACE tem que atender
duas restrições fundamentais: desempenho e confiabilidade. Uma vez que o sistema
operacional Linux é a plataforma de desenvolvimento, o uso de Linux bridge [24] se apresenta
como a solução mais promissora. Linux bridge é um software que foi inicialmente
implementado há mais de 10 anos e vem sendo utilizado, mantido e atualizado desde então e,
portanto, foi considerado suficientemente confiável para adoção. Além disso, Linux bridge é
implementada em modo núcleo e distribuído em conjunto com o núcleo do sistema operacional
Linux. Esse fato reforça a confiabilidade do software e adiciona o fator desempenho a suas
características. A seguir, Linux bridge é descrita e seu uso dentro do contexto do software
RACE é comentado.
Uma Linux bridge pode ser interpretada como um contêiner para interfaces que
participam de uma ponte (bridge). Cada instância da ponte é representada por uma nova
interface de rede. Todos os dispositivos contidos em uma ponte atuam como interfaces de um
mesmo equipamento, por exemplo, um switch.
Uma ponte retransmite, de forma transparente, o tráfego entre múltiplas interfaces de
9
rede. Ou seja, uma ponte conecta duas ou mais interfaces físicas do tipo Ethernet ou
equivalente (por exemplo, 802.11) para que essas interfaces formem uma única rede Ethernet
lógica. Novamente, o funcionamento é similar a de um switch convencional.
Semelhante a um switch, a Linux bridge pode utilizar o STP (Spanning Tree Protocol)
que, além de prover tolerância a falhas, habilita múltiplas pontes a trabalharem juntas. As
pontes comunicam entre si para descobrir como elas estão interconectadas. Essa informação
poderá ser utilizada para eliminar ciclos e otimizar o encaminhamento de pacotes. Cada ponte
possui uma prioridade e um custo relativos. Cada interface pertencente a uma ponte é
associada com uma porta (número) no STP. Prioridade e custo são utilizados para decidir qual
caminho um pacote deve ser enviado. No serviço ATER, esse recurso não será necessário.
Cada ponte possui os seguintes atributos:
•
tempo de duração (ageing time) - tempo em que os endereços MAC de uma ponte
podem permanecer armazenados sem precisarem ser renovados;
•
tempo de anúncio (hello time) - sempre que esse tempo expira, a ponte envia um
pacote de anúncio (hello packet) para a vizinhança com o intuito de informar que está
ativa;
•
idade máxima (max age) - caso uma ponte não envie um pacote de anúncio dentro do
tempo estipulado nesse atributo, essa passa a ser considerada inativa.
A parte inicial da comunicação através de circuitos dinâmicos consiste em interceptar o
tráfego que não deve seguir através da rede de pacotes convencional. Para implementar essa
funcionalidade novamente a escolha foi uma solução nativa do núcleo do sistema operacional
Linux, conhecida como netfilter. O software netfilter consiste em um arcabouço para filtragem
de pacotes também utilizado, mantido e atualizado há mais de 10 anos. A configuração de
regras do netfilter é frequentemente realizada através de uma ferramenta chamada iptables. No
entanto, como utilizaremos netfilter em conjunto com Linux bridge, faremos uso de outra
ferramenta mais adequada para esse contexto, chamada ebtables [25]. A seguir são
apresentadas mais informações sobre essa ferramenta.
O ebtables atua na camada de enlace, permitindo configurar e manter as tabelas de regras
que inspecionam os quadros Ethernet. As regras instaladas pela ebtables permitem a filtragem
transparente do tráfego de rede enviado através da Linux bridge. Seguem exemplos de
algumas das funções que essa ferramenta oferece:
•
Filtragem Ethernet;
•
MAC NAT - possibilidade de alterar endereços MAC de origem e destino;
•
Brouting - combinar funções de ponte e roteamento em um mesmo conjunto de
interfaces de rede;
•
Envio de pacotes para programas no espaço do usuário, usando socket netlink.
A capacidade de enviar pacotes para programas no espaço do usuário é de especial
interesse no software do RACE. Para acelerar o processo de prototipação e facilitar a
10
realização de testes, depuração e modificação do software do RACE, foi escolhida a API de
raw sockets, em linguagem C, para a implementação da injeção dos pacotes dentro de um
circuito dinâmico e sua correspondente remoção na outra extremidade do circuito. Através do
socket netlink, o código do RACE tem acesso aos pacotes que combinarem com as regras
estabelecidas, podendo modificá-los e reinjetá-los adequadamente. No entanto, os pacotes que
não combinam com as regras são tratados apenas em modo núcleo pelo código da Linux
bridge e do arcabouço netfilter, o qual é devidamente configurado pela ebtables. A Figura 4
ilustra como essas ferramentas serão utilizadas dentro do software do RACE.
Figura 4: Combinação de Linux bridge com netfilter/ebtables a ser utilizada no RACE
3.5
Módulo de coleta de estatísticas
O serviço ATER está sendo desenvolvido para encaminhar fluxos de pacotes através de
circuitos dinâmicos e, portanto, oferece a oportunidade de coletar informações a respeito do
tráfego encaminhado. De fato, o serviço ATER será capaz de coletar informações sobre o
tráfego que potencialmente poderia ser encaminhado mesmo quando os pacotes não são
enviados através de circuitos dinâmicos. Essa funcionalidade estará disponível através de
regras de monitoramento, as quais poderão auxiliar administradores do serviço na decisão de
criar ou autorizar regras efetivas de encaminhamento do tráfego.
No serviço ATER, o intuito é permitir a coleta de estatísticas referentes a pacotes
encaminhados efetivamente e também dos que potencialmente poderiam ter sido enviado
através de circuitos dinâmicos. Ou seja, o serviço ATER armazenará informações sobre o
número de pacotes potencial e efetivamente transmitidos em cada circuito, a vazão média de
cada circuito dinâmico e a vazão média agregada. Futuramente, o serviço ATER poderá
oferecer outras estatísticas como número de fluxos encaminhados e vazão por fluxo, porém a
coleta dessas informações exige processamento adicional e exige otimizações para impedir
que o desempenho do serviço seja comprometido.
Uma vez que o serviço ATER é composto de duas partes principais, CORE e RACEs, é
necessária uma solução para coletar de maneira distribuída as estatísticas e, posteriormente,
agrupá-las de maneira centralizada. A coleta das estatísticas deve ser realizada onde o tráfego
flui, ou seja, nos RACEs e então encaminhada para o ponto central de operação do serviço, ou
seja, para o CORE. A partir do CORE, as estatísticas poderão então ser consultadas e
analisadas. Para implementar a coleta distribuída e a persistência centralizada das estatísticas,
11
foi escolhida a ferramenta OML [26] que é descrita a seguir.
A OML (OMF Measurement Library) permite definir pontos de medição (MP - Measurement
Points) dentro de aplicações novas ou que já existem. Os dados gerados pelas aplicações a
partir dos MPs são chamados de fluxos de medição (MS - Measurement Streams) e podem ser
enviados para pontos de coleta remotos para armazenamento em base de dados. A OML é
composta por potencialmente 3 componentes: cliente, servidor e proxy, sendo esse último
opcional. A Figura 5 ilustra esses 3 componentes no contexto do serviço ATER, os quais são
comentados a seguir.
Figura 5: Uso do OML no serviço ATER
O cliente OML é uma biblioteca implementada originalmente em linguagem C e,
atualmente, com implementações nativas em Python e Ruby. A biblioteca oferece uma API
para a coleta de medições e um mecanismo de filtragem configurável dinamicamente que
permite realizar algum processamento em cada MS antes de enviá-lo para o servidor OML.
O servidor OML é responsável por receber as coletas enviadas pelos clientes OML e
armazená-las em uma base de dados. Atualmente, o servidor OML suporta os sistemas
SQLite3 e PostgreSQL.
Em alguns cenários, um cliente OML pode não ter acesso ao servidor OML durante um
período de tempo, ainda que informações estejam sendo coletadas. A ausência temporária de
conectividade entre cliente e servidor OML pode surgir de questões como problemas na
infraestrutura de comunicação, intermitência do canal de comunicação ou necessidade de adiar
a transferência das coletas para evitar concorrência com transmissões mais críticas ou
simplesmente para melhorar a eficiência através do envio de maior volume de dados. Para
tratar esse tipo de cenário, é possível utilizar o proxy OML que funciona como um
armazenamento temporário e limitado de medidas. No serviço ATER, o proxy OML pode ser
útil para garantir o armazenamento de informações mesmo que ocorra problemas de
conectividade entre RACEs e CORE, e também permite uso mais eficiente do canal de
comunicação permitindo que as estatísticas sejam enviadas apenas quando uma quantidade
relevante seja coletada.
Por fim, é interessante destacar que a OML é flexível e permite que novas estatísticas e
12
MPs sejam incluídos nos RACEs. Assim, é possível modificar ou ampliar o conjunto de
estatísticas que serão coletadas pelo serviço ATER.
3.6
Canal Seguro
Um elemento fundamental na arquitetura do serviço ATER é a existência de um canal seguro
através do qual CORE e RACEs podem se comunicar. No ATER, os RACEs se comunicam
com o CORE para notificar a existência de tráfego que casa com uma regra instalada e para
enviar estatísticas do serviço para o CORE. De maneira análoga, o CORE também se
comunica com os RACEs para instalar regras nesse equipamentos e notifica-los sobre o
estabelecimento de circuitos. Um exemplo de sequência de chamadas entre CORE e RACE é
mostrada na Figura 6.
Figura 6: Sequência de mensagens entre CORE e RACE
No ATER, o canal seguro será implementado usando o paradigma de execução
remota. Esse paradigma foi adotado por ser uma abordagem simples que permite prototipação
rápida, ao mesmo tempo que facilita uma evolução para modelos de comunicação mais
sofisticados, como Web Services e MOM (Message Oriented Middleware).
Para implementar o canal seguro entre RACEs e CORE será usada a biblioteca
libssh2[20]. Esta é uma biblioteca que implementa o protocolo SSH2 para clientes escritos na
linguagem C. Adicionalmente, existe também um wrapper dessa biblioteca para clientes PHP, o
qual será usado para implementar a comunicação entre CORE e RACEs.
13
A seguir, são apresentadas algumas iniciativas mundiais similares ao serviço ATER, ou
seja, que tentam aproximar o usuário de aplicações científicas de sistemas de provisionamento
de banda, sob demanda, que operam no núcleo da rede.
4. Trabalhos Relacionados
4.1
Lambda Station
Uma das primeiras iniciativas para conectar usuários finais de aplicações científicas a redes de
provisionamento dinâmico de banda foi o projeto Lambda Station [21], idealizado pelo Fermi
Lab (Fermi National Accelerator Laboratory) e o Instituto de Tecnologia da Califórnia. Este
projeto consistia no desenvolvimento de um conjunto de serviços de rede para selecionar,
admitir e encaminhar tráfego entre clusters de computadores através de redes de longa
distância.
Ao receber requisições de aplicações locais que demandam caminhos de rede com
grande largura de banda, o Lambda Station negocia tais caminhos com um sistema de
provisionamento da WAN, a qual pode ser tanto um canal SONET (Synchronous Optical
Networking), quanto uma rede de circuitos dinâmicos. Havendo caminho disponível, o Lambda
Station se coordena com um serviço par no destino e reconfigura dinamicamente a
infraestrutura da rede local para encaminhar o tráfego da aplicação por esse caminho. O
tráfego pode ser encaminhado seletivamente, sendo a identificação do fluxo feita através de
DSCP (Differentiated Services Code Point).
4.2
TeraPaths
TeraPaths [22] é um projeto financiado pelo Departamento de Energia dos Estados Unidos. O
projeto foi concebido para tratar aplicações da área de física nuclear e altas energias que
necessitam transferir grandes quantidades de dados experimentais através de redes de alta
velocidade espalhadas pelo mundo.
Para diferenciar o tráfego de aplicações científicas e priorizar o seu encaminhamento, o
projeto TeraPaths propõe a criação de caminhos virtuais fim-a-fim que possam dar garantias de
qualidade de serviço (banda) para as aplicações. Para atingir esse objetivo, o TeraPaths
combina o uso de redes locais baseadas em DiffServ e redes de longa distância baseadas em
túneis MPLS. As redes locais de cada extremidade da comunicação são controladas por um
módulo denominado Controlador de Domínio, enquanto que os dispositivos dessas redes estão
sob controle de um ou mais Controlador de Dispositivo. A coordenação de todos os domínios
de rede envolvidos em uma rota é feita por um módulo de Serviço Distribuído. Este módulo
inicia seu serviço interagindo com os Controladores de Domínio para configurar o caminho,
prosseguindo para a interação com cada controlador de domínio das WANs envolvidas. Essa
interação entre o módulo de Serviço Distribuído e o controlador de domínio da WAN é feita
através de um proxy que exporta uma interface padrão para o TeraPaths, abstraindo a
interface de comunicação do controlador da WAN.
14
4.3
Science DMZ
Uma das iniciativas mais recentes relacionadas à otimização de transferência de dados
científicos é o Science DMZ [23]. Desenvolvido pela ESnet, este é um modelo de projeto de
rede para instituições de pesquisa que precisam de um ambiente customizado para aplicações
científicas que demandam alto desempenho computacional. Esse modelo é fundamentado em
quatro conceitos principais:
•
uma arquitetura de rede explicitamente projetada para aplicações de alto desempenho,
onde a rede para aplicações científicas é diferente das redes de propósito geral;
•
o uso de sistemas dedicado para transferência de dados;
•
o uso de métricas de desempenho para caracterizar a rede e diagnosticar problemas;
•
o uso de políticas de segurança customizadas para o ambiente em questão.
Para atingir seu objetivo, o modelo Science DMZ é composto por vários componentes,
incluindo acesso dedicado a redes de longa distância e de alto desempenho (geralmente
controladas pelo OSCARS), equipamentos com grande espaço em buffers, e nós dedicados à
transferência de dados. Esses nós são conectados diretamente a um switch Science DMZ, o
qual é conectado diretamente ao roteador de borda. A conexão direta do switch Science DMZ
ao roteador de borda é feita com o intuito de minimizar o número de componentes que devem
ser configurados para suportar transferências de alto desempenho. Adicionalmente, o controle
de acesso aos nós de transferências é feito pelo próprio switch Science DMZ e não por um
firewall separado.
4.4
Logística em Redes
O conceito de logística em redes consiste em alocar dinamicamente armazenamentos
temporários na rede como uma forma de provisionamento do meio de comunicação [27].
Quando aplicado ao protocolo TCP, esse conceito pode apresentar ganhos de desempenho
porque o RTT (Round-Trip Time) entre os equipamentos intermediários é menor que o RTT
fim-a-fim. Assim, o mecanismo de controle de congestionamento de cada conexão TCP age de
forma mais eficiente. Dessa forma, cada conexão TCP consegue aumentar sua vazão mais
rapidamente, aproveitando de maneira mais eficiente a capacidade disponível. Além disso, a
retransmissão de um pacote perdido é feita a partir da extremidade mais próxima, a qual está
sempre menos distante que as extremidades fim-a-fim.
O protótipo de um serviço de logística em redes já foi implementado na RNP pelo GTTravel [28]. A utilização do serviço proposto se baseava na disponibilização de arquivos em
servidores Web e na transferência desses arquivos por clientes convencionais, como
navegadores. Pelo menos umas das extremidades precisava ser configurada para utilizar o
serviço, servidor ou cliente. Para uma maior transparência na utilização do serviço, foi
desenvolvida uma extensão para os navegadores Web Firefox que minimizava a necessidade
de configuração por parte dos usuários, tornando-os não conscientes do uso do serviço.
15
A implementação do serviço consistiu na instalação de uma rede sobreposta à rede da RNP
que tinha como função segmentar conexões TCP entre servidores e clientes de forma a
aumentar o desempenho na transferência de dados. Para o encadeamento de conexões entre
equipamentos escolhidos pela rede sobreposta, foi definido um procedimento de sinalização
HTTP entre os clientes, os servidores e os nós da rede. Essa sinalização utilizava o
redirecionamento de URLs do protocolo HTTP, normalmente implementado na maior parte dos
clientes, para o estabelecimento das conexões TCP entre os equipamentos envolvidos.
No fim de 2009, o serviço desenvolvido pelo GT-Travel chegou a transportar mais de
1TB de um servidor-espelho de uma distribuição Linux [29]. Apesar do grande potencial, a
logística em rede possui algumas desvantagens que precisam ser levadas em conta.
Inicialmente, o problema com altos RTTs permanece, o efeito do problema é tratado, mas não
sua causa. A implementação de logística em rede envolve incluir equipamentos no núcleo da
rede que são capazes de processar, no mínimo, até a camada de transporte. Há uma
dificuldade em manter e operar esse tipo de equipamento, sobretudo em grande quantidade,
por exemplo, um por PoP. Além disso, no núcleo da rede, atualmente já há enlaces de 10Gbps
na RNP, exigindo equipamentos mais sofisticados que os computadores tradicionais usados
para enlaces de 1Gbps.
O serviço proposto pelo GT-ATER, conforme descrito previamente, aborda, pelo menos
em parte, a causa do problema de desempenho do TCP, ou seja, o alto BDP. Através dos
atalhos criados pelo serviço, o RTT é reduzido. Além disso, o tráfego pode ser isolado,
reduzindo também as perdas que também afetam o desempenho. Embora não seja explorado
nessa versão inicial do serviço ATER, há a possibilidade de beneficiar outros protocolos de
transporte através do serviço, como UDP, DCCP e SCTP.
4.5
Redes Definidas por Software – OpenFlow
O OpenFlow [30] é considerado a primeira implementação bem sucedida do conceito de redes
definidas por software. O padrão surgiu na Universidade de Stanford como proposta de um
grupo de pesquisadores que buscavam uma forma de testar inovações em protocolos de rede
em uma escala mais realista, e não apenas em pequenos ambientes de laboratório. Os
pesquisadores de Stanford perceberam que uma forma de aumentar a adoção, por parte da
indústria, das novas ideias que nasciam na academia, era realizar testes com esses protocolos
em cenários mais reais. Assim, o protocolo OpenFlow surgiu como uma forma de se realizar
experimentos acadêmicos, validando seu funcionamento e eficiência, utilizando a mesma
infraestrutura que a rede de produção.
O protocolo OpenFlow realiza a manipulação de tabelas de fluxo em computadores
(switches) de nível dois. Para isso a camada de operação e gerência do equipamento (control
plane) é modificada para incluir suporte ao protocolo. A manipulação das tabelas de fluxo é
feita com a ajuda de um elemento externo chamado de controlador, que realiza a instalação de
regras de encaminhamento de fluxos na camada de comutação de pacotes do switch (data
plane). A Figura 7 ilustra a comunicação entre o switch e o controlador.
16
Figura 7: Comunicação entre switch OpenFlow e controlador
A comunicação entre o switch e o controlador ocorre por meio de mensagens definidas
na especificação do protocolo OpenFlow, usando um canal seguro. As regras de fluxo
instaladas pelo controlador controlam a forma como o switch encaminha os pacotes. Essas
regras são compostas por três partes: 1) tupla contento campos do cabeçalho do pacote; 2)
ação que o switch deve realizar com esse fluxo; e 3) contadores de pacotes e bytes. A Figura 8
apresenta os campos do cabeçalho definidos na versão 1.0 do protocolo OpenFlow [31].
Ingress Ether Ether Ether VLAN VLAN
Port
src
dst
Type
id
prio
IP
IP
IP
src
dst
proto
IP ToS TCP/UDP
bits
TCP/UDP
src port
dst port
Figura 8: Campos do cabeçalho definidos no OpenFlow 1.0
Há uma semelhança significativa entre a base da proposta do GT-ATER e a tecnologia
OpenFlow. De fato, a coordenação do GT acredita que é OpenFlow é a evolução mais provável
do serviço ATER. Atualmente, a equipe tem algumas ressalvas devido a sua experiência com a
tecnologia OpenFlow, conforme descrito a seguir.
Os coordenadores do GT-ATER também participam do projeto FIBRE, no qual lidam
com a tecnologia OpenFlow desde o início de 2012. A experiência com OpenFlow no projeto
FIBRE mostrou que o padrão e as implementações ainda apresentam diferenças importantes.
Enquanto o padrão atual do OpenFlow está razoavelmente maduro em sua versão 1.3, a maior
parte dos fabricantes oferecem apenas versões incompletas do OpenFlow 1.0. As deficiências
nos equipamentos avaliados vão desde pequena quantidade de TCAM,
limitando
excessivamente o número de regras, até ausência de suporte à camada de rede, impedindo
um uso efetivo da tecnologia. Adicionalmente, a aquisição de equipamentos OpenFlow no
Brasil ainda apresenta dificuldades significativas, pois poucos fabricantes oferecem
equipamentos com essa tecnologia, as equipes técnicas e de venda não estão treinadas e o
custo é muito elevado. A solução é a importação que tradicionalmente consome um longo
tempo.
Com a adoção crescente da tecnologia OpenFlow, a equipe do GT-ATER acredita que
nos próximos anos os problemas apresentados serão amenizados e o uso efetivo de
equipamentos OpenFlow se tornará viável. As ações realizadas por grandes fabricantes de
hardware sinalizam nessa direção, com a previsão de novos produtos ou novas versões de
firmware agendadas ao longo de 2013 e 2014.
17
Referências
[1] V. R. B. Jacobson. “RFC 1072 – TCP extensions for long-delay paths,” IETF Request for
Comments. 1988.
[2] T. V. Lakshman and U. Madnow. “The performance of TCP/IP for networks with high
bandwith-delay product and random loss,” IEEE/ACM Transactions on Networking. 1997.
[3] H. Sivakumar, S. Bailey, and R. L. Grossman, “PSockets: The Case for Application-level
Network Striping for Data Intensive Applications using High Speed Wide Area Networks,” in
ACM/IEEE Conference Supercomputing, p. 38, nov. 2000.
[4] T. Hacker, B. Athey, and B. Noble, “The end-to-end performance effects of parallel TCP
sockets on a lossy wide-area network,” in International Parallel and Distributed Processing
Symposium, pp. 434–443, 2002.
[5] Y. Gu and R. L. Grossman, “UDT: UDP-based data transfer for high-speed wide area
networks,” Computer Networks, vol. 51, pp. 1777–1799, may 2007.
[6] D. M. Swany and R. Wolski, “Data Logistics in Network Computing: The Logistical Session
Layer,” in IEEE International Symposium on Network Computing and Applications, vol. 2, pp.
174–185, oct 2001.
[7] D. Katabi, M. Handley, and C. Rohrs, “Congestion control for high bandwidth-delay product
networks,” ACM SIGCOMM Computer Communication Review, vol. 32, no. 4, pp. 89–102,
2002.
[8] L. Xu, K. Harfoush, and I. Rhee, “Binary increase congestion control (BIC) for fast longdistance networks,” in INFOCOM 2004. Twenty-third Annual Joint Conference of the IEEE
Computer and Communications Societies, vol. 4, pp. 2514–2524, mar 2004.
[9] C. Jin, D. Wei, and S. Low, “FAST TCP: motivation, architecture, algorithms, performance,”
in INFOCOM 2004. Twenty-third AnnualJoint Conference of the IEEE Computer and
Communica- tions Societies, vol. 4, pp. 2490–2501, mar 2004.
[10] S. Ha, I. Rhee, and L. Xu, “CUBIC: a new TCP-friendly high-speed TCP variant,” ACM
SIGOPS Operating System Review, vol. 42, pp. 64–74, jul 2008.
[11] RNP, “SE-CIPÓ.”
http://wiki.rnp.br/display/secipo/Home [Último acesso: 05-Fevereiro-
2013].
[12] Xi Yang, C. Tracy, J. Sobieski, T. Lehman, "GMPLS-Based Dynamic Provisioning and
Traffic Engineering of High-Capacity Ethernet Circuits in Hybrid Optical/Packet Networks," in
INFOCOM 2006. 25th IEEE International Conference on Computer Communications.
Proceedings , vol., no., pp.1-5, 23-29 April 2006.
[13] C. P. Guok, D. W. Robertson, E. Chaniotakis, M. R. Thompson, W. Johnston, B. Tierney,
"A User Driven Dynamic Circuit Network Implementation," GLOBECOM Workshops, 2008 IEEE,
vol., no., pp.1-5, Nov. 30 2008-Dec. 4 2008.
[14] J. J. C. de Santanna, J. A. Wickboldt, L. Z. Granville, L.Z, "A BPM-based solution for interdomain circuit management," Network Operations and Management Symposium (NOMS), 2012
IEEE , vol., no., pp.385-392, 16-20 April 2012.
[15] “CakePHP.” http://cakephp.org [Último acesso: 05-Fevereiro-2013].
18
[16] “PostgreSQL.” http://www.postgresql.org [Último acesso: 05-Fevereiro-2013].
[17] “SOAP Specification.” http://www.w3.org/TR/soap/ [Último acesso: 05-Fevereiro-2013].
[18]
“WS-Security.”
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
[Último acesso: 05-Fevereiro-2013].
[19] “Axis2.” http://axis.apache.org/axis2/java/core/ [Último acesso: 05-Fevereiro-2013].
[20] “libssh2.” http://www.libssh2.org/ [Último acesso: 05-Fevereiro-2013].
[21] ”Lambda Station Project.” http://www.lambdastation.org
[Último acesso: 05-Fevereiro-
2013].
[22] “TeraPaths Project”. https://www.racf.bnl.gov/terapaths/
[Último acesso: 05-Fevereiro-
2013].
[23] ESnet, “Science DMZ – A Scalable Network Design Model for Optimizing Science Data
Transfers.” http://fasterdata.es.net/science-dmz/, 2009. [Último acesso: 05-Fevereiro-2013].
[24]
The
Linux
Foundation,
“Linux
Bridge.”
http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge [Último acesso: 05Fevereiro-2013].
[25] “Ebtables”, http://ebtables.sourceforge.net/ [Último acesso: 05-Fevereiro-2013].
[26] “OML-Measurement Library.” http://oml.mytestbed.net/projects/oml/wiki [Último acesso: 05Fevereiro-2013].
[27] Augusto, C. H. P., Silva, M. W. R., Cardoso, K. V., Mendes, A. C., Guedes, R. M., and de
Rezende, J. F. - "Implementação e Avaliação de Encadeamento de Conexões TCP em Redes
de Grande Memória e Altas Perdas", in XXVII Simpósio Brasileiro de Redes de Computadores SBRC´2009, pp. 89-102, Recife, PE, Brazil, May 2009.
[28] “Grupo de Trabalho sobre Transporte de Alta Velocidade”, http://www.rnp.br/pd/gts20072008/gt_travel.html [Último acesso: 13-Março-2013].
[29] “GT-Travel”, http://www.gta.ufrj.br/gt-travel/doku.php [Último acesso: 13-Março-2013].
[30] “OpenFlow”, http://www.openflow.org [Último acesso: 15-Março-2013].
[31] “Especificação 1.0 do Protocolo OpenFlow”, http://www.openflow.org/documents/openflowspec-v1.0.0.pdf [Último acesso: 15-Março-2013].
19
Download

RT1 - Termo de referência e estado da arte