Escolar Documentos
Profissional Documentos
Cultura Documentos
E importante observar que essa noc ao de vis ao unica e centralizada da rede como
expressa pelo sistema operacional da rede e uma vis ao l ogica. N ao necessariamente exige
que o controlador opere como um elemento concentrador, sicamente localizado em um
ponto unico do sistema. A abstrac ao de vis ao global pode muito bem ser implementada de
forma distribuda, seja pela divis ao dos elementos da vis ao entre domnios diferentes, seja
pela implementac ao de um controlador realmente distribudo, que se valha de algoritmos
de consenso, por exemplo, para manter a vis ao consistente entre suas partes.
Diferentes tipos de controladores de rede j a foram desenvolvidos dentro do con-
texto de redes denidas por software. Muitos deles se apresentam como ambientes
de tempo de execuc ao (run-time systems) que oferecem uma interface imperativa para
programac ao da rede. A linguagem utilizada, nesse caso, determina em grande parte o
estilo de desenvolvimento e as funcionalidades oferecidas. Outros controladores, entre-
tanto, ultrapassam a noc ao de uma interface de programac ao imperativa e oferecem novas
abstrac oes, como um ambiente de programac ao funcional ou declarativa. Nesses casos,
os recursos da linguagem utilizada se prestam ` a implementac ao de novas funcionalidades,
como detecc ao de conitos ou depurac ao automatizada da rede.
Muitos controladores j a implementados, desenvolvidos sem a preocupac ao b asica
de escalabilidade frente a grandes demandas, optam pela estrutura centralizada por sim-
plicidade. Por outro lado, alguns dos esforcos de desenvolvimento voltados para a
implantac ao em grandes sistemas, como os datacenters de grandes corporac oes, utili-
zam diferentes formas de distribuic ao para garantir a escalabilidade e disponibilidade do
sistema.
2.4. Aplicac oes de rede
Nesse contexto, considerando os controladores de SDN como o sistema operacional da
rede, o software desenvolvido para criar novas funcionalidades pode ser visto com a
aplicac ao que executa sobre a rede fsica. Valendo-se da vis ao unicada dos recursos
de rede que o controlador oferece, pode-se, por exemplo, implementar soluc oes de rotea-
mento especialmente desenhadas para um ambiente particular, controlar a interac ao entre
os diversos comutadores, oferecendo para os computadores a eles ligados a impress ao de
estarem ligados a um unico switch, ou a um unico roteador IP.
3. Programac ao dos elementos de rede
O princpio por tr as de Redes Denidas por Software e a capacidade de se controlar o
plano de encaminhamento de pacotes atrav es de uma interface bem denida. Sem d uvida,
a interface associada ao paradigma desde seu incio (de fato, um dos elementos motivado-
res da sua criac ao) e OpenFlow, apesar de n ao ser a unica forma de se implementar uma
SDN.
3.1. O padr ao OpenFlow
O OpenFlow e um padr ao aberto para Redes Denidas por Software que tem como prin-
cipal objetivo permitir que que se utilize equipamentos de rede comerciais para pesquisa
e experimentac ao de novos protocolos de rede, em paralelo com a operac ao normal das
redes. Isso e conseguido com a denic ao de uma interface de programac ao que permite
ao desenvolvedor controlar diretamente os elementos de encaminhamento de pacotes pre-
sentes no dispositivo. Com OpenFlow, pesquisadores podem utilizar equipamentos de
rede comerciais, que normalmente possuem maior poder de processamento que os comu-
tadores utilizados em laborat orios de pesquisa, para realizar experimentos em redes de
produc ao. Isso facilita a transfer encia dos resultados de pesquisa para a ind ustria.
Uma caracterstica b asica do modelo OpenFLow e uma separac ao clara entre os
planos de dados e controle em elementos de chaveamento. O plano de dados cuida do
encaminhamento de pacotes com base em regras simples (chamadas de ac oes na termino-
logia OpenFlow) associadas a cada entrada da tabela de encaminhamento do comutador
de pacotes (um switch ou roteador). Essas regras, denidas pelo padr ao, incluem (i)
encaminhar o pacote para uma porta especica do dispositivo, (ii) alterar parte de seus
cabecalhos, (iii) descart a-lo, ou (iv) encaminh a-lo para inspec ao por um controlador da
rede. Em dispositivos dedicados, o plano de dados pode ser implementado em hardware
utilizando os elementos comuns a roteadores e switches atuais. J a o m odulo de controle
permite ao controlador da rede programar as entradas dessa tabela de encaminhamento
com padr oes que identiquem uxos de interesse e as regras associadas a eles. O ele-
mento controlador pode ser um m odulo de software implementado de forma independente
em algum ponto da rede.
3.1.1. Estrutura e Possibilidades
Um grande trunfo da arquitetura OpenFlow e a exibilidade que ela oferece para se pro-
gramar de forma independente o tratamento de cada uxo observado, do ponto de vista de
como o mesmo deve (ou n ao) ser encaminhado pela rede. Basicamente, o padr ao Open-
Flow determina como um uxo pode ser denido, as ac oes que podem ser realizadas
para cada pacote pertencente a um uxo e o protocolo de comunicac ao entre comutador
e controlador, utilizado para realizar alterac oes dessas denic oes e ac oes. A uni ao de
uma denic ao de uxo e um conjunto de ac oes forma uma entrada da tabela de uxos
OpenFlow [McKeown et al. 2008].
Em um switch OpenFlow, cada entrada na tabela de uxos pode ser implemen-
tada como um padr ao de bits representado em uma mem oria TCAM (Ternary Content-
Addressable Memory). Nesse tipo de mem oria, bits podem ser representados como zero,
um ou n ao importa (dont care), indicando que ambos os valores s ao aceit aveis naquela
posic ao. Como o padr ao e programado a partir do plano de controle, uxos podem ser
denidos da forma escolhida pelo controlador (p.ex., todos os pacotes enviados a partir do
endereco fsico A para o endereco fsico B, ou todos os pacotes TCP enviados da m aquina
com endereco IP X para o porto 80 da m aquina com endereco IP Y). A gura 2 apresenta
uma vis ao geral de uma entrada da tabela OpenFlow. Cada pacote que chega a um co-
mutador OpenFlow e comparado com cada entrada dessa tabela; caso um casamento seja
encontrado, considera-se que o pacote pertence ` aquele uxo e aplica-se as ac oes relacio-
nadas ` a esse uxo. Caso um casamento n ao seja encontrado, o pacote e encaminhado para
o controlador para ser processado o que pode resultar na criac ao de uma nova entrada
para aquele uxo. Al em das ac oes, a arquitetura prev e a manutenc ao de tr es contadores
por uxo: pacotes, bytes trafegados e durac ao do uxo.
Figura 2. Exemplo de uma entrada na tabela de uxos OpenFlow.
Esse pequeno conjunto de regras cria diversas possibilidades, pois muitas das fun-
cionalidades que s ao implementadas separadamente podem ser agrupadas em um unico
controlador OpenFlow, utilizando um pequeno conjunto de regras. Alguns exemplos das
possibilidades s ao apresentadas na gura 3. As entradas representam o uso do switch
OpenFlow para realizar encaminhamento de pacotes na camada de enlace, implemen-
tar um rewall e realizar encaminhamento de pacotes na camada de enlace utilizando
VLANs, respectivamente.
Figura 3. Exemplos de uso de um Switch OpenFlow.
Apesar de possuir um conjunto pequeno de ac oes simples, alguns descrevem o
OpenFlow com uma analogia ao conjunto de instruc oes de um microprocessador x86
que, apesar de pequeno e simples, prov e uma vasta gama de possibilidades para o desen-
volvimento de aplicac oes. O OpenFlow cria possibilidades semelhantes para o desenvol-
vimento de aplicac oes no contexto de redes de computadores.
3.1.2. Limitac oes e futuras vers oes
A vers ao atual do OpenFlow e a 1.1, que ainda possui algumas limitac oes em termos do
uso do padr ao em circuitos opticos e uma denic ao de uxos que englobe protocolos que
n ao fazem parte do modelo TCP/IP. No entanto, a vers ao 2.0 est a sendo formulada e um
dos objetivos e eliminar algumas dessas limitac oes.
Alguns switches comerciais j a suportam o padr ao OpenFlow, como e o caso do HP
Procurve 5400zl, do NEC IP880 e do Pronto 3240 e 3290. Espera-se que ` a medida que a
especicac ao OpenFlow evolua, mais fabricantes de equipamentos de rede incorporem o
padr ao ` as suas soluc oes comerciais.
3.2. Implementac oes em software
A implementac ao de refer encia do modelo OpenFlow e um comutador em software, exe-
cutando no espaco de usu ario em uma m aquina Linux. Esse modelo tem sido utilizado
como base em diversos experimentos, mas carece de um melhor desempenho. Desen-
volvido para suprir essa lacuna, o Open vSwitch (OvS) e um switch virtual que segue a
arquitetura OpenFlow, implementado em software, com o plano de dados dentro do kernel
do sistema operacional Linux, enquanto o plano de controle e acessado a partir do espaco
de usu ario [Pfaff et al. 2009]. Em particular, essa implementac ao foi desenvolvida espe-
cicamente para controlar o tr afego de rede da camada de virtualizac ao em ambientes
virtualizados [Pettit et al. 2010].
Em sua implementac ao atual (gura 4), o Open vSwitch e composto por dois com-
ponentes principais: um m odulo presente no n ucleo do sistema operacional, denominado
Fast Path, e um componente no nvel de usu ario, o Slow Path. O fast path interage
ativamente com o tr afego de rede, pois e respons avel por procurar rotas na tabela de u-
xos e encaminhar pacotes de rede. J a o slow path e o componente do Open vSwitch onde
s ao implementadas as demais funcionalidades associadas ao plano de controle, como as
interfaces de congurac ao do switch, a l ogica de uma ponte com aprendizado (learning
bridge) e as funcionalidades de ger encia remota, etc. A interac ao entre os dois m odulos
se d a prioritariamente atrav es da manipulac ao da tabela de uxos.
Figura 4. Arquitetura do Open vSwitch.
Aimplementac ao do fast path e simples e seu c odigo e composto por poucas linhas
(em torno de 3000 um n umero de linhas bem pequeno quando comparado ` as 30.000 do
slow path). Existem dois motivos para essa decis ao de projeto, sendo que o primeiro deles
e o desempenho. O fast path e a parte crtica do sistema quando consideramos o tempo
de processamento e, portanto, quanto menor o processamento realizado para cada pacote,
maior a capacidade de processamento desse componente. Essa caracterstica torna indis-
pens avel a sua implementac ao como uma parte do sistema operacional, posicionando-o
mais pr oximo ` as NICs. Al em disso, como a l ogica implementada pelo fast path e de-
pendente das APIs do sistema operacional, manter a sua complexidade pequena facilita
a tarefa de portar o Open vSwitch a um outro sistema operacional. O segundo motivo e
o esforco reduzido em adaptar as funcionalidades do fast path ` a acelerac ao de hardware
(hardware acceleration/offoading), que eventualmente pode ser oferecida pela m aquina
fsica.
Al em de oferecer as funcionalidades da arquitetura OpenFlow, o OvS, na sua
congurac ao padr ao, opera como um switch Ethernet normal. Para simplicar a sua
integrac ao com o kernel Linux, o OvS emula as interfaces de rede daquele sistema e uti-
liza partes do c odigo fonte de seu m odulo bridge, que implementa o switch de rede padr ao
do Linux. Como resultado dessas decis oes de projeto, o Open vSwitch pode ser utilizado
como um substituto imediato para os switches virtuais adotados pelos VMMs baseadas
em Linux mais utilizados atualmente, como Xen, XenServer e KVM e vem sendo ado-
tado como o switch padr ao em diversas distribuic oes, mesmo quando as funcionalidades
da arquitetura OpenFlow n ao s ao utilizadas.
3.3. Outras propostas
Apesar do foco principal dos ambientes de Redes Denidas por Software hoje ser o mo-
delo/protocolo OpenFlow e a forma como ele exp oe os recursos do switch, h a outras
possibilidades de implementac ao de uma interface de programac ao que atenda os obje-
tivos do paradigma. O paradigma SDN n ao se limita ao OpenFlow, nem o exige como
elemento essencial.
A forma como comutadores MPLS podem ser programados para tratar cada uxo
combase no r otulo a ele associado mostramque essa tecnologia pode ser facilmente esten-
dida para a implantac ao de uma SDN [Davie and Farrel 2008]. Uma primeira iniciativa
nesse sentido utiliza o princpio da interface denida por OpenFlow sobre o comporta-
mento usual de roteadores MPLS [Kempf et al. 2011]. Nesse caso, os autores estendem
o modelo da tabela de encaminhamento do plano de dados de OpenFlow para incluir a
noc ao de porto virtual. Esse tipo de porto virtual armazena internamente as noc oes de
encapsulamento desencapsulament necess arios ao processamento de pacotes com MPLS.
Uma segunda proposta e o conceito de interface de rede sNICh [Ram et al. 2010].
Originalmente, sNICh foi apresentado como uma proposta para uma nova arquitetura de
rede para ambientes virtualizados, onde a divis ao do plano de dados e feita de forma a
dividir as tarefas de encaminhamento entre o host e a interface de rede. Essa divis ao visa
garantir a eci encia do encaminhamento entre m aquinas virtuais no mesmo hospedeiro e a
rede. Por se apresentar como uma opc ao para o uso de switches de software como o Open
vSwitch, mantendo uma estrutura program avel, e possvel se imaginar que a interface
denida para essa arquitetura tamb em possa ser usada para o controle de roteamento a
partir de um m odulo de software como um controlador SDN.
Finalmente, h a tamb em propostas para novas implementac oes que alteram a di-
vis ao de tarefas entre controlador e os switches, como no caso da arquitetura Devo-
Flow [Mogul et al. 2010]. O argumento dos autores e que no padr ao OpenFlow tradicio-
nal, a necessidade de que todos os uxos sejam acessveis para o controlador SDN imp oe
demandas sobre o hardware e limitac oes de desempenho que podem n ao ser aceit aveis em
alguns casos, em particular para uxos de alto desempenho e que podem ser denidos por
regras simples. Dessa forma, DevoFlow reduz o n umero de casos em que o controlador
precisa ser acionado, aumentando a eci encia. Muitas das soluc oes propostas para essa
arquitetura, inclusive, podem ser aplicadas diretamente em implementac oes OpenFlow
tradicionais. Um exemplo disso e a adoc ao de regras especcas (sem o uso de coringas,
como todos os elementos de identicac ao do uxo instanciados para o uxo particular a
ser tratado) para cada uxo que seja identicado pelo controlador.
4. Particionamento de recursos (virtualizac ao)
Redes denidas por software, ao denirem uma forma exvel de se alterar a funcionali-
dade da rede, abriram espaco para que pesquisadores e desenvolvedores usassem a rede
como ambiente de testes. Entretanto, ao se conectar os elementos de comutac ao de uma
rede a um controlador unico, a capacidade de se desenvolver e instalar novas aplicac oes
na rede ca restrita ao respons avel por aquele controlador. Mesmo que o acesso a esse
elemento seja compartilhado entre diversos pesquisadores, ainda h a a quest ao da garantia
de n ao-interfer encia entre as diversas aplicac oes e a restric ao de que todos devem utilizar
a mesma interface, sem opc oes.
Para se resolver esse problema, surgiu a demanda pela capacidade de se poder
dividir a rede em fatias (slices) e atribuir cada fatia a um controlador diferente. Uma
forma de se fazer esse tipo de divis ao de recursos de rede em contextos usuais e atrav es
do uso de VLANs (redes locais virtuais), onde um cabecalho especial e usado para denir
que cada pacote pertenca a uma rede virtual particular. O uso de VLANs, entretanto, tem
suas pr oprias limitac oes e est a amarrado em sua denic ao ` a tecnologia Ethernet (ou IEEE
802.x). Essa amarrac ao torna complexo sua aplicac ao em contextos onde as fatias devem
se estender por mais de uma tecnologia de rede.
Considerando a analogia de que o controlador de SDN se assemelha a um sis-
tema operacional da rede, uma forma de se implementar fatias na rede seria lancando
m ao do princpio de virtualizac ao. Dessa forma, os recursos da rede seriam virtuali-
zados e apresentados de forma isolada para cada desenvolvedor que desejasse ter seu
pr oprio controlador sobre a rede. Como no caso da virtualizac ao de m aquinas fsicas, a
virtualizac ao tamb em pode ser implementada sobre a rede fsica em diversos nveis, por
exemplo, abaixo do controlador ou acima do mesmo, como nos casos de virtualizac ao do
hardware ou virtualizac ao do sistema operacional.
A primeira soluc ao a ganhar larga aplicac ao em SDNs foi a divis ao di-
reta dos recursos OpenFlow da rede fsica (virtualizac ao do hardware), atrav es do
FlowVisor [Sherwood et al. 2009, Sherwood et al. 2010]. Nessa soluc ao, o FlowVisor
opera como um controlador de rede respons avel apenas pela divis ao do espaco de
enderecamento disponvel na rede OpenFlow. Fatias da rede s ao denidas pela uni ao,
intersec ao e/ou diferenca de valores dos diversos campos disponveis para identicac ao
de uxos OpenFlow, conforme ilustrado na gura 5. A denic ao dessas fatias contituem
regras, as quais denem as polticas de processamento.
Figure 2: We present a monitoring program that graphically displays ows in real time in their respective network slice. Slices are
dened by union, intersection, and difference of 10 packet eldsthree of which are shown here.
aspects orthogonal. This allows each technology to evolve
independently, avoiding new forms of ossication.
We believe that our demonstration highlights these architectural
features.
3. DEMONSTRATION
To visualize our four experiments, we display a custom slice
monitoring tool running on a large screen (Figure 2). The tool
dynamically shows in real time the test-bed topology and color-
coded ows from each experiment . The monitoring tool displays
a simultaneous view of the entire physical network topology (Fig-
ure 2,bottom layer) and the virtual topology corresponding to each
slice.
We further demonstrate that FlowVisor has exible and ne-
grained network slices control. These slices can be recursively
delegated (Figure 1). In our demonstration, Bob delegates a net-
work slice to Alice, who in turn re-delegates it to the Bicast ex-
periment. Further, FlowVisor allows slices to be dened along
any combination of ten packet header elds (Figure 2), includ-
ing physical layer (switch ports), link layer (src/dst mac addresses,
ether type), network layer (src/dst IP address, IP protocol), and
transport layer (src/dst UDP/TCP ports). Additionally, FlowVisor
slices can be dened with negation (all packets but TCP packets
with dst port 80), unions (ethertype is ARP or IP dst address is
255.255.255.255), or intersections (netblock 192.168/16 and IP
protocol is TCP). We believe that such ne-grained slicing will be
a useful tool for network researchers and administrators alike.
The four slices (two wired and two wireless) are chosen to show
the diversity of experiments that FlowVisor supports, and will each
be running an isolated slice specically carved for its needs.
Learning Switch A controller that performs the standard MAC-
address learning switch algorithm. The learning switchs net-
work slice is dened as the default, that is, any ow that does
not belong to any other experiment is part of this slice. We
include the learning switch to demonstrate how research and
non-research trafc can safely co-exist.
Mobile VMs In this experiment, a virtual machine (VM) running a
latency-sensitive video game is migrated live between servers
while maintaining the same IP address. The server and video
game software remain unchanged; an OpenFlow controller
performs dynamic re-writing of the trafc so that connectiv-
ity is maintained. This experiments slice is dened as all
game trafc on a specic UDP port. This experiment won
the SIGCOMM 2008 Best Demo award [1].
Hard Handover mobility agent This OpenFlow controller man-
ages a pair of mobile laptops running at Stanford. We demon-
strate that with OpenFlow, it is possible to re-route ows dy-
namically and seamlessly hand-off between an 802.11 access
point and a WiMAX base station. Hard handovers network
slice is dened as the packets destined to the MAC addresses
of the mobile laptops. To visualize the effect of the handover,
we display a video streamed to the laptops.
Bicasting mobility agent Setup similarly to hard handover, this
controller manages the trafc for a second pair of mobile
laptops. In this experiment, we demonstrate the effect of
bi-casting, i.e., duplicating packets along two independent
links. To visualize the effects of bicasting, we display a video
streaming to the laptops.
4. REFERENCES
[1] D. Erickson et al. A demonstration of virtual machine
mobility in an OpenFlow network. In Proceedings of ACM
SIGCOMM (Demo), page 513, Seattle, WA, Aug. 2008.
[2] K. Greene. Special reports 10 emerging technologies 2009.
MIT Technology Review, 2009. http:
//www.technologyreview.com/biotech/22120/.
[3] N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado,
N. McKeown, and S. Shenker. NOX: Towards and operating
system for networks. In ACM SIGCOMM Computer
Communication Review, July 2008.
[4] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar,
L. Peterson, J. Rexford, S. Shenker, and J. Turner. OpenFlow:
enabling innovation in campus networks. ACM SIGCOMM
Computer Communication Review, 38(2):6974, April 2008.
Figura 5. FlowVisor: denic ao de fatias com base em tr es atributos de uxos. Na -
gura, o domnio bicasting handover corresponde a um conjunto denido por uma faixa
de enderec os MAC e uma faixa de enderec os IP; mobile VMs engloba todos os pacotes
com uma certa faixa de n umeros de porto, exceto se contidos na faixa de bicasting han-
dover; nalmente, hard handover engloba dois conjuntos com enderec os IP e MAC em
faixas, exceto nos casos em que os portos correspondem ` a faixa de moble VMs.
Uma inst ancia de FlowVisor se coloca entre os diversos controladores e os dis-
positivos fsicos. Comandos dos controladores s ao observados para se certicar que as
regras por eles geradas n ao excedam a denic ao do domnio daquele controlador na rede.
Se necess ario, elas s ao re-escritas para estender os padr oes utilizados com a denic ao do
domnio. Por outro lado, mensagens enviadas pelos switches OpenFlow s ao inspeciona-
das e direcionadas para o controlador OpenFlow apropriado em func ao do seu domnio
de origem. A gura 6 ilustra esse processo. Como um controlador, e possvel inclusive a
construc ao de hierarquias de FlowVisors, cada um dividindo uma sec ao de um domnio
denido por uma inst ancia de um nvel anterior.
Aplicao
A.1
Aplicao
C.1
Aplicao
B.1
Aplicao
A.2
Controlador A Controlador C Controlador B
Regras para o
domnio A
Regras para o
domnio C
Regras para o
domnio B
Polticas
de
diviso
Traduo
Demultiplexao
!"#$%&'#(
Switches OpenFlow
nsero
de regra
Packet n
Figura 6. FlowVisor: organizac ao do sistema e uxo de comandos. Um comando de
inserc ao de regra originado em uma aplicac ao do domnio A passa pelo FlowVisor, que
traduz a regra para garantir que ela se aplique apenas ao domnio de A. Um pacote enca-
minhado por um switch OpenFlow para o controlador e processado pelo demultiplexador
para identicar qual o controlador do nvel acima que e repons avel por aquela faixa dos
atributos de entrada.
Flowvisor, entretanto, e apenas uma das formas possveis de se dividir os recurso
fsicos de uma SDN. Tamb em e possvel dotar o controlador de recurso de particiona-
mento de recursos, apesar dessa soluc ao ser menos adotada at e o momento. Al em disso,
o conceito de virtualizac ao tamb em pode ser aplicado aos elementos de rede visveis para
as aplicac oes. Por exemplo, um controlador pode organizar certas portas de um con-
junto de portas espalhadas por diversos comutadores da rede fsica subjacente e oferecer
a vis ao para a aplicac ao SDN de um unico switch, onde as diversas portas estejam di-
retamente interligadas. Esse tipo de abstrac ao pode ser util, por exemplo, para oferecer
domnios de isolamento de tr afego (apenas as portas pertencentes a tal switch virtual es-
tariam no mesmo domnio de broadcast Ethernet, por exemplo. Esse tipo de aplicac ao de
virtualizac ao e previsto, por exemplo, para o controlador POX, apesar de ainda n ao estar
completamente implementado.
5. Controladores de rede
Nesta sec ao s ao descritos os principais controladores SDN que existem atualmente. Apre-
sentamos uma breve motivac ao por tr as de cada um deles, suas caractersticas principais
e, em alguns casos, exemplos simples de programac ao ou uma descric ao dos elementos
principais da API.
5.1. NOX
NOX e o controlador original OpenFlow e tem como principal func ao hoje o desenvolvi-
mento de controladores ecientes em C++. Ele opera sobre o conceito de uxos de dados.
Ele checa o primeiro pacote de cada uxo e procura na tabela de uxos para determinar
a poltica a ser aplicada. O controlador gerencia o conjunto de regras instaladas nos swit-
ches da rede reagindo a eventos de rede. Atualmente a maioria dos projetos de pesquisa na
area s ao baseados no NOX, que e um sistema operacional simples para redes e que prov e
primitivas para o gerenciamento de eventos bem como as func oes para a comunicac ao
com os switches [Gude et al. 2008].
NOX dene uma s erie de eventos:
packet in(switch; port; packet), acionado quando o switch envia um pacote rece-
bido por uma porta fsica para o controlador.
stats in(switch; xid; pattern; packets; bytes) acionado quando o switch retorna
os contadores de pacotes e bytes em resposta a um pedido pelas estatsticas as-
sociadas ` as regras contidas no padr ao pattern. O par ametro xid representa um
identicador para o pedido.
ow removed(switch; pattern; packets; bytes) acionado quando uma regra com
padr ao pattern supera o seu tempo limite e e removido da tabela de uxo do
switch. Os par ametros packets e bytes cont em os valores dos contadores para a
regra.
switch join(switch) acionado quando o switch entra na rede.
switch exit(switch) acionado quando o switch sai da rede.
port change(switch; port; up), acionado quando o enlace ligado a uma dada porta
fsica e ligado ou desligado. O par ametro up representa o novo status do enlace.
NOX tamb em prov e funcionalidades para enviar mensagens aos switches:
install (switch; pattern; priority; timeout; actions) insere uma regra com o dado
padr ao, prioridade, tempo limite e ac oes na tabela de uxos do switch.
uninstall (switch; pattern) remove a regra contida em padr ao da tabela de uxos
do switch.
send(switch; packet; action) envia o dado pacote para o switch e aplica a ac ao l a.
query stats(switch; pattern) gera umpedido para estatsticas de uma regra contida
no padr ao no switch e retorna um identicador de requisic ao xid que pode ser
usado para mapear uma resposta assncrona do swtich.
Figura 7. Topologia simples
O programa em execuc ao no controlador dene um manipulador para cada um
dos eventos construdos dentro do NOX, mas pode ser estruturado como um programa
arbitr ario. Exemplo: para ilustrar o uso de OpenFlow, considere um programa controlador
escrito em Python que implementa um hub repetidor simples. Suponha que a rede tem
um unico switch ligado a um conjunto de hosts internos no porto 1 e uma rede ampla no
porto 2, como mostrado na gura 7. O manipulador switch join abaixo invoca o repetidor
quando o switch se junta ` a rede. Afunc ao repetidor instala regras no switch que o instruem
a enviar pacotes da porta 1 para a porta 2 e vice-versa.
def switch_join(switch):
repeater(switch)
def repeater(switch):
pat1 = {in_port:1}
pat2 = {in_port:2}
install(switch,pat1,DEFAULT,None,[output(2)])
install(switch,pat2,DEFAULT,None,[output(1)])
Note que as duas chamadas para install usam o nvel de prioridade DEFAULT e
None como o tempo limite, indicando que as regras s ao permanentes.
NOX obteve uma grande aceitac ao entre os pesquisadores da area de SDN. A
exist encia de duas interfaces, C++ e Python, permite que o mesmo ambiente seja utilizado
em situac oes que exigem alto desempenho e em casos onde a capacidade de express ao
de Python agilizam o desenvolvimento e simplicam o c odigo resultante. Como ser a
discutido mais tarde, POX foi desenvolvido com base no modelo de NOX, mas com a
premissa de ser completamente escrito em Python, resultando em uma interface mais
elegante e simples dentro daquela linguagem. Os desenvolvedores de POX acreditam que
este seja adequado para substituir NOX nos casos em que Python e utilizado, enquanto
NOX ainda permanece como um ambiente adequado para implementac oes que tenham
demandas mais elevadas em termos de desempenho.
5.2. Trema
Trema [tre 2012] e uma implementac ao OpenFlow para desenvolvimento de controla-
dores usando as linguagens de programac ao Ruby e C. O escopo de Trema e ajudar os
desenvolvedores a criar facilmente seus pr oprios controladores OpenFlow. N ao tem com
o objetivo fornecer uma implementac ao especca de um controlador OpenFlow.
Controladores Trema OpenFlow s ao simples scripts escritos em Ruby.
E possvel
escrever seu pr oprio controlador adicionando manipuladores de mensagempara sua classe
controller. Com um arquivo de congurac ao e possvel descrever a topologia da rede na
qual o controlador e executado e pass a-lo para execuc ao pelo trema.
class MyController < Controller
# packet_in handler
def packet_in dpid, msg
send_flow_mod_add(
dpid,
:match => ExactMatch.from(msg),
:buffer_id => msg.buffer_id,
:actions => ActionOutput.new(msg.in_port+1)
)
end
end
Trema tem um emulador de rede OpenFlow integrado. N ao e preciso preparar
switches OpenFlowe hosts para testar aplicac oes de controlador. Oc odigo a seguir mostra
um exemplo de arquivo de congurac ao de rede que cria dois switches virtuais.
# network.conf
vswitch { dpid 0xabc }
vhost host1
vhost host2
link 0xabc, host1
link 0xabc, host2
A execuc ao e feita com a seguinte linha de comando:
./trema run mycontroller.rb -c network.conf
5.3. Maestro
Maestro e uma plataforma escal avel de controladores para switches OpenFlow em
Java [Cai et al. 2010].
Maestro e um sistema operacional de rede desenvolvido para orquestrar aplicac oes
de controle no modelo SDN. O sistema fornece interfaces para implementac ao modula-
res de aplicac oes de controladores de rede para acessar e modicar o estado da rede e
coordenar suas interac oes. O modelo de programac ao do Maestro fornece interfaces para:
Introduc ao de novas func oes de controle personalizadas, adicionando componen-
tes de controle modular.
Manutenc ao do estado da rede em nome dos componentes de controle.
Composic ao de componentes de controle, especicando a sequ encia de execuc ao
e o estado dos componentes da rede compartilhada.
Emparticular, Maestro j a inclui m odulos de descoberta de recursos fsicos da rede,
utilizado para contruir sua vis ao global da estrutura da rede, e m odulos para implementar
protocolos de roteamento usuais sobre essa estrutura.
Al em disso, Maestro tenta explorar o paralelismo dentro de uma unica m aquina
para melhorar o desempenho do sistema de transfer encia. A caracterstica fundamental
de uma rede OpenFlow e que o controlador e respons avel pela criac ao inicial de cada
uxo entrando em contato com switches relacionados. O desempenho do controlador
pode ser o gargalo. No projeto do Maestro tentou-se exigir o menor esforco possvel dos
programadores para conseguir gerenciar a paralelizac ao. Maestro lida com a maior parte
do trabalho tedioso e complicado de gerir distribuic ao de carga de trabalho e agendamento
de threads.
No Maestro, os programadores podem alterar a funcionalidade do plano de con-
trole escrevendo programas single-threaded. Maestro incorpora um conjunto de mode-
los e t ecnicas que abordam a especicac ao de requisitos do OpenFlow e explora parale-
lismo em nome dos programadores. Para maximizar o rendimento do sistema, a carga
de trabalho tem de ser uniformemente distribuda entre as threads em Maestro, de modo
que nenhum n ucleo do processamento que ocioso, enquanto h a trabalho a fazer. Isto e
alcancado fazendo com que todas as threads compartilhem a la de tarefas de pacotes. O
projeto
5.4. Beacon
Beacon e outro controlador baseado em Java que suporta tanto a operac ao baseada em
eventos quanto em threads [bea 2012].
O projeto vem sendo desenvolvido j a h a um ano e meio, sendo considerado
est avel. Seu registro de operac ao inclui a ger encia de uma rede com 100 switches virtuais,
20 switches fsicos em um datacenter experimental. O sistema tem uma estrutura modular
que permite que o controlador seja atualizadom em tempo de execuc ao sem interromper
outras atividades de encaminhamento de pacotes. O pacote opcionalmente incorpora o
servidor web Jetty e um arcabouco extensvel para o desenvolvimento de interfaces de
usu ario personalizadas.
5.5. FML
A linguagem FML (Flow Management Language) e uma linguagem declarativa de alto
nvel que permite especicar polticas de ger encia e seguranca em redes OpenFlow. FML
foi desenvolvida para substituir os mecanismos tradicionais de congurac ao de redes para
reforcar as polticas dentro das redes de empresas [Hinrichs et al. 2009]. A linguagem e
simples e pode ser usada para expressar muitas congurac oes comuns usadas em redes
atualmente. FML foi projetado para admitir uma implementac ao eciente, adequada para
grandes redes corporativas.
FML opera sobre uxos unidirecionais. Isso signica que a poltica resultante a
aplicada igualmente em todos os pacotes dentro do mesmo uxo, e polticas podem ser
construdas que tratam cada uxo diferentemente.
O sistema resultante permite a especicac ao de alto nvel de v arias tarefas de
gerenciamento de forma resumida e estruturada, liberando os administradores de rede
do trabalho penoso de congurar regras de controle de acesso em roteadores, rewalls,
servidores de NAT e VLANs para alcancar polticas de uso de rede simples. A natureza
declarativa da FML permite que os administradores se concentrem sobre a poltica de
decis oes, em vez de detalhes de implementac ao.
Uma poltica FML e um conjunto de regras n ao-recursivas. Por exemplo, as tr es
armac oes seguintes dizem que Todd e Michelle s ao superusu arios e um superusu ario n ao
tem restric oes de comunicac ao.
allow(Us;Hs;As;Ut;Ht;At;Prot;Req) <= superuser(Us)
superuser(Todd)
superuser(Michelle)
Os argumentos para allow s ao smbolos que correspondem a oito campos de um
uxo dentro do sistema. S ao eles: usu ario, host e ponto de acesso fonte (U
s
; H
s
; A
s
),
usu ario, host e ponto de acesso alvo (U
t
; H
t
; A
t
;), protocolo (Prot) e se o uxo e uma
requisic ao (Req).
Al em de allow , h a outras palavras chaves para o controle de acesso, como deny,
waypoint, avoid e ratelimit.
Para qualidade de servicos, FML possui tr es palavras chaves latency, jitter, band
que podem ser usadas para congurar diferentes requisitos para diferentes uxos.
FML tamb em permite a inclus ao de refer encia a fontes externas, como consultas
SQL em uma base de dados ou procedimentos remotos .
5.6. Frenetic
Frenetic e um sistema baseado em linguagem funcional desenvolvido para programar re-
des OpenFlow [Foster et al. 2010]. Frenetic permite que o operador da rede, ao inv es de
manualmente congurar cada equipamento da rede, programe a rede como um todo. Fre-
netic e implementado sobre NOX, em Python, e foi projetada para resolver problemas de
programac ao com o OpenFlow/NOX. Frenetic introduz abstrac oes funcionais para permi-
tir programas modulares e a composic ao desses programas.
Frenetic e composto de duas sublinguagens integradas: uma linguagem declara-
tiva de consultas para classicar e agregar tr afego da rede e uma biblioteca reativa funci-
onal para descrever polticas de envio de pacotes em alto nvel.
Figura 8. Sintaxe de Consulta do Frenetic
A gura 8 mostra a sintaxe das consultas em Frenetic. Cada cl ausula e opcional,
exceto Select, no qual identica qual o tipo de evento retornado pela consulta: evento
contendo pacotes, contador de bytes ou contador de pacotes. O operador e usado para
combinar cl ausulas.
A cl ausula Select(a) agrega os resultados retornados pela consulta a. A cl ausula
where(fp) ltra os resultados, mantendo apenas aqueles pacotes que satisfazem o l-
tro de padr ao fp. Os padr oes de consultam podem usar os campo de cabecalho como
porta (inport), endereco MAC de origem (srcmac), endereco MAC de destino (dstmac),
entre outros. Filtro de padr oes mais complicados podem ser construdos usando ope-
radores de conjunto como intersec ao (and fp), uni ao (or fp),diferenca (diff fp) e com-
plemento(not fp). Cl ausulas GroupBy([qh1,...,qhn]) subdividem o conjunto de paco-
tes consultados em subconjuntos baseado nos campos de cabecalhos qh. Cl ausulas
Every(n)particionam os pacotes por tempo, agrupando pacotes que estejam na mesma
janela de tempo. Finalmente, cl ausulas Limit(n) limintam o n umero de pacotes em cada
subconjunto.
Abaixo temos um exemplo de consulta utilizando Frenetic:
def web_query():
return \
(Select(sizes)
*
Where(inport_fp(2) & srcport_fp(80)))
*
Every(30))
A consulta seleciona os pacotes que chegam na porta fsica 2 e da porta de origem
TCP 80. Ela soma o tamanho de todos esses pacotes a cada 30 segundos e retorna um
evento com o resultado.
5.7. Onix
Onix e um controlador desenvolvido em parceria pela Nicira, Google e NEC,
com o objetivo de permitir o controle de redes de grandes dimens oes de forma
con avel [Koponen et al. 2010]. Para garantir a escalabilidade e conabilidade do sis-
tema, Onix prov e abstrac oes para particionar e distribuir o estado da rede em m ultiplos
controladores distribudos, enderecando as quest oes de escalabilidade e toler ancia a falha
que surgem quando um controlador centralizado e utilizado.
A vis ao global da rede e mantida atrav es de uma estrutura de dados denominada
NIB (Network Information Base), que representa um grafo com todas as entidades presen-
tes na rede fsica. A NIB e o centro do sistema e a base para o modelo de distribuic ao de
Onix. Aplicac oes de controle da rede s ao implementadas atrav es de operac oes de leitura
e atualizac ao do estado da NIB; escalabilidade resili encia s ao obtidos particionando-se e
replicando-se a NIB entre os servidores do sistema. A consist encia das atualizac oes sobre
a base distribuda e controlada pela aplicac ao e utiliza dois reposit orios com compro-
missos diferentes entre os as garantias de resili encia e desempenho (uma base de dados
transacional replicada e uma DHT baseada em mem oria). Para garantir a escalabilidade,
Onix prev e a organizac ao da NIB em estruturas hier arquicas, com concentradores e dife-
rentes nveis de detalhes para os recursos do sistema.
Os resultados apresentados atestam o bom desempenho do sistema e o artigo dis-
cute em algum detalhe os compromissos adotados com relac ao ` a escalabilidade e re-
sili encia do sistema. O sistema resultante, conforme descrito, sugere um grande cui-
dado com a funcionalidade e uma estrutura complexa que atende aos requisitos de projeto
apresentados. Entretanto, Onix e, pelo menos at e o momento, um produto fechado, pro-
priet ario.
5.8. Click
O roteador modular Click [Kohler et al. 2000] e um projeto que expressou o objetivo
de permitir que equipamentos de rede fossem program aveis bem antes do advento de
redes denidas por software. Sendo considerado um dos projetos que inuenciaram a
denic ao de OpenFlow. O roteador Click enfatiza a modularidade, permitindo que pes-
quisadores criem m odulos de processamento de pacotes customizados. Entretanto, Click
foca exclusivamente em switches de software (implementado como m odulo do kernel
do Linux). J a existe uma interface do OpenFlow para o Click, o elemento OpenFlow-
Click [Mundada et al. 2009]. Esse elemento permite o contralador instalar regras para
fazer pacotes atravessarem diferentes elementos. O OpenFlowClick permite um contro-
lador central controlar v arios roteadores Click ao mesmo tempo. Esta interface tem o
potencial para novas possibilidades de aplicac oes de processamento de tr afego, como eli-
minar pacotes duplicados ou detecc ao de anomalias via inspec ao peri odica de pacotes.
5.9. Floodlight
Floodlight [o 2012] e um controlador OpenFlow para redes corporativas baseado total-
mente na linguagemJava e distribudo segundo a licenca Apache. Oprojeto se originou do
controlador Beacon e agora e apoiado por uma comunidade de desenvolvedores e tamb em
pela Big Switch Networks, start-up que produz controladores comerciais que suportam o
Floodlight. O n ucleo e m odulos principais s ao escritos em Java. Recentemente adicio-
naram Jython, o que permite desenvolvimento na linguagem Python. Em sua arquitetura,
todos os elementos s ao m odulos e m odulos exportam servicos. Toda a comunicac ao en-
tre m odulos e feita atrav es de servicos. A interface ItopologyService permite descobrir a
topologia da rede automaticamente. Permite integrar com redes n ao openow e e com-
patvel com a ferramenta de simulac ao Mininet [Lantz et al. 2010].
5.10. SNAC
Simple Network Access Control(SNAC) [sna 2012] e um controlador OpenFlow no qual
se utiliza uma interface web para monitorar a rede. Ele incorpora uma linguagem de
denic ao de polticas exvel que permite realizar buscas utilizando padr oes de alto nvel
para especicar polticas de controle de acesso. SNAC tamb em prov e uma ferramenta
de monitamento gr aco, mas n ao e um ambiente de programac ao gen erica, como outros
controladores discutidos aqui.
5.11. NEC Programmable Flow
Na parte de produtos comerciais, temos a famlia de produtos do NEC Programmable
Flow [nec 2012]. A famlia prov e tanto componentes de software como tamb em de hard-
ware. Em software, temos o ProgrammableFlow Management Console, que e uma ferra-
menta para monitoramento que prov e um ponto de controle centralizado. Em hardware,
temos o controlador ProgrammableFlowController que permite virtualizac ao em nvel de
rede e e util, por exemplo, para data center pois permite monitorar e controlar redes com
v arios nveis de ger encia. Dentre os switches, podemos citar o PF5420 e o PF5820 que
s ao compatveis com OpenFlow e reduzem o custo de operac ao da rede j a que n ao preci-
samexecutar algoritmos dsitribudos tradicionais como arvor e geradora, j a que funcionam
com um controlador centralizado.
5.12. Mininet
Apesar de n ao se tratar de um controlador propriamente dito, na parte de emuladores
e simuladores, e importante mencionar o Mininet [Lantz et al. 2010], uma ferramenta
de simulac ao de Redes Denidas por Software.
E um sistema que permite a r apida
prototipac ao de grandes redes utilizando apenas um computador. Mininet cria Redes
Denidas por Software escal aveis utilizando primitivas de virtualizac ao do Sistema Ope-
racional, como processos e namespaces de rede. Com essa primitivas, ele permite rapida-
mente criar, interagir e customizar prot otipos de Redes Denidas por Software.
6. Aplicac oes
Pela exibilidade que Redes Denidas por Software oferecem para a estruturac ao de sis-
temas em rede, o princpio estruturador oferecido por esse paradigma pode ser util em
praticamente todas as areas de aplicac ao de Redes de Computadores. A estruturac ao da
rede com comutadores program aveis e uma vis ao (l ogica) centralizada da rede podem ser
de grande valia no desenvolvimento de novas funcionalidades em um grande n umero de
ambientes. Nesta sec ao, discutimos primeiramente os principais contextos j a identica-
dos que podem se beneciar da aplicac ao de SDN. Em seguida, identicamos alguns dos
principais projetos de pesquisa em andamento que se valem do paradigma para avancar a
fronteira do conhecimento em suas areas, no Brasil e no mundo.
6.1. Contextos de aplicac ao
Se considerarmos que SDN dene uma nova forma de estrutura um sistema em rede,
podemos considerar que ela seja aplic avel a qualquer tipo de aplicac oa de Redes de Com-
putadores que possa se benecar de um maior grau de organizac ao das funcionalidades
oferecidas em torno de uma vis ao completa da rede. Entretanto, alguns domnios de
aplicac ao j a foram identicados e v em sendo tratados por diferentes projetos de pesquisa.
Controle de acesso
Pela natureza da interface de programac ao de OpenFlow, onde o tratamento e denido
pelos padr oes que identicam uxos, a sua aplicac ao ao problema de controle de acesso e
bastante direta. A vis ao global da rede oferecida pelo controlador SDN permite que regras
de acesso sejam desenvolvidas com base em informac oes abrangentes e n ao apenas o que
seria possvel com o uso de um rewall em um enlace especco da rede. De fato, como
mencionado anteriormente, um dos projetos precursores de OpenFlow foi exatamente
Ethane, um sistema de controle de acesso distribudo, baseado no conceito de uma vis ao
global das polticas de controle e do estado da rede [Casado et al. 2009].
O poder de express ao disponvel ao se adotar uma vis ao global permite a
implementac ao de regras que levem em conta n ao apenas tipos de protocolo e pontos
de origem/destino, mas a relac ao entre estes e a identidade do usu ario de forma simples.
Al em disso, a facilidade de se denir qual rota adotar para cada uxo viabiliza inclusive a
utilizac ao de ltros especiais de tr afego (middle-boxes), como dispositivos de inspec ao de
pacotes (DPI) e proxies. Um exemplo do que pode ser feito nesse caso e o sistema SpSb,
um honeypot de alta interatividade que est a sendo desenvolvido no DCC/UFMG para
o estudo do comportamento de bots, especialmente aqueles usados para a distribuic ao
de spam [Silva et al. 2011]. Uma m aquina e interposta entre o computador infectado e
o restante da Internet com um comutador Open vSwitch e um controlador POX. Cada
uxo iniciado pela m aquina infectada e inspecionado pelo controlador, que pode decidir
entre bloque a-lo, permitir sua passagem para o restante da rede ou redirecion a-lo para
um conjunto se servidores desenvolvidos para emular servicos importantes que permi-
tam ao sistema controlar o comportamento do bot. Por exemplo, um servidor de DNS
especialmente congurado pode ser programado para registrar as consultas efetuadas e
redirecionar acessos quando necess ario. Um tipo de acesso que seria sempre redirecio-
nado seria qualquer tentativa de contato a um servidor de correio eletr onico por SMTP,
que seria enviado para um servidor especialmente congurado para emular qualquer ser-
vidor de correio e armazenar as mensagens recebidas, sem entretanto repass a-las para o
restante da rede.
Ger encia de Redes
Um dos argumentos sempre utilizados com relac ao a SDNs e qe a vis ao global da rede
simplica as ac oes de congurac ao e ger encia de rede, enquanto os contadores associados
aos uxos permitem uma monitorac ao clara dos uxos de interesse. Entretanto, ainda n ao
est a claro como essas funcionalidades podem ser melhor integradas a pr aticas de ger encia
habituais. Uma forma de integrac ao interessante e certamente a integrac ao direta de swit-
ches OpenFlow a sistemas de ger encia tradicionais, como os que utilizam o protocolos
SNMP [Farias et al. 2011].
Outros projetos, como OMNI [Mattos et al. 2011], oferecem opc oes para simpli-
car o processo de administrac ao de redes OpenFlow pela inclus ao de uma interface de
controle baseada em uma arquitetura orientada servicos. Al em disso, OMNI inclui uma
plataforma orientada a agentes para simlicar a express ao de comportamentos que devem
ser monitorados e sobre os quais o sistema deve atuar.
Tamb em utilizando uma arquitetura multi-agentes, pesquisadores da UFAM t em
estudado a integrac ao de t ecnicas de Intelig encia Articial a redes denidas por soft-
ware. A vis ao global da rede provida pelos controladores oferece um ponto focal so-
bre o qual t ecnicas de detecc ao de anomalias ou padr oes frequentes podem ser apli-
cadas para se detectar diversos tipos de comportamento, como ataque de negac ao de
servico [Braga et al. 2010].
Redes domiciliares
Redes dom esticas t em sido apontadas como um dos grandes desaos para a ind ustria de
redes, especialmente no que se refere a dotar o usu ario dessas redes de recursos ecientes
para sua ger encia e congurac ao [Dixon et al. 2010]. Vencer esse desao exigir a tanto o
investimento emsoluc oes para os problemas de interac ao dos usu arios comos dispositivos
de rede, quanto em novas soluc oes para automac ao de congurac ao e implementac ao de
polticas de seguranca para o lar.
Uma forma de aplicar os princpios de SDN nesse contexto e utilizar um roteador
dom estico com recursos OpenFlow e transferir para o provedor de acesso a responsabi-
lidade de controlar a rede atrav es de um controlador SDN. Dessa forma, esse sistema
operacinal de rede seria capaz de programar cada roteador dom estico com as regras de
acesso apropriadas para cada usu ario e ter uma vis ao global de todo o tr afego que atra-
vessa o enlace de acesso a cada resid encia, construindo dessa forma uma vis ao agregada
do que pode ser considerado tr afego lcito e quais padr oes de tr afego podem indicar a
ac ao de atacantes ou c odigo malicioso. Esse enfoque tem sido adotado por pesquisadores
da Georgia Tech [Feamster 2010, Calvert et al. 2011].
Por outro lado, outra soluc ao interessante pode ser a implementac ao de um contro-
lador de rede interno ` a rede dom estica. Essa soluc ao se torna atraente especialmente frente
ao aumento da complexidade dessas redes, que contam hoje com um n umero crescente
de dispositivos ativos, como smartphones e consoles de jogos, al em dos computadores
usuais, al em de poderem contar hoje com mais de um elemento de comutac ao, tanto para
enlaces cabeados quanto para enlaces sem o. Um controlador dom estico poderia acom-
panhar todo o tr afego interno da rede, potencialmente tornando mais simples a detecc ao
de m aquinas comprometidas por malware (cujo tr afego de disseminac ao seria mais facil-
mente identicdo contra o padr ao usual do tr afego do lar) e a congurac ao de servicos da
rede, como impressoras e novos dispositivos de acesso.
Ger encia de energia
O interesse em soluc oes que conservem energia em sistemas de computac ao vem cres-
cendo. Em ambientes corporativos e grandes datacenters, onde os recursos de rede as-
sumem dimens oes signicativas, reduzir o consumo de energia consumida pelo meio de
comunicac ao se torna uma possibilidade interessante. Ac oes como a reduc ao da taxa de
transmiss ao de enlaces sub-utilizados ou seu desligamento completo (e de dispositivos de
rede, da mesma forma) se tornam vi aveis a partir do momento em que uma rede denida
por software oferece uma vis ao global do estado da rede, que simplica a identicac ao
desses elementos ociosos e mesmo a redenic ao de rotas a m de desviar tr afego de
elementos passveis de desligamento. Al em disso, o controle das rotas e decis oes de en-
caminhamento permite a implantac ao de pontos de controle (proxies) que interceptem
tr afego ruidoso na rede, evitando que pacotes de menor import ancia atinjam m aquinas
que podem operar em um modelo de wake-on-lan, evitando que as mesmas sejam ativadas
desnecessariamente.
Comutador virtual distribudo
Ambientes virtualizados, comuns hoje em redes corporativas e grandes datacenters, usu-
almente implicam no uso de switches implementadas por software no hypervisor insta-
lado em cada m aquina fsica a m de prover a conectividade exigida por cada m aquina
virtual (VM). Um exemplo de tal switch e o Open vSwitch, discutido anteriormente. A
facilidade de se mover as m aquinas virtuais entre os hospedeiros fsicos, um recurso bas-
tante valorizado nesses ambiente, torna o processo de congurac ao e monitorac ao dessas
m aquinas um desao que complica a ger encia dos switches virtuais. Uma forma de re-
duzir essa complexidade seria oferecer a vis ao de um switch unico, virtual, ao qual todas
as VMs estariam conectadas. Dessa forma, migrac oes de VMs teriam impacto mnimo
nas congurac oes da rede virtual, uma vez que elas continuariam ligadas a uma porta
do unico switch visvel para a rede. Essa abstrac ao pode ser facilmente implementada
atrav es de um controlador de rede, j a que ele pode inserir automaticamente as regras de
encaminhamento de tr afego entre as portas dos diversos switches de software para criar
o efeito desejado. Com o uso de switches fsicos que tamb em implementem o protocolo
OpenFlow, mesmo m aquinas fsicas n ao virtualizadas podem fazer parte dessa rede.
Roteador expansvel de alta capacidade
Grandes datacenters e as bordas das redes de acesso de grandes provedores, bem como
das suas redes de longa dist ancia, possuem demandas de conectividade elevadas. Nesses
casos, usualmente um roteador de grande porte e usualmente a unica soluc ao vi avel, a um
custo bastante elevado. Utilizando-se uma rede denida por software, pode ser possvel
substituir esse roteador de grande porte por um banco de switches de porte m edio, como
as utilizadas internamente em um cluster, desde que dotadas de interfaces OpenFlow. De
forma semelhante ao que ocorre no caso do comutador virtual distribudo, um controla-
dor SDN pode preencher as tabelas de roteamento de cada switch com as rotas necess arias
para interligar o tr afego entre duas portas de switches diferentes que sejam vistas como
fazendo parte do mesmo roteador. Uma malha de interconex ao do tipo fat-tree garantiria
uma banda de interconex ao suciente entre os comutadores, de forma que o controlador
n ao teria que lidar com gargalos inesperados entre portas do roteador. As informac oes de
roteamento seriam distribudas entre os switches em func ao das demandas identicadas
pelo controlador. Os algoritmos de roteamento necess arios ao funcionamento do roteador
poderiam ser executados tamb em pelo controlador, que se encarregaria de manter a inter-
face com os demais roteadores com os quais o roteador virtual tenha que se comunicar.
Datacenters multi-usu arios
Em ambientes onde aplicac os de v arios usu arios necessitem coexistir, como em data-
centers p ublicos (multi-tenant), uma demanda sempre presente e o isolamento de tr afego
entre os diversos usu arios. Uma forma de se obter esse isolamento com dispositivos atuais
e atrav es da congurac ao de VLANs individuais para cada cliente. Assim, tr afego de cada
usu ario e transportado apenas dentro da sua VLAN, garantindo o isolamento necess ario
para ns de seguranca e privacidade. Entretanto, o recurso de VLANs e limitado pelo
tamanho dos campos usados para identic a-las, tornando invi avel sua utilizac ao quando
o n umero de usu arios da rede cresce. Al em disso, as interfaces de congurac ao desse tipo
de soluc ao tendem a ser limitadas, tornando a ger encia de congurac ao desse tipo de rede
uma tarefa bastante complexa. A soluc ao para esse problema pode ser construda dire-
tamente sobre a abstrac ao do comutador virtual distribudo mencionado anteriormente: a
cada usu ario e fornecido um switch virtual que interliga suas m aquinas, independente da
localizac ao das mesmas na rede fsica. O controlador de rede e respons avel por denir as
rotas entre as portas dos diversos comutadores que comp oem o comutador virtual e por
garantir a alocac ao de recursos sucientes em cada caso. Como cada cliente e conectado
a um switch diferente, o isolamento de tr afego e obtido diretamente pela implementac ao.
Al em de garantir o isolamento de tr afego de forma ecaz, essa soluc ao tem a van-
tagem de permitir que se ofereca a cada usu ario o controle direto de sua rede. Quaisquer
congurac oes que estejam disponveis para o switch virtual podem ser controladas pelo
usu ario que controla a rede, uma vez que a mesma est a isolada das demais. Soluc oes como
balanceamento de carga, estabelecimento de nveis de qualidade de servico e redund ancia
de rotas podem ser colocadas sob o controle do usu ario, desde que o controlador de rede
garanta sua implementac ao no nvel do switch virtual distribudo.
6.2. Alguns projetos de pesquisa
Pela caracterstica recente do tema, diversos projetos de pesquisa ainda focam o desenvol-
vimento de controladores de rede que preencham as caractersticas de um sistema opera-
cional de rede, na denic ao de SDN. Esses projetos j a foram discutidos na sec ao 5. Aqui
discutimos projetos principalmente focados em aplicac oes do paradigma em alguns dos
contextos mencionados anteriormente. Diversos s ao os que abordam problemas que afe-
tam um ou mais domnios mencionados anteriormente. A lista a seguir n ao tem a intenc ao
de ser exaustiva, dado o n umero de iniciativas, mas pretende ilustrar alguns desses proje-
tos.
Ripcord
O datacenter foi identicado rapidamente como um dos principais contextos onde SDN
poderia ser aplicado com sucesso. Isso pode ser observado na identicac ao de aplicac oes
como o comutador virtual distribudo e o ambiente multi-usu ario. Um ponto importante
dos datacenters hoje e a demanda por novas topologias de rede que permitama construc ao
de infraestruturas de comunicac ao eciente e robustas. Nesse contexto, Ripcord foi con-
cebido como um sistema que aplicaria os conceitos de SDN na construc ao de um sistema
de rede que pudesse ser congurado para diferentes topologias e diferentes soluc oes de ro-
teamento, a m de permitir a escolha da soluc ao mais adequada para diferentes condic oes
de contorno [Heller et al. 2010a, Casado et al. 2010a].
Al em das caractersticas de modularidade, escalabilidade e operac ao com
m ultiplos usu arios, Ripcord tamb em tinha como metas denir um mecanismo de
migrac ao de VMs de forma transparente e com recursos de balanceamento de carga para o
tr afego de rede. O prot otipo desenvolvido foi implementado sobre o NOX, com diferentes
m odulos para implementar cada func ao identicada como essencial ` a sua operac ao. Entre
os m odulos (engines) principais, destaca-se o de topologia, que mant em a vis ao da rede
fsica, o de aplicac ao, que controla a vis ao de cada usu ario (tenant) sobre a rede, e o de
roteamento, que implementa o mecanismo de roteamento com balanceamento de carga
escolhida. O sistema foi testado com tr es polticas de roteamento com diferentes graus de
complexidade e apresentou bom desempenho.
RouteFlow
No contexto de redes de longa dist ancia, a implementac ao de protocolos de roteamento
e uma preocupac ao frequente. Uma rede denida por software que pretenda operar de
maneira eciente com outras redes a seu redor deve implementar polticas de roteamento
bem denidas e, mais que isso, deve ser capaz de trocar informac oes sobre suas rotas
com elementos vizinhos. RouteFlow oferece uma soluc ao distribuda para que se possa
aplicar protocolos de roteamento bem denidos sobre uma rede denida por software,
permitindo a implantac ao imediata de protocolos de roteamento j a denidos e ofere-
cendo um arcabouco extensvel sobre o qual novos protocolos podem ser implementa-
dos [Nascimento et al. 2011].
RouteFlow executa como uma aplicac ao sobre NOX que controla a comunicac ao
com os comutadores OpenFlow da rede e o servidor RouteFlow, que mant em a vis ao
das rotas na rede. Os protocolos de roteamento propriamente ditos s ao executados por
m aquinas virtuais que executam vers oes do(s) protocolo(s) de roteamento escolhido(s)
em um ambiente virtualizado. Essas vers oes dos protocolos s ao obtidos normalmente
do Quagga routing engine. Cada roteador denido na vis ao de rede denida executa
como uma m aquina virtual, trocando mensagens dentro do ambiente virtualizado com os
demais roteadores da rede, de acordo com o protocolo escolhido. Se a especicac ao da
rede prev e a exist encia de roteadores adicionais que n ao fazem parte da rede denida por
software, as mensagens dos protocolos de roteamento que devem ser trocadas entre os
roteadores virtualizados e esse roteadores reais s ao injetadas e retiradas da rede atrav es
dos comutadores OpenFlow.
Elastic Tree
Com foco na quest ao de ger encia (e economia) de energia, o objetivo de Elastic Tree
e controlar a topologia da rede fsica de um datacenter para reduzir o consumo devido
a canais sub-utilizados [Heller et al. 2010b]. O princpio de operac ao nesse caso e que,
em situac oes de carga reduzida, o nvel de replicac ao de recursos encontrado em uma
rede de datacenter bem provisionada pode levar a um consumo de energia desnecess ario.
Em uma topologia fat-tree, por exemplo, h a diversos nveis de switches interligando os
servidores da rede; o n umero de enlaces e switches a cada nvel e denido de forma
que haja diversas rotas entre cada par de servidores, a m de evitar gargalos na rede.
Em condic oes de carga baixa, entretanto, muitos desses caminhos redundantes se tornam
desnecess arios e poderiam ser removidos para reduzir o consumo de energia.
Elastic Tree monitora continuamente o tr afego da rede e decide, com base nos
objetivos de economia de energia e disponibilidade expressos pelo administrador, quais
enlaces e switches precisam permanecer ativos e quais podem ser desligados. A vis ao
global do tr afego e da topologia s ao providos pelo controlador SDN adotado (NOX, no
prot otipo implementado). Diversos algoritmos de otimizac ao foram implementados para
oferecer diferents polticas de controle, reetindo diferentes compromissos entre econo-
mia e disponibilidade. Em casos onde o padr ao de tr afego se limitava em sua maioria
a servidores pr oximos na topologia, a energia consumida chegava a ser apenas 40% da
energia consumida com a topologia original, sem controle. Os ganhos se reduzem caso o
padr ao de tr afego exija a comunicac ao entre servidores distantes na topologia (exigindo
maior conectividade nos nveis superiores da hiearquia de switches), mas s ao ainda signi-
cativos para uma ampla gama de valores.
Gatekeeper-ng
Ainda no contexto de redes para datacenters, um outro aspecto que tem recebido grande
atenc ao e a quest ao de se estabelecer garantias de alocac ao de tr afego para diferents
usu arios com suas aplicac oes. Gatekeeper e uma soluc ao proposta para esse m que
se baseia em uma vis ao abstrata onde cada usu ario receberia garantias equivalentes ` as
providas caso sua aplicac ao executasse em um conjunto de m aquinas conectadas por
um switch privativo, sem compartilhamento com outras aplicac oes. As garantias de de-
sempenho seriam determinadas pela banda alocada para o enlace de conex ao de cada
m aquina, que poderia ser escolhida pelo usu ario em um modelo com custos associa-
dos [Rodrigues et al. 2011, Rodrigues et al. 2011].
A abstrac ao oferecida por Gatekeeper se encaixa precisamente ao modelo de co-
mutador virtual distribudo discutido anteriormente. Considerando-se que o ambiente
alvo do sistema s ao datacenters virtualizados, onde a conex ao de cada m aquina virtual ` a
rede se d a atrav es de switches de software (Open vSwitch), a extens ao do modelo para uti-
lizar uma rede denida por software que realmente implemente a abstrac ao de um switch
virtual distribudo pode ser feita de forma simples [Pettit et al. 2010]. Al em disso, ao se
integrar esse modelo ao ambiente Open Stack, que tamb em se baseia na noc ao de uma
rede privada assinalada para cada usu ario [ope 2012], o processo de congurac ao, disparo
de m aquinas virtuais e recongurac ao no caso de migrac ao de VMs pode ser totalmente
integrado, dando origem ao ambiente Gatekeeper-ng, atualmente em desenvolvimento.
POX at Home
Esse projeto aborda o desenvolvimento de uma aplicac ao SDN para ger encia de redes
dom esticas. Inicialmente denominado NOX at home, foi recentemente adaptado para
utilizar o controlador POX. O princpio por tr as do projeto e que, dadas as velocidades de
acesso disponveis para usu arios residenciais, a capacidade de processamento disponvel
em roteadores dom esticos e suciente para inspecionar cada uxo que atravessa o enlace
de acesso.
A aplicac ao POX nesse caso implementa um analisador de protocolos que acom-
panha cada novo uxo observado na rede local e reconstr oi o uxo de aplicac ao para
protocolos identicados como relevantes, como SMTP, HTTP e DNS. Essa reconstruc ao
continua at e que o controlador tenha informac ao suciente para se avaliar a conformi-
dade do tr afego em relac ao a um conjunto de regras de acesso e aplicar um algoritmo de
detecc ao de anomalias para determinar a natureza do tr afego [Mehdi et al. 2011]. Nesse
momento, uma regra e emitida para incluir uma rota direta para o restante do uxo, ou
para descart a-lo, caso seja julgado inadequado. H a tamb em a possibilidade de se con-
gurar a travessia de um middle-box caso algum tipo de p os-processamento do uxo seja
necess ario
7. Desenvolvimento de sistemas utilizando POX
POX vem sendo desenvolvido como um sucessor natural de NOX para iniciativas de pes-
quisa e ensido. O objetivo dos desenvolvedores e que ele venha a substituir NOX nos
casos onde desempenho n ao seja um requisito crtico essencialmente, nos casos onde a
interface Python e utilizada. Nesse aspecto, POX traz uma interface mais moderna e uma
pilha SDN mais elegante, al em de oferecer melhor desempenho que NOX com Python,
como pode ser visto na gura 9.
Figura 9. Comparac ao de desempenho entre POX e NOX, com suas duas in-
terfaces (C++ e Python). Figura publicada por Murphy McCauley no site
http://www.noxrepo.org/2012/03/introducing-pox/.
NOX e outros controladores de primeira gerac ao s ao construdos ao redor do con-
ceito de mensagens OpenFlow como primitivas b asicas. Assim sendo, as aplicac oes ser
organizam ao redor de ciclos de recebimento/tratamento/gerac ao de mensagens. POX est a
sendo organizado ao redor da noc ao de vis ao global da rede: aplicac oes n ao necessitar ao
necessariamente receber e enviar mensagens diretamente, mas poder ao consultar a vis ao
corrente da rede e atuar diretamente sobre ela para obter seus objetivos (os recursos para
esse m ainda est ao em desenvolvimento). Outros elementos que fazem parte do contexto
de projeto de POX incluem a previs ao de recursos para a distribuic ao dessa vis ao global
e para a depurac ao de aplicac oes desenvolvidas sobre essa vis ao.
7.1. Instalac ao e execuc ao
POX
1
exige Python 2.7 (ou superior) para executar. Ele deve ser compatvel com Python
3.x, mas nenhuma vericac ao cuidadosa foi feita a esse respeito. N ao h a registro de
elementos que sejam especcos de uma plataforma particular e ele pode ser executado
no Linux, Mac OS ou Windows. Para um melhor desempenho, recomenda-se o uso da
implementac ao no ambiente PyPy
2
.
Obtenc ao do c odigo
Originalmente, POX era distribudo o controle de vers ao Mercurial (hg), mas no momento
da escrita deste material ele estava sendo movido para o controlador Git e deve ser em
breve disponibilizado no GitHub
3
.
Incio da execuc ao e o mecanismo launch()
POX e iniciado ao se executar o m odulo pox.py. Ele recebe como argumentos a lista
de nomes de m odulos que devem ser instanciados durante a execuc ao. Cada m odulo
identicado e localizado e a func ao lauch() de cada m odulo e executada, se existir.
Em seguida, POX abra a interface de comandos de Python para uso interativo. M odulos
s ao procurados na hierarquia de diret orios usual de Python e nos diret orios pox e ext do
pacote. Assim sendo, para se disparar o m odulo que implementa switches Ethernet com
aprendizado, utiliza-se o comando
./pox.py dumb l2 switch
Cada m odulo pode receber argmentos atrav es de opc oes de execuc ao indicadas
ap os o nome do m odulo. Essas opc oes s ao passadas como par ametros para a func ao
launch() do m odulo.
Em particular, as opc oes de congurac ao de OpenFlow s ao uteis ao se iniciar a
execuc ao de POX associada a um ambiente de rede criado com o arcabouco Mininet.
Como mencionado anteriormente, Mininet cria uma rede virtual de comutadores Open-
Flow executando em uma m aquina virtual disparada na m aquina local. Os comutadores
e hosts na rede virtual podem ser congurados para se comunicar com uma inst ancia
de POX executando no computador hospedeiro. Para isso, POX deve ser iniciado da
seguinte forma:
./pox.py openflow.of 01 --address=10.1.1.1 --port=6634
1
O conte udo dessa sec ao e diretamente derivado de notas de utilizac ao disponveis no site http://www.
noxathome.org/wiki/POXConcepts.
2
http://pypy.org/
3
https://github.com/
Em seguida, no terminal Mininet, dispara-se a rede virtual com o comando:
sudo mn --controller=remote --ip=10.1.1.1 --port=6634
Para que isso seja possvel, a classe of 01 foi denida com o m etodo launch()
na forma:
def launch (port=6633, address = 0.0.0.0):
Operacoes a serem executadas ao se iniciar o modulo
O mesmo recurso pode se utilizado por qualquer m odulo desenvolvido no sistema.
Al em disso, pox.py reconhece algumas opc oes pr oprias, que devem ser listadas
primeiro:
--verbose exibe stack traces para excecoes durante a inicializacao
--no-cli nao inicia a interface interativa de comandos
--no-openflow nao inicia o modulo openflow automaticamente
Testes e depurac ao
No momento, n ao h a ainda uma rotina de testes completamente denida, mas h a um
primeiro esboco de como se construir um arcabouco para testes de unidade e integrac ao
no sub-diret orio test/.
Um dos objetivos maiores de POX e dotar o ambiente SDN de mecanismos de
depurac ao sosticados que integrem as diversas camadas de uma rede denida por soft-
ware. Em sua vers ao atual, entretanto, h a apenas um sistema de depurac ao que aumenta
os nveis de avisos e de gerac ao de logs, habilita a detecc ao de deadlocks e outras me-
didas uteis. Esse sistema e iniciado ao se executar ./pox.debu.py ao inv es do co-
mando original. Al em disso, pode ser util se incluir nos m odulos desenvolvidos recursos
de execuc ao passo-a-passo, o que pode ser feito ao se executar a linha import pdb;
pdb.set trace(), que iniciar a a execuc ao passo-a-passo.
Registro no pox.core
Ao executar, o objeto pox.core e criado e oferece a funcionalidade de se registrar obje-
tos arbitr arios, que passama ser acessveis para os m odulos do sistema. Por exemplo, voc e
pode escrever o c odigo de um tipo de comutador de rede, que pode ent ao ser registrado
como pox.core.switch em tempo de execuc ao. Uma vantagem disso e que outros
podem posteriormente implementar um comutador totalmente diferente que implemente a
mesma interface de programac ao e registr a-lo como pox.core.switch, por sua vez.
Outras aplicac oes que utilizem a interface do comutador podem continuar a funcionar,
sem modicac oes. Uma vantagem desse mecanismo e que ele depende menos do uso de
comandos import do Python, reduzindo o c odigo de inicializac ao. Como exemplo, o
c odigo a seguir, do m odulo of 01, cria um objeto respons avel pelas tarefas de controle
do protocolo OpenFlow e registra-o para que o mesmo seja facilmente referenciado por
outros objetos:
def launch (port = 6633, address = 0.0.0.0):
if core.hasComponent(of_01):
return None
l = OpenFlow_01_Task(port = int(port), address = address)
core.register(of_01, l)
return l
Orientac ao a eventos
POX usa eventos frequentemente. O systema de controle de eventos e implementado na
biblioteca revent. O princpio principal da implementac ao e que objetos se tornam
eventos, n ao apenas uma colec ao de campos e m etodos. Um objeto pode disparar eventos
e outros podem esperar por eventos gerados por aquele objeto registrando um tratador
(handler) com ele. Tratadores de eventos executam de forma n ao preemptiva, at e o seu
m.
Um objeto se torna uma fonte potencial de eventos ao herdar de EventMixin
(apesar dessa classe ter sido projetada com o objetivo de ser adequada para a combinac ao
em tempo de execuc ao de classes e objetos, n ao h a suporte a isso no momento e a unica
forma de uso apoiada no momento e herdando-se dela). Tal objeto normalmente espe-
cicar a quais tipos de eventos ele pode disparar, apesar disso n ao ser obrigat orio. Os
eventos propriamente ditos s ao normalmente classes que estendem Event e passam a
possuir certas caractersticas, mas na pr atica podem ser qualquer coisa. Qualquer objeto
interessado em um evento pode registrar um tratador para ele.
E sempre importante relembrar que a noc ao da vis ao global da rede como algo cen-
tralizado em SDN e uma vis ao l ogica. N ao h a nenhuma exig encia no paradigma
que determine que essa vis ao deve ser obrigatoriamente implementada de forma cen-
tralizada. Requisitos de desempenho ou de toler ancia a falhas podem levar a uma
decis ao de distribuic ao dessa vis ao global. As decis oes de projeto que levaram ao
modelo do sistema Onix, por exemplo, mostram um caminho onde a distribuic ao
em algum nvel foi considerada essencial para a soluc ao nal. Outros sistemas,
como Hyperow [Tootoonchian and Ganjali 2010] apresentam outros caminhos para essa
distribuic ao. Certamente, emfunc ao das diferentes abstrac oes de programac ao que podem
vir a surgir em controladores SDN e das diferentes linguagens/interfaces de programac ao
possveis, muitas linhas de ac ao podem ser exploradas nesse contexto.
9. Considerac oes nais
O potencial do paradigma de Redes Denidas por Software apenas comeca a ser explo-
rado, mas j a e grande o interesse pela area entre pesquisadores e empresas da area. O
fato de j a estarem no mercado os primeiros dispositivos comerciais baseados no padr ao
OpenFlow conrmam o momento positivo dessa iniciativa. Al em disso, e claro interesse
de diversas grandes empresas da area de dispositivos de rede e o surgimento de diversas
novas empresas de tecnologia (start-ups) ao redor desses conceitos.
Nesse cen ario, neste trabalho buscamos apresentar uma vis ao dos aspectos
te oricos e pr aticos envolvidos no desenvolvimento de pesquisas em SDN. Em particu-
lar, apresentamos os elementos que devem ser considerados ao se iniciar um trabalho na
area, com enfase no controlador de rede. Esse elemento tem papel essencial em qualquer
iniciativa sobre SDN, uma vez que o software que dene esses sistemas deve ser desen-
volvido com base nos recursos de express ao oferencidos pelo controlador. As diversas
opc oes de controladores disponveis foram descritas e os aspectos pr aticos de desenvol-
vimento de aplicac oes SDN foram discutidos ` a luz do controlador POX, recentemente
lancado e especialmente desenvolvido para o ambiente de pesquisa e ensino.
Considerando-se o sucesso do paradigma e os desaos identicados neste texto,
consideramos que existe um campo amplo para o desenvolvimento de novos projetos de
pesquisa enfocando Redes Denidas por Software, seja como ferramenta para o desenvol-
vimento de novos servicos e aplicac oes de redes, seja como alvo de estudos sobre novas
abstrac oes e soluc oes de implementac ao. Certamente, os trabalhos mais interessantes na
area ainda est ao por vir.
Al em das refer encias apresentadas a seguir, alguns stios concentram
grande parte das discuss oes sobre os conceitos aqui apresentados. Os in-
teressados na area devem acompanhar as atividades dos desenvolvedores em
stios como noxathome.org, noxrepo.org, openflow.org, openwrt.org,
openvswitch.org, opennetworking.org, opennetsummit.org, entre ou-
tros.
Agradecimentos
Este trabalho foi parcialmente nanciado pelo Instituto Nacional de Ci encia e Tecnolo-
gia para a Web (InWeb), pelo CNPq, FAPEMIG, HP Brasil, pelo programa UOL Bolsa
Pesquisa (www.uol.com.br) e pelo Programa de Visitas Brasil-ICSI do Movimento Brasil
Colaborativo/ABDI. Murphy McCauley e o desenvolvedor principal do POX e colaborou
com diversas informac oes utilizadas aqui. Muitos dos elementos apresentados sobre de-
saos de pesquisa na area de controladores SDN foram derivados de discuss oes com o
Prof. Scott Shenker.
Refer encias
(2012). The beacon controller. https://openow.stanford.edu/display/Beacon/Home.
(2012). Floodlight. http://oodlight.openowhub.org/.
(2012). Nec programmable ow. http://www.necam.com/pow/.
(2012). Openstack:open source software for building private and public clouds.
http://openstack.org/.
(2012). Simple network access control. http://www.openow.org/wp/snac/.
(2012). Trema: Full-stack openow framework for ruby and c.
http://trema.github.com/trema/.
Braga, R. B., Mota, E. M., and Passito, A. P. (2010). Lightweight ddos ooding attack
detection using nox/openow. In Proceedings of the Annual IEEE Conference on Lo-
cal Computer Networks, pages 408415, Los Alamitos, CA, USA. IEEE Computer
Society.
Cai, Z., Cox, A. L., and Ng, T. S. E. (2010). Maestro: A system for scalable openow
control. Technical Report TR10-08, Rice University.
Calvert, K. L., Edwards, W. K., Feamster, N., Grinter, R. E., Deng, Y., and Zhou, X.
(2011). Instrumenting home networks. SIGCOMM Comput. Commun. Rev., 41(1):84
89.
Casado, M., Erickson, D., Ganichev, I. A., Grifth, R., Heller, B., Mckeown, N., Moon,
D., Koponen, T., Shenker, S., and Zaris, K. (2010a). Ripcord: A modular platform
for data center networking. EECS Department Technical Report UCB/EECS-2010-93,
University of California, Berkeley.
Casado, M., Freedman, M. J., Pettit, J., Luo, J., Gude, N., McKeown, N., and Shenker, S.
(2009). Rethinking enterprise network control. IEEE/ACM Transactions on Networ-
king, 17(4):12701283.
Casado, M., Koponen, T., Ramanathan, R., and Shenker, S. (2010b). Virtualizing the
network forwarding plane. In Proceedings of the Workshop on Programmable Routers
for Extensible Services of Tomorrow, PRESTO 10, pages 8:18:6, New York, NY.
Davie, B. S. and Farrel, A. (2008). MPLS: Next Steps: Next Steps. Morgan Kaufmann
Publishers Inc., San Francisco, CA, USA.
Dixon, C., Mahajan, R., Agarwal, S., Brush, A. J., Lee, B., Saroiu, S., and Bahl, V. (2010).
The home needs an operating system (and an app store). In Proceedings of the Ninth
ACM SIGCOMM Workshop on Hot Topics in Networks, Hotnets 10, pages 18:118:6,
New York, NY, USA. ACM.
Elliott, C. and Falk, A. (2009). An update on the geni project. SIGCOMM Comput.
Commun. Rev., 39(3):2834.
Farias, F. N. N., Salvatti, J. J., Dias, J. M., Toda, H. S., Cerqueira, E., and Abel em, A.
J. G. (2011). Implementac ao de um novo datapath openow em ambientes de switches
legados. In Anais do II Workshop de Pesquisa Experimental em Internet do Futuro,
pages 1518. SBC.
Feamster, N. (2010). Outsourcing home network security. In Proceedings of the 2010
ACM SIGCOMM workshop on Home networks, HomeNets 10, pages 3742, New
York, NY, USA. ACM.
Foster, N., Freedman, M. J., Harrison, R., Rexford, J., Meola, M. L., and Walker, D.
(2010). Frenetic: a high-level language for openow networks. In Proceedings of the
Workshop on Programmable Routers for Extensible Services of Tomorrow, PRESTO
10, pages 6:16:6, New York, NY.
Gude, N., Koponen, T., Pettit, J., Pfaff, B., Casado, M., McKeown, N., and Shenker,
S. (2008). Nox: towards an operating system for networks. SIGCOMM Comput.
Commun. Rev., 38:105110.
Heller, B., Erickson, D., McKeown, N., Grifth, R., Ganichev, I., Whyte, S., Zaris, K.,
Moon, D., Shenker, S., and Stuart, S. (2010a). Ripcord: a modular platform for data
center networking. SIGCOMM Comput. Commun. Rev., 40:457458.
Heller, B., Seetharaman, S., Mahadevan, P., Yiakoumis, Y., Sharma, P., Banerjee, S., and
Mckeown, N. (2010b). Elastictree: Saving energy in data center networks. In Procee-
dings of the 7th Usenix Symposium on Networked Systems Design and Implementation
(NSDI).
Hinrichs, T. L., Gude, N. S., Casado, M., Mitchell, J. C., and Shenker, S. (2009). Prac-
tical declarative network management. In Proceedings of the 1st ACM workshop on
Research on enterprise networking, WREN 09, pages 110, New York, NY.
Kempf, J., Whyte, S., Ellithorpe, J., Kazemian, P., Haitjema, M., Beheshti, N., Stuart, S.,
and Green, H. (2011). Openow mpls and the open source label switched router. In
Proceedings of the 23rd International Teletrafc Congress, ITC 11, pages 814. ITCP.
Kohler, E., Morris, R., Chen, B., Jannotti, J., and Kaashoek, M. F. (2000). The click
modular router. ACM Trans. Comput. Syst., 18(3):263297.
Koponen, T., Casado, M., Gude, N., Stribling, J., Poutievski, L., Zhu, M., Ramanathan,
R., Iwata, Y., Inoue, H., Hama, T., and Shenker, S. (2010). Onix: a distributed con-
trol platform for large-scale production networks. In Proceedings of the 9th USENIX
conference on Operating systems design and implementation, OSDI10, pages 16,
Berkeley, CA. USENIX Association.
Lantz, B., Heller, B., and McKeown, N. (2010). A network in a laptop: rapid prototyping
for software-dened networks. In Proceedings of the Ninth ACMSIGCOMMWorkshop
on Hot Topics in Networks, Hotnets 10, pages 19:119:6, New York, NY, USA. ACM.
Mattos, D. M. F., Fernandes, N. C., da Costa, V. T., Cardoso, L. P., Campista, M. E. M.,
Costa, L. H. M. K., and Duarte, O. C. M. B. (2011). Omni: Openow management
infrastructure. In Proceedings of the 2nd IFIP International Conference Network of
the Future - NoF2011, pages 15. IFIP.
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J.,
Shenker, S., and Turner, J. (2008). Openow: enabling innovation in campus networks.
SIGCOMM Comput. Commun. Rev., 38:6974.
Mehdi, S. A., Khalid, J., and Khayam, S. A. (2011). Revisiting trafc anomaly detection
using software dened networking. In Proceedings of the 14th International Sympo-
sium on Recent Advances in Intrusion Detection (RAID), pages 161180.
Mogul, J. C., Tourrilhes, J., Yalagandula, P., Sharma, P., Curtis, A. R., and Banerjee, S.
(2010). Devoow: cost-effective ow management for high performance enterprise
networks. In Proceedings of the Ninth ACM SIGCOMM Workshop on Hot Topics in
Networks, Hotnets 10, pages 1:11:6, New York, NY, USA. ACM.
Mundada, Y., Sherwood, R., and Feamster, N. (2009). An openow switch element for
click. In Proceedinds on the Symposium on Click Modular Router.
Nascimento, M. R., Rothenberg, C. E., Salvador, M. R., Corr ea, C. N. A., De Lucena,
S. C., and Magalh aes, M. F. (2011). Virtual routers as a service: The routeow ap-
proach leveraging software-dened networks. In Proceedings of the 6th International
Conference on Future Internet Technologies (CFI), pages 03.
Peterson, L. and Roscoe, T. (2006). The design principles of planetlab. SIGOPS Oper.
Syst. Rev., 40(1):1116.
Pettit, J., Gross, J., Pfaff, B., Casado, M., and Crosby, S. (2010). Virtual switching
in an era of advanced edges. In Proceedings of the 2nd Workshop on Data Center
- Converged and Virtual Ethernet Switching (DC CAVES), DC CAVES, pages 17,
Amsterdam, The Netherlands. ITC.
Pfaff, B., Pettit, J., Amidon, K., Casado, M., Koponen, T., and Shenker, S. (2009). Ex-
tending networking into the virtualization layer. In Proceedings of the Eighth ACM
Workshop on Hot Topics in Networks (HotNets-VIII).
Ram, K. K., Mudigonda, J., Cox, A. L., Rixner, S., Ranganathan, P., and Santos, J. R.
(2010). snich: efcient last hop networking in the data center. In Proceedings of
the 6th ACM/IEEE Symposium on Architectures for Networking and Communications
Systems, ANCS 10, pages 26:126:12, New York, NY, USA. ACM.
Reitblatt, M., Foster, N., Rexford, J., and Walker, D. (2011). Consistent updates for
software-dened networks: Change you can believe in. In Proceedings of ACM SIG-
COMM Workshop on Hot Topics in Networks (HotNets), pages 16.
Rodrigues, H., Santos, J. R., Turner, Y., Soares, P., and Guedes, D. (2011). Gatekeeper:
Supporting bandwidth guarantees for multi-tenant datacenter networks. In Proceedings
of the 3rd Usenix Workshop on I/O Virtualization (WIOV 11), Portland, OR. Usenix.
Sherwood, R. et al. (2010). Carving research slices out of your production networks with
openow. SIGCOMM Comput. Commun. Rev., 40:129130.
Sherwood, R., Gibb, G., Yap, K.-K., Apenzeller, G., Casado, M., McKeown, N.,
and Parulkar, G. (2009). Flowvisor: A network virtualization layer. Tech. Rep.
OPENFLOWTR-2009-1, OpenFlowSwitch.org.
Silva, G., Arantes, A., Steding-Jessen, K., Hoepers, C., Chaves, M., Jr., W. M., and Gue-
des, D. (2011). SpSb: um ambiente seguro para o estudo de spambots. In Anais do
Simp osio Brasileiro de Seguranca, pages 15, Braslia, DF. SBC.
Tennenhouse, D. L. and Wetherall, D. J. (2007). Towards an active network architecture.
SIGCOMM Comput. Commun. Rev., 37(5):8194.
Tootoonchian, A. and Ganjali, Y. (2010). Hyperow: a distributed control plane for
openow. In Proceedings of the 2010 internet network management conference on Re-
search on enterprise networking, INM/WREN10, pages 33, Berkeley, CA. USENIX
Association.
Turner, J. S. (2006). A proposed architecture for the geni backbone platform. In Procee-
dings of the 2006 ACM/IEEE symposium on Architecture for networking and commu-
nications systems, ANCS 06, pages 110, New York, NY, USA. ACM.