Email: gustavohenriquesm@gmail.com
I. INTRODUO
2
II. NOX
B. Tipo de Sistemas operacionais de rede
Existem dois tipos principais de sistemas operacionais de
rede: Peer-to-Peer e Cliente/Servidor.
Sistemas operacionais de rede peer-to-peer permitem que os
usurios compartilhem recursos
e arquivos em seu
computador e acessem recursos e arquivos em outros
computadores. Nesses sistemas, no h um servidor de
arquivos ou uma fonte centralizada de gerenciamento. No
peer-to-peer, todos computadores so considerados iguais e
podem utilizar os recursos disponveis na rede da mesma
maneira. A figura 1 ilustra uma rede peer-to-peer.
B. Escalabilidade x Flexibilidade
Uma questo importante a ser levantada quanto a
3
escalabilidade do sistema, fator crucial para qualquer sistema
eletrnico com potencial de expanso. Como foi visto na
sesso anterior, o NOX utiliza-se de uma viso de rede
(network view), sendo ela um banco de dados com
informaes de elementos da rede, rodando em um dos
servidores da rede e compartilhando esses dados entre todos
controladores, porm, sem conter o estado atual da rede,
possibilitando que, cada vez mais, um maior nmero de
controladores (Scaling out [3]) com aplicaes de
gerenciamento da rede sejam utilizados, sendo qualquer
controlador apto a manipular um fluxo e possibilitando a
escalabilidade e consistncia do sistema.
Essa diviso de controle (feita pelos controladores) e
observao (atravs da viso da rede) seria invivel, caso
houvesse um controle de rotas por pacote, e ocorreria lentido
excessiva, visto que a chegada de pacotes em torno de
milhes por segundoe e a inicializao de fluxo na ordem de
uma ou mais magnitudes menores que a taxa de chegada de
pacotes, enquanto que uma mudana na viso da rede de
apenas dezenas de eventos por segundo, em uma rede com
milhares de hosts [4]. Se esse controle fosse feito baseado em
tabelas de prefixo, tambm no seria plausvel, j que, apesar
do nmero de entradas na viso da rede cairem dastricamente,
o gerenciamento pecaria em controle, pois pacotes entre dois
hosts teriam que seguir o mesmo caminho. Nesse contexto, o
NOX optou por utilizar um meio intermedirio de
direcionamento de pacotes: por fluxo. O controle por fluxo
feito da seguinte forma: ao chegar um pacote ao controlador,
esse processado e tratado e os pacotes seguintes com o
mesmo cabealho sero tratados da mesma meneira.
Dessa forma, eventos podem ser manipulados por instncias
do controlador, sendo eles um nmero limitado, e ainda h
possibilidade de escalar o sistema sem deixar de ser flexvel
quanto ao controle exercido, sendo ideal para grandes redes.
C. Abstrao do Switch - OpenFlow
Para que as aplicaes NOX possam contralar o trfego da
rede, necessrio enviar instrues aos switches, pois eles
que criam o canal de comunicao entre a origem e o destino
do dado. Porm, para que isso ocorra, o switch deve permitir o
controle a nvel de fluxo (como descrito na sesso b), por isso,
utiliza-se da abstrao OpenFlow.
Em um switch clssico, o encaminhamento rpido de
pacotes (data path) e as decises de roteamento de alto-nvel
(control path) ocorrem no mesmo dispositivo. O switch
OpenFlow separa essas duas funes; funo de data path
continua no switch, enquanto a funo de decises de
roteamento de alto nvel so direcionadas a um outro
controlador separado (normalmente, um servidor comum). O
switch OpenFlow e o controlador comunicam entre si atravs
do protocolo OpenFlow,o qual define mensagens, como
recebimento de pacotes, envio de pacotes e modificao da
tabela de roteamento.
O data path de um switch OpenFlow representa a abstrao
de uma tabela de fluxo; cada entrada na tabela de fluxo contm
D. Operao
Ao chegar um pacote, ele comparado na tabela de fluxos
do switch, caso ocorra uma correspondncia (match), o switch
atualiza os counters apropriados e realiza as aes descritas.
Caso contrrio (o pacote no corresponde com nenhuma
entrada da tabela de fluxos), o pacote redirecionado para um
processo controlador. Normalmente, esses pacotes so os
primeiros pacotes de um fluxo (inicializaes de fluxo). O
controlador pode tambm escolher receber todos pacotes de
um certo protocolo (ex.: DNS) e, portanto, nunca inserir uma
entrada de fluxo para eles.
Com essas inicializaes de fluxo e redirecionamento de
trfego, as aplicaes NOX constroem uma viso da rede
global a todos os controladores, sendo possvel construir
aplicaes que a utilizem como uma base de dados para os
encaminhamentos, sem que haja inconsistncia dos dados.
possvel, tambm, determinar qual rota deve ser utilizada para
o encaminhamento do pacote, bem como se um fluxo ser ou
no permitido, sendo, assim, possvel realizar o controle
atravs de aplicaes NOX (control path).
II INTERFACE DE PROGRAMAO
A interface de programao do NOX envolve dois conceitos
principais: eventos e a viso da rede.
A. Evento
Um evento ocorre sobre um fluxo, e pode ser um fluxo novo
chegando, fluxo saindo, usurios entrando e deixando a rede,
links novos, etc. Quando um evento ocorre, aplicaes NOX
utilizam um conjunto de manipuladores (handlers) que so
registrados para executar quando esse determinado evento
acontece. Os manipuladores so registrados com uma
prioridade, que determinar a ordem de execuo dos
manipuladores. Um valor de retorno do manipulador indica se
o evento continuar executando, passando para o prximo
manipulador registrado (na ordem de prioridade) ou, ento,
parar a execuo.
Alguns eventos so gerados diretamente por mensagens
OpenFlow, eventos de baixo-nvel, tais como: chegada e sada
4
de switches na rede, recebimento de pacotes e atualizao dos
counters (contadores) para estatsticas. Outros eventos, de altonvel, so gerados pelo NOX como resultado do
processamento desses eventos gerados pelo OpenFlow ou
gerados por outras aplicaes. Como exemplo, h aplicaes
para autenticar usurios, redirecionando um pacote HTTP para
um captive portal (evento de recebimento de pacote) e, ento,
gerando um evento de usurio autenticado para outros
aplicaes utilizarem.
B. Viso da Rede
O NOX possui vrias aplicaes que constroem a viso da
rede e um namespace de alto-nvel para que outras aplicaes
possam fazer a converso de um nome em alto-nvel em um
endereo de baixo-nvel(ou vice versa), permitindo que as
aplicaes sejam desenvolvidas em qualquer topologia. Essas
aplicaes manipulam a autenticao do host e usurio e
inferem os nomes dos hosts monitorando o DNS.
As aplicaes fazem a converso compilando declaraes
de alto-nvel contra a viso da rede, produzindo funes de
lookup de baixo-nvel. Essas funes so recompiladas a cada
mudana na viso da rede, mantendo, assim, consistente para
todas instncias de controlador NOX.
C. Servios de Alto-Nvel
Um conjunto de bibliotecas
do sistema auxilia na
implementao de funes comuns a muitas aplicaes de rede
no NOX. Entre elas esto o mdulo de roteamento,
classificao rpida de pacotes, servios padres de rede
(DHCP e DNS, por exemplo) e um mdulo de filtragem
baseado em polticas.
C. Gerenciamento de Energia
Estudos sobre o gerenciamento de energia esto em alta[7],
e duas tecnicas vem sendo destacadas . Uma a reduo de
links inutilizados ou, ento, o desligamento deles de uma vez.
A viso global da rede provida pelo NOX claramente auxilia
nesse processo, uma vez que h o armazenamento de
estaststicas sobre essa viso da rede, como visto
anteriormente.
Outra tcnica prover proxies para interceptar rudos na
rede, e apenas pacotes necessrios cheguem aos hosts. O fato
5
do NOX interferir em todas inicializaes de fluxo, possibilita
que esses pacotes indesejados sejam interceptados e
bloqueados.
[6]
[7]
[8]
D. Ethane
O sistema Ethane prov controle de acesso usando
polticas centralizadas declaradas baseadas em elementos de
alto nvel, ou seja, entidades no namespace da viso da rede.
Essa aplicao foi implementada sem o NOX (em C++) e em
com NOX (Phyton)[1].
visvel que o NOX facilita o desenvolvimento de
aplicaes de gerenciamento, uma vez que a aplicao sem
NOX foi feita em mais de 45 mil linhas e, com o NOX, em
pouco mais que mil linhas. Isso ocorre porque necessrio
conhecimento de alguns fundamentos da rede, com:
usurios, ns, user, host etc. Isso tudo de conhecimento
das aplicaes NOX, pois esto associados a eventos. A
implementao basica do Ethane checar cada fluxo com
as polticas internas e o resultado ser passado ao mdulo de
roteamento do NOX, que ir tomar a deciso necessria.
IV. CONCLUSES
As redes podem conter uma variedade de complexidades
que dificultam no s o seu gerenciamento, mas tambm o seu
crescimento. Com o uso do NOX, possvel obter um nvel de
abstrao que, alm de facilitar o gerenciamento da rede,
prov uma interface de programao, facilitando o
desenvolvimento de novas aplicaes .
A viso da rede fornecida pelo NOX, originria do projeto
4D[8] e incorporada ao NOX, trouxe flexibilidade na criao
de aplicaes de gerenciamento da rede, centralizando e
fornecendo dados para que decises sejam tomadas por
diversas aplicaes controladoras, tirando a dependncia de
algoritmos distribuidos.
Apesar dessa abstrao auxiliar no desenvolvimento de
aplicaes de gerenciamento, falta ainda um suporte maior a
interaes entre esss aplicaes. A tendncia que as tcnicas
atuais nas redes no sejam substituidas pelo NOX, mas que
aplicaes do NOX de gerenciamento sejam aderidas,
principalmente no direcionamento de fluxo. Ainda falta
emadurecimento
REFERNCIAS
[1]
[2]
[3]
[4]
[5]
Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martn Casado,
Nick McKeown Scott Shenker, NOX: Towards an Operating System for
Networks). Available: http://www.cs.yale.edu/homes/jf/nox.pdf
W.-K. Chen, Linear Networks and Systems (Book style). Belmont, CA:
Wadsworth, 1993, pp. 123135.
"Database Scalability - Dispelling myths about the limits of databasecentric architecture. Available: http://www.boic.com/scalability.htm
OpenFlow e NOX : Propostas para Experimentao de Novas
Tecnologias de Rede. Carlos Alberto Braz Macapuna Universidade de
Campinas (UNICAMP)
A. Greenberg, N. Jain, S. Kandula, C. Kim, P. Lahiri, D. A. Maltz,
P. Patel, and S. Sengupta. Vl2: A scalable and flexible data center
network. In Sigcomm, 2009.