4
0
R
e
v
i
s
t
a
T
é
c
n
i
c
a
d
e
l
a
E
m
p
r
e
s
a
d
e
T
e
l
e
c
o
m
un
i
c
a
c
i
o
n
e
s
d
e
C
u
b
a
S
.
A
.
J
U
L
I
O / D
I
C
I
E
M
B
R
E
2016
V
O
L
.
13
4
1
I
n
t
r
o
d
u
cc
i
ó
n
La
s
Rede
s
D
e
f
inida
s
por Soft
w
are (S
DN
)
s
on un nuevo
paradigma que promete dar
s
olución a lo
s
problema
s
que
enfrentan la
s
rede
s
de telecomunicacione
s
tradicionale
s
,
pue
s
permiten la con
f
iguración per
s
onalizada de la red y
s
u
s
s
ervicio
s
, a partir del u
s
o de aplicacione
s
de
s
oft
w
are
que pueden llegar a de
s
arrollar lo
s
propio
s
admini
s
trado-
re
s
de red.
En la
f
igura 1
s
e mue
s
tra la arquitectura bá
s
ica de la
s
S
DN
,
s
u
s
componente
s
fundamentale
s
y la
s
interaccione
s
entre ello
s
.
Como puede ob
s
ervar
s
e, la
s
S
DN
proponen una arqui-
tectura donde el plano de control (la inteligencia de lo
s
di
s
po
s
itivo
s
de red) y el plano de reenvío (re
s
pon
s
able
P
o
r
:
I
ng
. D
a
y
r
e
n
e
F
r
ó
m
e
t
a
F
o
n
s
e
c
a
,
D
r
a
.C. C
a
r
i
d
a
d
A
n
í
a
s
C
a
l
de
r
ó
n
,
I
ng
.
S
u
s
a
n
a
B
a
ll
e
st
e
r
M
a
c
í
a
s
e
I
ng
. S
e
r
g
i
o
L
e
ó
n
G
o
n
z
á
l
e
z
,
I
S
P
J
A
E
.
da
y
r
e
n
e
.
ff
@
e
l
e
ct
r
i
c
a
.
c
u
j
a
e
.
e
d
u
.
c
u
,
c
a
c
h
a
@
t
e
s
l
a
.
c
u
j
a
e
.
e
d
u
.
c
u
;
s
b
a
ll
e
s
t
e
r
m
@
e
l
e
ct
r
i
c
a
.
c
u
j
a
e
.
e
d
u
.
c
u
;
s
l
e
o
n
g
@
c
u
j
a
e
.
e
d
u
.
c
u
T
É
C
N
I
C
A
D
E
S
A
RR
OLLO D
E
A
P
LICACION
E
S SDN
L
a
s
R
ede
s
D
e
f
i
n
i
d
a
s
p
o
r
S
o
f
t
w
a
r
e
(
SDN
)
h
a
n
m
o
d
i
f
i
c
a
d
o
l
a
f
o
r
m
a
de
d
i
s
e
ñ
a
r
y
o
pe
r
a
r
l
a
s
r
ede
s
de
d
a
t
o
s
. L
a
s
SDN
s
o
n
a
p
li
c
a
c
i
o
n
e
s
b
a
s
a
d
a
s
e
n
s
o
f
t
w
a
r
e
q
u
e
de
t
e
r
m
i
n
a
n
e
l
c
o
m
p
o
r
t
a
m
i
e
n
t
o
de
l
a
r
ed
,
p
u
d
i
e
n
d
o
m
o
d
i
f
i
c
a
r
e
l
e
st
a
d
o
de
l
a
m
i
s
m
a
de
a
c
u
e
r
d
o
a
s
u
s
n
e
c
e
s
i
d
a
de
s
.
E
n
e
st
e
a
r
t
í
c
u
l
o
s
e
c
l
a
s
i
f
i
c
a
n
l
a
s
a
p
li
c
a
c
i
o
n
e
s
SDN
,
s
e
m
u
e
st
r
a
n
l
a
s
p
r
i
n
c
i
p
a
l
e
s
f
o
r
m
a
s
q
u
e
e
x
i
s
-
t
e
n
h
o
y
e
n
d
í
a
p
a
r
a
s
u
c
r
e
a
c
i
ó
n
y
s
e
p
r
o
p
o
n
e
n
h
e
rr
a
m
i
e
n
t
a
s
q
u
e
p
u
ede
n
s
e
r
u
s
a
d
a
s
c
o
n
e
st
e
f
i
n
.
A
s
í
m
i
s
m
o,
s
e
a
b
o
r
d
a
n
a
l
gun
o
s
a
s
pe
c
t
o
s
i
m
p
o
r
t
a
n
t
e
s
p
a
r
a
e
l
de
s
a
rr
o
ll
o
de
a
p
li
c
a
c
i
o
n
e
s
SDN
,
l
o
s
c
u
a
l
e
s
s
i
r
ve
n
de
gu
í
a
a
l
o
s
p
r
o
g
r
a
m
a
d
o
r
e
s
e
n
e
l
p
r
o
c
e
s
o
de
c
r
e
a
c
i
ó
n
de
d
i
c
h
a
s
a
p
li
c
a
c
i
o
n
e
s
y
e
n
l
a
s
e
l
e
cc
i
ó
n
de
h
e
rr
a
m
i
e
n
t
a
s
p
a
r
a
s
u
de
s
a
rr
o
ll
o
.
P
a
l
a
b
r
a
s
c
l
a
v
e
:
R
ede
s
D
e
f
i
n
i
d
a
s
p
o
r
S
o
f
t
w
a
r
e
(
SDN
)
,
A
p
li
c
a
c
i
o
n
e
s
SDN
,
I
n
t
e
r
f
a
z
de
P
r
o
g
r
a
m
a
c
i
ó
n
de
A
p
li
c
a
c
i
o
n
e
s
(
A
P
I
)
S
o
f
t
w
a
r
e
de
f
i
n
ed
n
e
t
w
o
r
k
s
(
SDN
)
h
a
ve
m
o
d
i
f
i
ed
t
h
e
w
a
y
o
f
de
s
i
gn
i
ng
a
n
d
o
pe
r
a
t
i
ng
d
a
t
a
n
e
-
t
w
o
r
k
s
.
I
n
t
h
e
SDN
,
t
h
e
s
o
f
t
w
a
r
e
-
b
a
s
ed
a
pp
li
c
a
t
i
o
n
s
a
r
e
t
h
e
o
n
e
s
t
h
a
t
de
t
e
r
m
i
n
e
t
h
e
n
e
t
w
o
r
k
be
h
a
v
i
o
r
,
m
o
d
i
f
y
i
ng
i
ts
st
a
t
u
s
a
cc
o
r
d
i
ng
t
o
i
ts
n
eed
s
.
I
n
t
h
i
s
a
r
t
i
c
l
e
,
t
h
e
a
pp
li
c
a
t
i
o
n
s
SDN
a
r
e
c
l
a
ss
i
f
i
ed
,
t
h
e
e
x
i
st
i
ng
m
a
i
n
w
a
y
s
t
o
c
r
e
a
t
e
t
h
e
m
a
r
e
s
h
o
w
n
,
a
n
d
t
h
e
t
oo
l
s
u
s
ed
f
o
r
t
h
a
t
p
u
r
p
o
s
e
a
r
e
p
r
o
p
o
s
ed
.
L
i
k
e
w
i
s
e
,
t
h
e
a
u
t
h
o
r
m
a
k
e
s
r
e
f
e
r
e
n
c
e
t
o
s
o
m
e
c
r
u
c
i
a
l
a
s
pe
c
ts
t
o
t
h
e
deve
l
o
p
m
e
n
t
o
f
SDN
a
pp
li
c
a
t
i
o
n
s
,
w
h
i
c
h
gu
i
de
t
h
e
p
r
o
g
r
a
mm
e
r
s
i
n
t
h
e
p
r
o
c
e
ss
o
f
c
r
e
a
t
i
o
n
o
f
s
u
c
h
a
pp
li
c
a
t
i
o
n
s
a
n
d
s
e
l
e
c
t
i
o
n
o
f
t
oo
l
s
f
o
r
t
h
e
i
r
deve
l
o
p
m
e
n
t
.
K
e
y
w
o
r
d
s
:
S
o
f
t
w
a
r
e
D
e
f
i
n
ed
N
e
t
w
o
r
k
s
(
SDN
)
,
SDN
A
pp
li
c
a
t
i
o
n
s
,
A
pp
li
c
a
t
i
o
n
s
P
r
o
g
r
a
mm
i
ng
I
n
t
e
r
f
a
c
e
(
A
P
I
)
A
B
S
T
R
A
CT
R
E
S
U
M
EN
del envío de lo
s
paquete
s
)
s
e encuent
r
an de
s
acoplado
s
,
s
eparando a
s
í la
s
funcione
s
de ge
s
tión de
r
ed y de con
-
mutación de paquete
s
.
U
no de lo
s
componente
s
más inte
r
e
s
ante
s
de la a
r
quitec
-
tura S
DN
s
on la
s
Interface
s
de P
r
og
r
amación de Aplica
-
cione
s
—Application P
r
og
r
amming
I
nte
r
face
(
AP
I)
—.
La incorporación de e
s
ta
s
A
P
I
hace po
s
ible que lo
s
ad
-
mini
s
tradore
s
puedan de
s
arrolla
r
s
u
s
p
r
opia
s
aplicacione
s
S
DN
con relativa facilidad y que mediante ella
s
con
f
igu
-
ren, admini
s
tren, a
s
eguren y optimicen lo
s
r
ecu
rs
o
s
de la
red de acuerdo a
s
u
s
nece
s
idade
s
. En e
s
te contexto
s
on
la
s
aplicacione
s
S
DN
y la po
s
ibilidad de que e
s
ta
s
s
ean
de
s
arrollada
s
en donde
s
e nece
s
iten do
s
de la
s
ca
r
acte
-
rí
s
tica
s
má
s
atractiva
s
que pre
s
entan la
s
Rede
s
De
f
inida
s
por Soft
w
are.
Para lograr que la
s
S
DN
s
ea
n
r
ede
s
altamente p
r
og
r
ama
-
ble
s
, alguno
s
grupo
s
de inve
s
tigación han di
r
igido
s
u aten
-
ción al de
s
arrollo de herramienta
s
que pe
r
miten el de
s
plie
-
gue de diver
s
o
s
s
ervicio
s
y aplicacione
s
pa
r
a e
s
te tipo de
rede
s
, aunque la
s
herramienta
s
de p
r
og
r
amación t
r
adicio
-
nale
s
también pueden
s
er utilizada
s
pa
r
a e
s
te
f
in.
Como re
s
ultado de lo ante
s
expue
s
to exi
s
te una amplia
gama de herramienta
s
, tanto come
r
ciale
s
como de código
abierto, que e
s
tán a di
s
po
s
ición de lo
s
de
s
a
rr
ollado
r
e
s
de
aplicacione
s
S
DN
, a
s
í como nume
r
o
s
a
s
guía
s
y tuto
r
iale
s
que lo
s
fabricante
s
ofrecen pa
r
a la utilización de dicha
s
herramienta
s
.
Sin embargo, lo
s
programado
r
e
s
tienen acce
s
o a e
s
to
s
equipo
s
y a
s
u documentación
s
olo de mane
r
a ai
s
lada.
D
urante el de
s
arrollo de e
s
ta inve
s
tigación no
s
e contaba
con ningún documento que recogie
s
e la
s
di
f
e
r
ente
s
f
o
r
ma
s
F
i
g
u
r
a
1
.
Ar
q
u
i
t
e
c
t
u
r
a
SDN
.
F
u
e
n
t
e
:
[
1
]
.
4
2
R
ev
i
st
a
T
é
c
n
i
c
a
de
l
a
E
m
p
r
e
s
a
de
T
e
l
e
c
o
m
un
i
c
a
c
i
o
n
e
s
de
C
u
b
a
S.
A
.
J
U
L
I
O / D
I
C
I
E
M
B
R
E
2016
V
O
L
.
13
4
3
T
É
C
N
I
C
A
T
É
C
N
I
C
A
que existen hoy e
n
día para la creación de aplicaciones
SDN, ni la g
r
an variedad de herramientas que pueden se
r
u
s
adas con este
f
in. Lo anterior impide que los
d
esa
rr
o
-
llado
r
es compa
r
en las herramientas disponibles y puedan
dete
r
mina
r
, de acuerdo a sus características, cuál es la más
apropiada pa
r
a la creación de una aplicación
SDN
especí
-
f
ica. Esta situación in
f
luye negativamente en el desa
rr
ollo
y despliegue de las Redes
D
e
f
inidas por
S
oft
w
are.
Da
d
o que en las
S
D
N
son las aplicaciones quienes dete
r
mi
-
nan el compo
r
tamiento de la red, se considera de g
r
an im
-
po
r
tancia toda investigación realizada en favor de agiliza
r
el p
r
oceso pa
r
a su desarrollo. El objetivo de este artículo es
expone
r
algunos conceptos importantes relacionados con
el desa
rr
ollo de aplicaciones
SDN
, presentar a los p
r
og
r
a
-
mado
r
es alte
r
nativas y herramientas disponibles hoy en día
para c
r
ea
r
dichas a
p
licaciones y recomendar herramientas
que pueden se
r
usadas para este
f
in.
P
or lo ante
r
io
r
, se
conside
r
a que este documento constituye una guía a los
prog
r
amado
r
es en el proceso de selección de herramientas
para el desa
rr
ollo de aplicaciones
SDN
.
A
p
li
c
a
c
i
o
ne
s
SDN
Una aplicación
S
DN consiste en un programa de so
f
t
w
a
r
e
di
s
eñado pa
r
a
r
ealizar una o varias tareas en el ent
or
no de
la
s
Redes De
f
inidas por
S
oft
w
are, pudiendo reemplaza
r
y amplia
r
las
f
uncionalidades que se implementa
n
en los
di
s
positivos de ha
rdw
are de una red tradicional.
La
s
aplicaciones
S
D
N
tienen la capacidad de cambia
r
el
compo
r
tamiento de la red en tiempo real, de tal
f
o
r
ma
que esta pueda
r
esponder rápidamente a los objetivos de
una emp
r
esa, como puede ser, reenviar paquetes po
r
una
ruta menos costosa, adaptar dinámicamente la calidad de
s
ervicio po
r
disponibilidad del ancho de banda y solicitud
de los usua
r
ios, descartar paquetes sospechosos y rast
r
ea
r
s
u
f
uente pa
r
a bloquearlos, entre otras.
C
l
a
s
i
f
i
c
a
c
i
ó
n
d
e
l
a
s
a
p
li
c
a
c
i
o
ne
s
SDN
La
s
aplicaciones S
DN
pueden clasi
f
icarse atendiendo a
tre
s
pa
r
ámet
r
os
f
u
n
damentales: la función que desempe
-
ñan en la
r
ed, la plataforma de soft
w
are sobre la que co
-
rr
en y la complejidad de las mismas.
La
s
aplicaciones
SDN
pueden ser categorizadas aten
-
die
n
do a la
f
unción especí
f
ica que desempeñan, como
aplicaciones de seguridad, calidad de servicio (
Qo
S
)
, in
-
genie
r
ía de t
r
á
f
ico
(
TE), gestión de las listas de cont
r
ol de
acceso
(
ACL
)
, balanceo de carga, etc.
O
tras aplicaciones
SD
N
son desa
rr
olladas para prestar servicios en ambien
-
te
s
especí
f
icos como la computación en la nube, las
r
edes
móviles, la vi
r
tualización de la red y la virtualización de
la
s
f
unciones de
r
ed (
NFV
) [1].
A
tendiendo a la plata
f
o
r-
ma de so
f
twa
r
e sobre la que corren, las aplicaciones S
DN
pueden clasi
f
ica
r
se como i
n
ter
n
as o exter
n
as al cont
r
o
-
lad
or
. Las aplicaciones internas son creadas como una
extensión de las
fu
ncionalidades del controlador S
DN
y
su código se ejecuta sob
r
e la plata
f
o
r
ma de so
f
t
w
are del
mismo. Po
r
ot
r
o lado, las aplicaciones exte
r
nas pueden
co
rr
e
r
en una plata
f
o
r
ma di
f
e
r
ente a la del cont
r
olador,
comunicándose con este a t
r
avés de su
A
P
I
hacia el norte.
Po
r
último, atendiendo a su complejidad, las aplicacio-
nes S
DN
pueden clasi
f
ica
r
se como aplicaciones simple
s
o co
m
ple
j
as. Las aplicaciones S
DN
simples son aquella
s
cuyo código cumple una sola
f
unción de
r
ed, mientra
s
que las aplicaciones complejas poseen un código má
s
s
o-
f
isticado que hace que un mismo switch
O
penFlow ma-
neje e
f
iciente y simultáneamente va
r
ias
f
unciones de red.
A
demás de lo planteado ante
r
io
r
mente, algunas aplica-
ciones S
DN
son desa
rr
olladas pa
r
a cumpli
r
objetivo
s
especí
f
icos de un negocio y necesitan la inte
r
acción de
va
r
ios módulos
(
inte
r
nos y exte
r
nos a la plata
f
o
r
ma del
cont
r
olado
r)
, pa
r
a pode
r
desempeña
r
las ta
r
eas que
s
e
p
r
oponen. Este tipo de aplicaciones son conocidas como
híbridas, pues
r
equie
r
en de la inte
r
acción de aplicacio-
nes S
DN
in
t
ernas y ex
t
ernas.
[
2
]
E
j
e
m
p
l
os
d
e
a
p
li
c
a
c
i
o
ne
s
SDN
Las aplicaciones S
DN
pe
r
miten a los cont
r
olado
r
es
r
ecopilar
datos a t
r
avés de se
r
vicios Web, lee
r
, modi
f
ica
r
, inc
o
rporar
y elimina
r
ent
r
adas de las tablas de
f
lujo de los disp
os
itivo
s
subyacentes; utiliza
r
A
P
I
pa
r
a integ
r
a
r
se con ot
r
as aplicacio-
nes; comp
r
oba
r
el estado de los dispositivos de
r
ed; activar
y desactiva
r
sus pue
r
tos y de
f
ini
r
mét
r
icas que ayuden a la
ingenie
r
ía de t
r
á
f
ico, ent
r
e ot
r
as
f
uncionalidades.
N
o todas las aplicaciones S
DN
implementan
f
uncio
n
alida-
des completamente nuevas. Más bien, la mayo
r
ía de e
s
ta
s
aplicaciones se basan o
r
eplican las
f
uncionalidades de la
s
aplicaciones que co
rr
en en los routers y switches t
r
adicio-
nales. La novedad de las S
DN
es la mane
r
a en que integran
estas aplicaciones y las
f
acilidades que b
r
indan pa
r
a el de
s
a-
rr
ollo de ot
r
as nuevas.
A
lgunas de las aplicaciones que vienen incluidas en lo
s
con-
t
r
olado
r
es S
DN
constituyen módulos de conmutación
s
im-
ple, descub
r
imiento de topología, monito
r
ización de la red,
cont
r
ol de acceso a la
r
ed, co
r
ta
f
uegos, balanceo de carga,
etc. También, se pueden menciona
r
ot
r
as aplicacione
s
S
DN
que son desa
rr
olladas en
f
unción de las necesidades
p
articu-
la
r
es de una emp
r
esa o pa
r
a t
r
abaja
r
en ambientes e
s
pecí
f
i-
cos como son la computación en la nube, las
r
edes móvile
s
y
la vi
r
tualización de las
f
unciones de
r
ed, ent
r
e ot
r
os.
En
[
3
]
,
[
4
]
y
[
5
]
se p
r
esentan va
r
ias aplicaciones S
D
N inter-
nas y Exte
r
nas asociadas a los cont
r
olado
r
es
NOX
Cla
ss
ic,
P
OX
, Ryu, Floodlight,
O
pen
D
aylight,
H
P
VAN
Controller y
Cisco
XN
C, siendo estos algunos de los cont
r
olado
r
es S
DN
come
r
ciales y de código abie
r
to disponibles actualmente.
D
e
s
a
rr
o
ll
o
d
e
a
p
li
c
a
c
i
o
ne
s
SDN
Las S
DN
poseen dos bene
f
icios potenciales pa
r
a mejorar
las
r
edes de computado
r
as:
f
acilita
r
la innovación en la
s
tecnología
s
de red y hacer que la creación, el de
s
pliegue y
la compo
s
ición de
s
ervicio
s
y aplicacione
s
para la
s
rede
s
s
ea una tarea meno
s
compleja [6]. Para explotar al máximo
e
s
to
s
bene
f
icio
s
s
e encuentran a di
s
po
s
ición de lo
s
de
s
arro-
lladore
s
múltiple
s
herramienta
s
, tanto comerciale
s
como
de código abierto, que permiten la creación de aplicacione
s
para la
s
Rede
s
D
e
f
inida
s
por Soft
w
are.
M
ucho
s
de lo
s
controladore
s
S
DN
di
s
ponible
s
hoy en día ex-
tienden la
s
funcionalidade
s
de
s
u plataforma al ofrecer a lo
s
programadore
s
la
s
herramienta
s
nece
s
aria
s
para la creación de
nuevo
s
módulo
s
de aplicacione
s
s
obre ello
s
. Sin embargo, lo
s
controladore
s
S
DN
de primera generación, tale
s
como
NOX
[6], P
OX
[6], Trema [7], Ryu [8], entre otro
s
, no hacen de e
s
to
una tarea
s
encilla, pue
s
ofrecen una interfaz de programación
de bajo nivel de ab
s
tracción. E
s
to trae como con
s
ecuencia que
lo
s
de
s
arrolladore
s
tengan que enfrentar
s
e con
s
tantemente a
di
f
icultade
s
que complican el proce
s
o de creación de nue-
va
s
aplicacione
s
para la red.
U
na de la
s
di
f
icultade
s
a la
s
que pudieran enfrentar
s
e lo
s
programadore
s
al de
s
arrollar
aplicacione
s
s
obre controladore
s
S
DN
con la caracterí
s
tica
ante
s
mencionada, e
s
que deben tener en cuenta detalle
s
de
bajo nivel que poco tienen que ver con lo
s
s
ervicio
s
o la
s
funcione
s
que la
s
aplicacione
s
van a de
s
empeñar en la red.
Por ejemplo,
s
e ven obligado
s
a e
s
peci
f
icar lo
s
patrone
s
de
comunicación entre el controlador y el
s
witch, a
s
í como a
negociar con a
s
pecto
s
de entendimiento difícile
s
, como la
coordinación de evento
s
a
s
íncrono
s
, entre otro
s
. [9]
Para evitar lo anterior han
s
ido de
s
arrollado
s
nuevo
s
len-
guaje
s
de programación que facilitan en gran medida el
proce
s
o de creación de aplicacione
s
para la
s
S
DN
. Ejem-
plo
s
de e
s
to
s
lenguaje
s
s
on Frenetic [9], Pyretic [10],
N
et-
Core [11] y Procera, lo
s
cuale
s
s
on con
s
iderado
s
lengua-
je
s
e
s
pecí
f
ico
s
del dominio —
D
o
m
ain Speci
fi
c Language
(
D
SL)—, que permiten a lo
s
de
s
arrolladore
s
e
s
cribir pro-
grama
s
con un e
s
tilo declarativo y compo
s
icional, y pro-
gramar con un alto nivel de ab
s
tracción.
A
demá
s
, como fue mencionado al pre
s
entar la arquitectura
S
DN
, mucho
s
controladore
s
po
s
een hacia el norte una In-
terfaz de programación de
A
plicacione
s
, que permite a lo
s
programadore
s
crear aplicacione
s
S
DN
haciendo u
s
o de
herramienta
s
de programación tradicionale
s
que permitan
con
s
umir y/o exponer
s
ervicio
s
a travé
s
de e
s
ta
s
A
PI.
H
e
rr
a
m
i
en
t
a
s
A
partir de lo expue
s
to anteriormente,
s
e puede concluir que
exi
s
ten tre
s
grupo
s
de herramienta
s
fundamentale
s
para el
de
s
arrollo de aplicacione
s
S
DN
.
En el primero de lo
s
grupo
s
s
e encuentran la
s
herramien-
ta
s
que por defecto ofrecen lo
s
controladore
s
S
DN
para la
creación de aplicacione
s
s
obre
s
u
s
plataforma
s
de
s
oft
w
are.
A
lguna
s
de e
s
ta
s
con
s
i
s
ten en un lenguaje de programación
(el lenguaje en el que haya
s
ido de
s
arrollado el controlador),
K
it
s
para el
D
e
s
arrollo de Soft
w
are —Softwa
r
e
D
evelop-
m
ent Kit (S
DK
)—, código
s
de ejemplo, biblioteca
s
de In-
terface
s
de Programación de
A
plicacione
s
(
A
PI), entre otra
s
herramienta
s
que facilitan la c
r
eación de nueva
s
aplicacio
-
ne
s
, como
s
on lo
s
módulo
s
d
e aplicacione
s
que ya vienen
programado
s
s
obre la platafo
r
ma del cont
r
olado
r
, cuyo có
-
digo puede
s
er reutilizado para el de
s
a
rr
ollo de nueva
s
apli
-
cacione
s
.
O
tro de lo
s
grupo
s
de herramienta
s
e
s
tá con
s
tituido po
r
la
s
que ofrecen alguna
s
plataforma
s
de de
s
a
rr
ollo de
s
o
f
twa
r
e
tradicionale
s
, la
s
cuale
s
permiten c
r
ea
r
aplicacione
s
con la
capacidad de con
s
umir y/o expone
r
s
e
r
vicio
s
a t
r
avé
s
de la
A
PI hacia el norte que u
s
ualmente p
r
e
s
entan lo
s
cont
r
olado
-
re
s
S
DN
.
D
e e
s
ta forma,
s
e p
u
eden c
r
ea
r
aplicacione
s
que,
corriendo en una plataforma de
s
o
f
twa
r
e di
f
e
r
ente a la del
controlador, interactúen con lo
s
s
e
r
vicio
s
que e
s
te o
fr
ece y
obtengan información del e
s
tado de la
r
ed y
s
ean capace
s
de
modi
f
icar el comportamiento de e
s
ta de acue
r
do a lo
s
obje
-
tivo
s
que
s
e per
s
igan.
Por último, e
s
tá el grupo de he
rr
amienta
s
con
s
tituido po
r
la
s
implementacione
s
de lo
s
nuev
os
lenguaje
s
de p
r
og
r
amación
para la
s
S
DN
.
A
lguno
s
de e
s
tos lenguaje
s
ya e
s
tán di
s
ponible
s
como f
r
a
m
ewo
r
k
s
que generalmente con
s
i
s
ten en el lenguaje
de programación má
s
la
s
herramienta
s
ap
r
opiada
s
pa
r
a com
-
pilar y traducir la
s
regla
s
e
s
crita
s
con un alto nivel de ab
s
t
r
ac
-
ción a un lenguaje entendible po
r
el cont
r
olado
r
SDN, que u
s
a
para la comunicación con lo
s
s
witche
s
s
ubyacente
s
. E
s
deci
r
,
e
s
ta
s
implementacione
s
con
s
i
s
ten en un nuevo cont
r
olado
r
S
DN
, que permite e
s
cribir la
s
r
egla
s
que dictan el compo
r
ta
-
miento de la red con un lenguaje que p
r
opo
r
ciona un alto nivel
de ab
s
tracción. La
s
implementacione
s
di
s
ponible
s
de lo
s
DSL
para la
s
Rede
s
D
e
f
inida
s
por So
f
twa
r
e
s
on conocida
s
como
f
r
a
m
ewo
r
k
s
de programación pa
r
a la
s
SDN.
F
o
r
m
a
s
d
e
d
e
s
a
rr
o
ll
o
Como re
s
ultado de la inve
s
ti
g
ación
r
ealizada y teniendo en
cuenta la
s
herramienta
s
exi
s
te
n
te
s
f
ue po
s
ible identi
f
ica
r
t
r
e
s
forma
s
fundamentale
s
para el de
s
a
rr
ollo de la
s
aplicacione
s
S
DN
.
La primera forma e
s
de
s
arrolla
r
e
s
ta
s
aplicacione
s
como in
-
terna
s
a la plataforma de
s
oftwa
r
e de lo
s
cont
r
olado
r
e
s
SDN
de primera generación, haciendo u
s
o de la
s
he
rr
amienta
s
que
e
s
to
s
ofrezcan para ello. E
s
ta vía obliga a lo
s
de
s
a
rr
ollado
r
e
s
a
programar con un bajo nivel de ab
s
t
r
acción.
La
s
egunda forma e
s
de
s
arrolla
r
la
s
aplicacione
s
SDN como
módulo
s
interno
s
a alguna de la
s
plata
f
o
r
ma
s
de
s
o
f
twa
r
e
que implementan lo
s
nuevo
s
lenguaje
s
de p
r
og
r
amación
para la
s
S
DN
, permitiendo a lo
s
p
r
og
r
amado
r
e
s
t
r
abaja
r
con
un alto nivel de ab
s
tracción.
La última alternativa e
s
crear aplicacione
s
SDN exte
r
na
s
a
la plataforma de
s
oft
w
are del cont
r
olado
r
SDN que e
s
té ope
-
rando en la red, u
s
ando herramienta
s
pa
r
a el de
s
a
rr
ollo de
aplicacione
s
que permitan co
ns
umi
r
y/o expone
r
s
e
r
vicio
s
a
travé
s
de la
A
PI hacia el norte que e
s
te o
fr
ezca.
Como con
s
ecuencia, a la hora de de
s
a
rr
olla
r
una aplicación
S
DN
e
s
pecí
f
ica, lo
s
programado
r
e
s
pueden en
fr
enta
rs
e a
interrogante
s
como: ¿cuál de lo
s
g
r
upo
s
de he
rr
amienta
s
44
R
ev
i
st
a
T
é
c
n
i
c
a
de
l
a
E
m
p
r
e
s
a
de
T
e
l
e
c
o
m
un
i
c
a
c
i
o
n
e
s
de
C
u
b
a
S.
A
.
J
U
L
I
O / D
I
C
I
E
M
B
R
E
2016
V
O
L
.
13
4
5
T
É
C
N
I
C
A
T
É
C
N
I
C
A
di
s
ponibles es más apropiado para el desarrollo de una apli
-
cación en cuestión y qué elementos se deban tener en cuenta
para selecciona
r
entre esas herramientas? ¿es más factible de
-
s
a
r
rolla
r
la aplicació
n
en cuestión como interna o exte
r
na a la
plata
f
o
r
ma del cont
r
olador? y ¿qué parámetros se deben tene
r
en cuenta al desa
rr
ollar aplicaciones internas o externas?
A continuación, se abordan algunos aspectos imp
or
tantes
que ayudan a los programadores a seleccionar la
s
he
rr
a
-
mie
n
tas y la
f
o
r
ma más apropiada para desarrollar una apli
-
cación
S
DN especí
f
ica, de esta forma, se dará respuesta a las
inter
r
ogantes planteadas anteriormente.
R
e
c
o
m
en
d
a
c
i
o
ne
s
p
a
r
a
e
l
d
e
s
a
rr
o
ll
o
d
e
a
p
li
c
a
c
i
o
ne
s
SDN
y
p
a
r
a
l
a
s
e
l
e
cc
i
ó
n
d
e
l
a
s
he
rr
a
m
i
en
t
a
s
La
s
r
ecomendacio
n
es que se presentan a continuación pe
r-
miten que el p
r
og
r
amador, teniendo como base las ca
r
ac
-
terí
s
ticas de la aplicación a desarrollar, sea capaz de dete
r-
mina
r
cuál de las
f
ormas de desarrollo es la más adecuada
y de selecciona
r
el grupo de herramientas apropia
d
as pa
r
a
s
u c
r
eación. Consecuentemente, se propone com
o
p
r
ime
r
pa
s
o
r
ealiza
r
una descripción de la aplicación que se quie
r
e
de
s
a
rr
olla
r
.
Exi
s
ten va
r
ios aspectos que pudieran tenerse en cue
n
ta pa
r
a
ca
r
acte
r
iza
r
las aplicaciones
SDN
.
S
in embargo, inicialmen
-
te, es su
f
iciente con que el programador de
f
ina la función es
-
pecí
f
ica de
r
ed
(
en
r
utamiento, seguridad, calidad de
s
e
r
vicio,
ge
s
tión de dispositi
v
os, etc.) que va a realizar la aplicación a
de
s
a
rr
olla
r
o si se va a implementar una combinació
n
de esas
f
unciones. Con esta información se puede clasi
f
icar la apli
-
cación como simple o compleja y determinar si es necesa
r
io
que inte
r
actúe
fr
ecuentemente con los switches subyacentes
o con los se
r
vicios que ofrece el controlador
SDN
q
ue esté
operando en la
r
ed.
Ante
r
io
r
mente se dijo que los controladores
SDN
de p
r
ime
-
r
a
g
ene
r
ación o
fr
ecen a los programadores una inte
rf
az de
p
r
og
r
amación de bajo nivel de abstracción. Esta condición
s
e hace mucho má
s
notable y perjudicial si la aplicación a
de
s
a
rr
olla
r
debe cumplir varias funciones de red al mismo
tiempo. Muchas aplicaciones
SDN
requieren que el mismo
t
r
á
f
ico sea p
r
ocesad
o
de diferentes formas, por ejemplo, una
aplicación debe en
r
utar el trá
f
ico basándose en la di
r
ección
I
P
d
estino, y a su vez debe monitorizarlo por la dirección
I
P
f
uente.
S
e debe aplicar una política de control de acceso pa
r
a
elimina
r
el t
r
á
f
ico de una fuente no deseada y lueg
o
en
r
uta
r
el trá
f
ico
r
estante por la dirección I
P
destino. En estos ca
-
s
o
s
, los p
r
og
r
amadores deben trabajar con especial cuidado
para obtene
r
los
r
esultados que desean, pues las reglas c
r
ea
-
da
s
pa
r
a cumpli
r
con una función de red especí
f
ica pueden
anula
r
las
r
eglas de otra.
P
ara garantizar el buen desempeño
de estas aplicaciones complejas, los programadore
s
deben
combina
r
manualmente la lógica de reenvío para cada
f
un
-
ción que la aplicaci
ó
n va a desempeñar, lo cual es una ta
r
ea
ba
s
tante tediosa y difícil cuando se trabaja con una inte
rf
az
de
pr
og
r
amación de bajo nivel de abstracción.
lenguaje que pre
f
iera.
A
partir de e
s
e momento, toda
s
la
s
aplicacione
s
para la red (
s
imple
s
y compleja
s
) tendrán que
s
er de
s
arrollada
s
u
s
ando el lenguaje de programación que
el nuevo controlador implemente.
La
s
implantacione
s
de lo
s
nuevo
s
lenguaje
s
de programación
Pyretic (
s
obre lo
s
controladore
s
P
OX
y Ryu) y Frenetic (
s
obre
el controlador
NOX
) e
s
tán di
s
ponible
s
en
G
it
H
ub [12].
Por otro lado, como
s
e mue
s
tra en la
f
igura 2,
s
i la aplicación
a de
s
arrollar e
s
compleja, pero el programador pre
f
iere no
u
s
ar lo
s
nuevo
s
f
r
a
m
ewo
r
k
s
de programación para la
s
S
DN
,
entonce
s
s
e proponen otra
s
do
s
opcione
s
para el de
s
arrollo
de la aplicación: crearla u
s
ando la
s
herramienta
s
que para
ello el controlador S
DN
provee, pue
s
a pe
s
ar de ofrecer una
interfaz de programación de bajo nivel que di
f
iculta el de
s
a-
rrollo de aplicacione
s
compleja
s
, lo cierto e
s
que no lo hace
impo
s
ible; o crearla en una plataforma para el de
s
arrollo de
s
oft
w
are diferente a la del controlador, u
s
ando herramienta
s
que permitan que e
s
te con
s
uma y/o exponga
s
ervicio
s
a tra-
vé
s
de la
A
PI hacia el norte que ofrece.
Lo
s
controladore
s
S
DN
vienen programado
s
con la capacidad
de brindar cierto
s
s
ervicio
s
de red.
M
ucho
s
de ello
s
incluyen
módulo
s
para de
s
cubrimiento de topología, ge
s
tión de di
s
po
s
i-
tivo
s
y enrutamiento, entre otro
s
, que pueden
s
er u
s
ado
s
como
ba
s
e para el de
s
arrollo de nueva
s
aplicacione
s
para la
s
S
DN
.
La
s
aplicacione
s
S
DN
, generalmente, nece
s
itan interac-
tuar con alguno
s
de lo
s
s
ervicio
s
ante
s
mencionado
s
. Por
ejemplo, puede que nece
s
iten conocer la topología de la
red en un momento determinado, el e
s
tado de lo
s
enlace
s
(activo
s
o inactivo
s
), cuále
s
s
on la
s
computadora
s
que e
s
-
tán conectada
s
a la red, entre otra
s
informacione
s
que pue-
den ofrecer lo
s
controladore
s
.
A
lguna
s
aplicacione
s
S
DN
,
para de
s
empeñar correctamente
s
u
s
funcione
s
, nece
s
itan
interactuar frecuentemente con dicho
s
s
ervicio
s
o con
s
-
tantemente tendrán que intercambiar información con lo
s
s
witche
ss
ubyacente
s
. Tal e
s
el ca
s
o de aplicacione
s
que re-
quieren el reenvío de paquete
s
, la manipulación de evento
s
Packet-in, o ejercer un control muy granular
s
obre lo
s
f
lu-
jo
s
de dato
s
.
As
ími
s
mo, alguna
s
aplicacione
s
S
DN
deben
re
s
ponder rápidamente ante lo
s
evento
s
que ocurren en la
red, pue
s
un
s
witch no puede retener un paquete e
s
perando
a que llegue la re
s
pue
s
ta de cómo proce
s
arlo, de
s
de una
aplicación con alta latencia.
Por otra parte, exi
s
ten aplicacione
s
que no e
s
tán pen
s
ada
s
para ejercer un control tan granular
s
obre lo
s
f
lujo
s
de dato
s
,
ni e
s
nece
s
ario que reaccionen rápidamente ante lo
s
evento
s
que ocurren en la red. Tal e
s
el ca
s
o de aplicacione
s
para el
aba
s
tecimiento de ruta
s
, la in
s
pección de
f
lujo
s
u otra
s
que
permiten monitorear el comportamiento de la red y del con-
trolador S
DN
de forma remota.
Por ejemplo,
s
e puede nece
s
itar una aplicación para mover
cinco Terabyte
s
de dato
s
entre do
s
extremo
s
de un Centro
de
D
ato
s
, teniendo e
s
to
s
que atrave
s
ar una gran malla de
s
witche
s
para llegar a
s
u de
s
tino. La aplicación a de
s
arrollar
debe proveer una ruta que garantice la mejor manera de que
e
s
ta gran cantidad de dato
s
at
r
avie
s
e la
r
ed. En
f
unción de
e
s
to, debe in
s
peccionar la topología pa
r
a plani
f
ica
r
la mejo
r
ruta, in
s
talar la
s
nueva
s
entrada
s
en la
s
tabla
s
de
f
lujo de lo
s
s
witche
s
s
ubyacente
s
y e
s
peci
f
ica
r
que e
s
ta
s
ent
r
ada
s
deben
permanecer por varia
s
hora
s
o
día
s
. E
s
te tipo de aplicacio
-
ne
s
pueden programar toda
s
la
s
r
egla
s
nece
s
a
r
ia
s
de
s
de una
plataforma diferente a la del cont
r
olado
r
SDN y comunica
rs
e
con e
s
te a travé
s
de
s
u
A
PI hacia el no
r
te, pue
s
po
r
la
f
un
-
ción va a de
s
empeñar la función de aba
s
tecimiento de
r
uta.
La aplicación no nece
s
ita interactua
r
fr
ecuentemente con lo
s
s
ervicio
s
ofrecido
s
por la plata
f
o
r
ma del cont
r
olado
r
, ni con
lo
s
s
witche
s
s
ubyacente
s
.
A
demá
s
, e
s
ta
s
aplicacione
s
pueden
demorar en realizar toda
s
s
u
s
funcione
s
s
in que con
s
tituya un
inconveniente. [2]
La
s
aplicacione
s
de e
s
te tipo
n
o nece
s
itan cumpli
r
s
u
s
ta
r
ea
s
con inmediatez, por lo que no e
s
nece
s
a
r
io que po
s
ean una
baja latencia. Por el contrario,
s
uelen
s
e
r
muy e
f
ectiva
s
po
r
el
s
imple hecho de actuar preventivamente, y pa
r
a log
r
a
r
lo,
no nece
s
itan interactuar frec
u
entemente con lo
s
s
e
r
vicio
s
ofrecido
s
por el controlador S
D
N, ni inte
r
cambia
r
in
f
o
r
ma
-
ción con
s
tantemente con lo
s
s
witche
s
s
ubyacente
s
.
Como
s
e mue
s
tra en la
f
igura 3, donde
s
e
r
e
s
umen la
s
r
e
-
comendacione
s
para el de
s
a
rr
ollo de aplicacione
s
SDN
s
imple
s
, lo primero e
s
que el p
r
og
r
amado
r
dete
r
mine
s
i
e
s
nece
s
ario que la aplicació
n
a de
s
a
rr
olla
r
inte
r
actúe
fr
e
-
cuentemente con lo
s
s
ervicio
s
o
fr
ecido
s
po
r
el cont
r
olado
r
S
DN
o con lo
s
s
witche
s
s
u
b
yacente
s
. Si e
s
te dete
r
mina
que no e
s
nece
s
ario que la aplicación inte
r
actúe
fr
ecuen
-
temente con lo
s
s
ervicio
s
del cont
r
olado
r
SDN ni con lo
s
s
witche
s
s
ubyacente
s
,
s
e recomienda que
s
ea c
r
eada
s
ob
r
e
una plataforma para el de
s
arrollo de
s
o
f
twa
r
e di
f
e
r
ente a la
del controlador (como una aplicación exte
r
na
)
, y haciendo
u
s
o de herramienta
s
que permitan con
s
umi
r
y/o expone
r
s
ervicio
s
a travé
s
de la
A
PI hacia el no
r
te que e
s
te o
fr
ezca
generalmente a travé
s
de una AP
I
REST, aunque puede
s
e
r
otra, pue
s
la interfaz para la c
o
municación ent
r
e ambo
s
aún
no ha
s
ido e
s
tandarizada.
D
e e
s
ta
f
o
r
ma, la aplicación no
tiene que compartir innece
s
a
r
iamente con ot
r
o
s
módulo
s
lo
s
recur
s
o
s
del controlador, como puede
s
e
r
la memo
r
ia
y la capacidad de proce
s
amiento. Ot
r
a de la
s
ventaja
s
del
de
s
arrollo de la
s
aplicacione
s
SDN exte
r
na
s
e
s
que no obli
-
ga al programador a trabajar en el lenguaje de p
r
og
r
ama
-
ción en el que
s
e ba
s
a el cont
r
olado
r
,
s
ino que pod
r
á ha
-
cerlo u
s
ando cualquier otro lenguaje que p
r
e
f
ie
r
a
(J
ava, C,
Python, etc),
s
iempre que le pe
r
mita con
s
umi
r
y/o expone
r
s
ervicio
s
a travé
s
de la
A
PI hacia el no
r
te que el cont
r
ola
-
dor ofrezca.
A
ctualmente,
s
on mucho
s
lo
s
lenguaje
s
de p
r
og
r
amación
que ofrecen herramienta
s
para con
s
umi
r
y/o expone
r
s
e
r
vi
-
cio
s
a travé
s
de
A
PI
s
ba
s
ada
s
en la a
r
quitectu
r
a REST. Ent
r
e
ella
s
,
s
e encuentran el f
r
a
m
ewo
r
k ASP. NET Web AP
I
pa
r
a
la Plataforma .
N
ET de
M
icroso
f
t
[
18
]
, el f
r
amewo
r
k Sp
r
ing
(a partir de la ver
s
ión 3.0) pa
r
a la plata
f
o
r
ma
J
ava, la
s
bi
-
blioteca
s
D
jango REST F
r
a
m
ewo
r
k 3.0 y Python Reque
s
t
de Python y el f
r
a
m
ewo
r
k jQue
r
y de
J
avaSc
r
ipt, po
r
s
olo
mencionar alguno
s
.
Teniendo en cuenta lo antes planteado, si la aplicación a de-
sa
rr
olla
r
es clasi
f
icada como compleja, se
r
ecomien
d
a que
sea c
r
eada usando alguno de los lenguajes de p
r
og
r
amación
desa
rr
ollados especialmente pa
r
a las S
DN
. Sin emba
r
go, e
s
-
tos nuevos fra
m
eworks de p
r
og
r
amación pa
r
a las S
DN
, no
son dist
r
ibuciones independientes del cont
r
olado
r
SD
N
s
o-
b
r
e el cual están implementadas. Es deci
r
, estos fra
m
ewo
r
k
s
no pueden se
r
instalados como plug
-
ins sob
r
e el cont
r
olador
S
DN
que esté ope
r
ando en la
r
ed, y pa
r
a pode
r
esc
r
ibir nue-
vas aplicaciones de
r
ed haciendo uso de los lenguaje
s
que
estos fra
m
eworks implementan, hab
r
á que usa
r
los como el
nuevo cont
r
olado
r
de la
r
ed.
A
demás, es impo
r
tante mencio-
na
r
que el empleo de los mismos también tiene sus incon-
venientes.
U
na de las desventajas de su uso es que la
s
apli-
caciones esc
r
itas con los nuevos lenguajes de p
r
og
r
amación
pa
r
a las S
DN
no pod
r
án expone
r
sus se
r
vicios a ot
r
as aplica-
ciones, solamente pod
r
án dete
r
mina
r
el estado de los di
s
po-
sitivos subyacentes haciendo uso de la inte
rf
az que ofrezca
el cont
r
olado
r
S
DN
hacia el su
r
(
el p
r
otocolo
O
penFlo
w
).
Po
r
lo ante
r
io
r
, como puede obse
r
va
r
se en la
f
igu
r
a 2, donde
se muest
r
an las
r
ecomendaciones pa
r
a el desa
rr
ollo de apli-
caciones S
DN
complejas, lo p
r
ime
r
o es que el p
r
og
r
amador
decida si c
r
ea
r
á la aplicación usando los nuevos fra
m
ewo
r
k
s
de p
r
og
r
amación pa
r
a las S
DN
o no.
A
lgunos aspecto
s
que
se pudie
r
an conside
r
a
r
pa
r
a toma
r
esta decisión pueden
s
er:
si está dispuesto a instala
r
un nuevo cont
r
olado
r
pa
r
a la red,
la expe
r
iencia que posea en el uso del lenguaje de progra-
mación que el fra
m
ework implementa y las desventaja
s
que
tiene el uso de estos nuevos lenguajes.
Si el p
r
og
r
amado
r
decide desa
rr
olla
r
la aplicación u
s
ando
los nuevos lenguajes de p
r
og
r
amación pa
r
a las S
DN
, ya
que estos pe
r
miten esc
r
ibi
r
complejos p
r
og
r
amas de red
s
in
p
r
eocupa
r
se po
r
los detalles de los switches subyacente
s
,
entonces, debe p
r
ocede
r
a instala
r
la implementación del
F
i
g
u
r
a
2
.
R
e
c
o
m
e
n
d
a
c
i
o
n
e
s
p
a
r
a
e
l
de
s
a
rr
o
ll
o
de
a
p
li
c
a
c
i
o
n
e
s
SDN
c
o
m
p
l
e
j
a
s
.
F
u
e
n
t
e
:
E
l
a
b
o
r
a
c
i
ó
n
p
r
o
p
i
a
.
SíNo
frame
w
ork d
e
p
r
o
-
SDN qu
e
p
re
f
i
er
a
Sí
No
apli
c
a
c
ión
usando al
g
ún
DSL pa
r
a SDN
(Apli
c
a
c
ión
int
er
na)
apli
c
a
c
ión usando
las h
err
a
m
i
e
ntas
qu
e
of
rece
e
l
c
ont
r
olado
r
SDN
(Apli
c
a
c
ión int
er
na)
D
e
sa
rr
olla
r
la
D
e
sa
rr
ollas laD
e
sa
rr
olla
r
la
apli
c
a
c
ión usando herra
-
m
i
e
ntas qu
e
p
erm
itan
c
on
-
su
m
i
r
y/o
ex
pon
er
ser
v
i
c
ios
a t
r
a
vé
s d
e
la API ha
c
ia
e
l
no
r
t
e
d
e
l
c
ont
r
olador S
D
N
(Apli
c
a
c
ión
ex
t
er
na)
¿
Usa
r
los
nu
ev
os
fr
am
ewor
k
s
d
e
p
r
o
gr
a
m
a
c
ión
pa
r
a
las
S
D
N
?
¿Usar
Instala
r
e
l
las
herra-
gr
a
m
a
c
ión pa
r
a las
mientas
que
ofrece
el
cotrolador?
T
É
C
N
I
C
A
4
6
R
e
v
i
s
t
a
T
é
c
n
i
c
a
d
e
l
a
E
m
p
r
e
s
a
d
e
T
e
l
e
c
o
m
un
i
c
a
c
i
o
n
e
s
d
e
C
u
b
a
S
.
A
.
J
U
L
I
O / D
I
C
I
E
M
B
R
E
2016
V
O
L
.
13
4
7
Po
r
ot
r
o lado, si la aplicación a desarrollar es simple y el
p
r
o
gr
amado
r
dete
r
mina la necesidad de que esta inte
r
actúe
frecuentemente con el controlador
SDN
o con los switches
s
ubyacentes po
r
la
f
unción que va desempeñar en la
r
ed,
(
Fi
-
gu
r
a 3
)
se
r
ecomien
d
an dos opciones para el desarrollo de la
aplicación: usa
r
las herramientas que ofrece por de
f
ecto la
plata
f
o
r
ma del controlador que esté operando en la red o uti
-
liza
r
alguno de los n
u
evos fra
m
eworks de programación pa
r
a
la
s
S
DN. En ambos casos, la aplicación desarrollada va a eje
-
cuta
r
se sob
r
e la plataforma soft
w
are del controlador, po
r
lo
que puede se
r
clasi
f
icada como una aplicación
SDN
inte
r
na.
En este punto, el p
ro
gramador debe determinar de acue
r
do
a
s
us p
r
e
f
e
r
encias la forma de desarrollar la aplicación,
teniendo en cuenta las desventajas que pudiera trae
r
el uso
de los nuevos lenguajes y que para usarlos debe instala
r
alguno de los cont
r
oladores que lo implementan.
como fue mencionado anteriormente, o a travé
s
de una
GU
I,
s
iempre que el controlador S
DN
la po
s
ea.
M
ucho
s
controladore
s
, a
f
in de hacer
s
egura
s
e
s
ta
s
interaccione
s
,
incluyen f
r
a
m
ewo
r
k
s
para la autenticación que pueden
s
er
u
s
ada
s
por la
s
nueva
s
aplicacione
s
de
s
arrollada
s
.
Según lo planteado anteriormente, alguno
s
a
s
pecto
s
a tener en
cuenta para el de
s
arrollo de aplicacione
s
S
DN
interna
s
s
on:
El lenguaje de programación en que
s
e de
s
arrollará, lo
cual depende del lenguaje en el que
s
e ba
s
a el controlador
S
DN
s
obre el que va a correr.
Si va a exponer o no
s
u
s
s
ervicio
s
para que
s
ean utiliza-
do
s
por otra
s
aplicacione
s
interna
s
.
Si va a con
s
umir la
A
PI hacia el norte del controlador para
u
s
ar lo
s
s
ervicio
s
que ofrecen otra
s
aplicacione
s
externa
s
.
Si va a permitir que aplicacione
s
externa
s
hagan u
s
o de
s
u
s
funcionalidade
s
a travé
s
de la
A
PI hacia el norte o
GU
I
que el controlador ofrezca.
A
demá
s
, e
s
importante hacer nota
r
que no todo
s
lo
s
con
-
troladore
s
ofrecen la
s
mi
s
ma
s
po
s
ibilidade
s
pa
r
a el de
s
a
-
rrollo de aplicacione
s
interna
s
, pue
s
depende de la
s
p
r
e
s-
tacione
s
que
s
u
s
fabricante
s
hayan decidido ag
r
ega
r
le
s
,
la
s
cuale
s
pueden facilitar, e
n
mayo
r
o meno
r
medida, el
de
s
arrollo de nueva
s
aplicacione
s
.
C
o
n
c
l
u
s
i
o
ne
s
En la
s
S
DN
la
s
aplicacione
s
son notable
s
, po
r
ello e
s
muy
importante conocer cómo de
s
a
rr
olla
r
la
s
. En
f
unción de
e
s
to, la inve
s
tigación pre
s
entada cla
s
i
f
ica la
s
aplicacione
s
S
DN
de acuerdo a la funció
n
que de
s
empeñan en la
r
ed
(
s
eguridad, calidad de
s
ervicio, ingenie
r
ía de t
r
á
f
ico, etc.
)
;
a la plataforma de
s
oft
w
are
s
ob
r
e la que co
rr
en
(I
nte
r
na
s
y Externa
s
al controlador S
D
N
)
y a la complejidad de la
s
mi
s
ma
s
(Simple o Compleja
s)
.
Si va a hacer u
s
o, para cumplir
s
u
s
funcionalidade
s
, deTeniendo como ba
s
e tal cla
s
i
f
icación
s
e p
r
e
s
enta un con
-
alguno
s
s
ervicio
s
que
s
e ofrezcan de forma predetermina-
junto de recomendacione
s
útile
s
pa
r
a el de
s
a
rr
ollo de
da en la plataforma del controlador.
aplicacione
s
S
DN
(Interna
s
o Exte
r
na
s
, Simple
s
o Com
-
Si
s
e va a integrar con algún f
r
a
m
ewo
r
k que ofrezca el
pleja
s
) y para la
s
elección de la
s
he
rr
amienta
s
nece
s
a
r
ia
s
controlador para la autenticación, o va a u
s
ar algún otro
para ello, de
s
tacándo
s
e la
s
po
s
ibilidade
s
de lo
s
nuevo
s
mecani
s
mo para hacer
s
egura la interacción con otra
s
apli-lenguaje
s
de programación pa
r
a la c
r
eación de aplicacio
-
cacione
s
a travé
s
de la red.
ne
s
S
DN
compleja
s
.
R
e
f
e
r
en
c
i
a
s
b
i
b
li
o
g
r
á
f
i
c
a
s
[1]
Y
.
J
arraya, T.
M
adi, and
M
.
D
ebbabi,
"A
Survey and a Layered Taxonomy of Soft
w
are-
D
e
f
ined
N
et
w
orking,
"
IEEE CO
MM
UN
I
CAT
I
ON
S
U
R
V
E
Y
S & T
U
T
O
RI
A
LS, vol. 16, p. 26, 2014.
[2]
H
P,
"H
P S
DN
Controller
A
rchitecture,
"
in Technical Solution
G
uide, ed, 2013, p. 14.
[3]
M
. Sidana. (2014).
N
orthbound application
s
on S
DN
controller
s
.
A
vailable: http://open
s
dnet
w
orking.blog
s
pot.com/2014/09/no
r
th bound
-
applica
-
tion
s
-on-
s
dn.html
[4] Ci
s
co. (2014). Ci
s
co Exten
s
ible
N
et
w
ork Controller
D
ata Sheet.
A
vailable: http://ci
s
co.com/c/en/u
s
/product
s
/collate
r
al /cloud
-s
y
s
tem
s-
management/
exten
s
iblenet
w
ork-controller-xnc/data_
s
heet_c78-729453.html
[5]
H
P. (2014,
D
ata
s
heet
H
P
VAN
S
DN
Controller Soft
w
are.
[6] S. Rao. (2015). S
DN
Serie
s
Part Three:
NOX
, the
O
riginal
O
penFlo
w
Controller.
A
vailable: http://thene
ws
tack.io/
s
dn
-s
e
r
ie
s
pa
r
t
-
iii
-
nox
-
the
-
o
r
iginal
-
open
f
lo
w
controller/
[7] S. Rao. (2015). S
DN
Serie
s
Part T
w
o: Trema, a Frame
w
ork for
D
eveloping
O
penFlo
w
Controller
s
in Ruby and C
-
The New Stack. Available:
http://thene
ws
tack.io/
s
dn-
s
erie
s
-part-iitrema-a-frame
w
ork-for-developingopen
f
lo
w
-controller
s
-in-ruby-and-c/
[8] T. F. Rui
K
ubo,
Y
uji
A
ga
w
a and
H
ikaru Suzuki. (2015). Ryu S
DN
Frame
w
ork.
A
vailable: http
s
://
www
.nttreview.jp/a
r
chive/ntttechnical.php?content
s
=ntr201408fa4.html
[9]
N
. Fo
s
ter, R.
H
arri
s
on,
M
.
J
. Freedman,
J
. Rexford, and
D
. Walker. (2012, Frenetic:
A
H
igh-Level Language fo
r
OpenFlow Netwo
r
k
s
. 10.
[10] C.
M
.
JO
S
HUA
REIC
H
,
NA
TEF
O
STER, and
A
.
D
. W.
J
E
NN
IFER RE
X
F
O
R
D
. (2013,
M
odular S
DN
Programming with Py
r
etic.
[11] C.
M
on
s
anto,
N
. Fo
s
ter, R.
H
arri
s
on, and
D
. Walker,
"A
Compiler and Run-time Sy
s
tem for
N
et
w
ork Programming Language
s
,
"
p. 14, 2013.
[12] (2015). Frenetic-lang/frenetic-vm.
A
vailable: http
s
://github.com/frenetic-lang/frenetic-vm
(
Ar
t
í
c
u
l
o
r
e
c
i
b
i
d
o
e
n
n
o
v
i
e
m
b
r
e
de
2015
y
a
p
r
o
b
a
d
o
e
n
f
eb
r
e
r
o
de
2016
)
Una vez p
r
esentadas algunas recomendaciones para la se
-
lección de he
rr
amientas para el desarrollo de aplicaciones
SD
N
, es impo
r
tante hacer notar que aunque en algunos
ca
s
os la utilización de ciertas herramientas sea lo más
ap
r
opiado,
r
ealme
n
te la selección
f
inal que se haga va a
depende
r
en g
r
an medida de las necesidades, los conoci
-
mie
n
tos y la expe
r
iencia que posean los programado
r
es en
el trabajo con las mismas, así como del tiempo que dispon
-
gan pa
r
a el desa
rr
ollo de las aplicaciones.
Por ot
r
a pa
r
te, el desarrollo de aplicaciones
SDN
depende en
gran medida de las características y posibilidades que b
r
inde
el cont
r
olado
r
que o
p
era en la red. En particular, la c
r
eación
de aplicaciones inte
r
nas depende del lenguaje que este o
fr
ez
-
ca
y
de los se
r
vicios que brinde de forma predete
r
minada
(
descub
r
imiento de topología, enrutamiento, con
f
igu
r
ación
de dispositivos, etc
),
los cuales pueden ser utilizado
s
po
r
las
nuevas aplicaciones.
P
or otro lado, el desarrollo de aplicaciones
exte
r
nas depende de la interfaz de
P
rogramación de
A
plica
-
ciones que el cont
r
olador ofrezca hacia el norte, pue
s
, en de
-
pendencia del tipo de
A
P
I
, se selecciona
r
án las he
rr
amienta
s
necesa
r
ias pa
r
a ga
r
antiza
r
que las aplicaciones exte
r
na
s
pue-
dan consumi
r
y/o expone
r
se
r
vicios a t
r
avés de la misma.
Po
r
ejemplo, las he
rr
amientas mencionadas pa
r
a el de
s
a-
rr
ollo de aplicaciones S
DN
exte
r
nas están pensada
s
para
cont
r
olado
r
es que p
r
esenten una
A
P
I
RESThacia el norte.
A
dicionalmente, cuando
f
ue
r
on clasi
f
icadas las aplicacione
s
S
DN
se planteó que algunas de ellas son conocidas como
híb
r
idas, pues pa
r
a desempeña
r
e
f
icientemente las tarea
s
que se p
r
oponen necesitan la inte
r
acción de va
r
ios módulo
s
inte
r
nos y exte
r
nos a la plata
f
o
r
ma del cont
r
olado
r
. La
s
re-
comendaciones
r
ealizadas en este apa
r
tado también pueden
se
r
conside
r
adas pa
r
a la selección de las he
rr
amientas para el
desa
rr
ollo de este tipo de aplicaciones. En este caso se debe
aplica
r
a cada módulo que con
f
o
r
ma la aplicación híbrida,
ayudando a selecciona
r
entonces las he
rr
amientas adecuada
s
pa
r
a el desa
rr
ollo de cada uno de ellos po
r
sepa
r
ado.
C
a
r
a
c
t
e
r
í
s
t
i
c
a
s
d
e
l
d
e
s
a
rr
o
ll
o
d
e
a
p
li
c
a
c
i
o
ne
s
SDN
I
n
t
e
r
n
a
s
U
na ca
r
acte
r
ística común de las aplicaciones S
D
N inter-
nas, independientemente de las he
rr
amientas con la
s
que
hayan sido desa
rr
olladas, es el hecho de que necesitan in-
te
r
actua
r
fr
ecuentemente con algunos se
r
vicios que corren
en la plata
f
o
r
ma del cont
r
olado
r
, como pueden se
r
lo
s
mó-
dulos pa
r
a
r
eenvío de paquetes, inte
r
cambio de men
s
aje
s
O
penFlow con los switches subyacentes y descub
r
imiento
de topología, ent
r
e ot
r
os que pudie
r
a b
r
inda
r
el controla-
do
r
S
DN
que se esté usando en la
r
ed.
A
demás, esta
s
apli-
caciones deben compa
r
ti
r
con los módulos existente
s
en la
plata
f
o
r
ma del cont
r
olado
r
los
r
ecu
r
sos de la misma, tale
s
como la memo
r
ia y el espacio de p
r
ocesamiento.
Es impo
r
tante destaca
r
que las aplicaciones c
r
eadas, hacien-
do uso de las he
rr
amientas que o
fr
ece po
r
de
f
ecto la plata-
f
o
r
ma del cont
r
olado
r
, deben se
r
desa
rr
olladas en el lengua-
je de p
r
og
r
amación en el que este haya sido implementado.
A
demás, estas aplicaciones no solo pueden consumir lo
s
se
r
vicios que o
fr
ece el cont
r
olado
r
S
DN
, sino que también
pueden hace
r
públicos sus p
r
opios se
r
vicios pa
r
a que
s
ean
utilizados po
r
ot
r
as aplicaciones inte
r
nas
(
gene
r
almente a
t
r
avés de
A
P
I
Java
)
o exte
r
nas a la plata
f
o
r
ma del controla-
do
r
a t
r
avés de la
A
P
I
hacia el no
r
te.
Po
r
medio de la
A
P
I
hacia el no
r
te del cont
r
olador, una
aplicación inte
r
na también puede consumi
r
los se
r
vicio
s
que o
fr
ezcan ot
r
as aplicaciones exte
r
nas. Po
r
ejemplo, una
aplicación que cumpla la
f
unción de co
r
ta
f
uegos, puede
actualiza
r
su base de in
f
o
r
mación cada cie
r
to tiempo de
s
-
de una base de datos que
r
esida en un se
r
vido
r
r
emoto,
lo que puede hace
r
a t
r
avés de la
A
P
I
REST que mucho
s
cont
r
olado
r
es S
DN
o
fr
ecen.
A
demás, los p
r
og
r
amado
r
es pueden diseña
r
aplicacione
s
S
DN
inte
r
nas que pe
r
mitan a los administ
r
ado
r
es de red
inte
r
actua
r
con las
f
uncionalidades que las misma
s
brin-
dan. Estos pod
r
án hace
r
lo a t
r
avés de una
A
P
I
REST,
F
i
g
u
r
a
3
.
R
e
c
o
m
e
n
d
a
c
i
o
n
e
s
p
a
r
a
e
l
de
s
a
rr
o
ll
o
de
a
p
li
c
a
c
i
o
n
e
s
SDN
s
i
m
p
l
e
s
.
F
u
e
n
t
e
:
E
l
a
b
o
r
a
c
i
ó
n
p
r
o
p
i
a
.
NoSí
Desar
r
ollar la
he
rr
a
m
ientas
que pe
rm
itan
Instala
r
e
l
fr
am
ewor
k
consu
m
i
r
y/o
d
e
p
r
o
gr
a
m
a
c
ión
pa
r
a
e
xpone
r
se
rv
icios
las
S
D
N
qu
e
p
re
f
i
er
a
De
sa
rr
olla
r
la
apli
-
a tra
v
és de la A
P
I
c
a
c
ión
usando
las
hacia el norte del
h
err
a
m
i
e
ntas
qu
e
cont
r
olador SDN
De
sa
rr
olla
r
la
apli
c
a
c
ión
o
frece
e
l
c
ont
r
ola
-
(Aplicaciónes
usando
al
g
ún
D
SL
pa
r
a
S
D
N
do
r
S
D
N
(Apli
c
a
c
ión
e
x
te
r
na)
(Apli
c
a
c
ión
int
er
na)
int
er
na)
los
nu
ev
os
fr
am
ewor
k
s
d
e
apli
c
ación usando
Sí
p
r
o
gr
a
m
a
c
ión
pa
r
a
N
o
las
S
D
N
?
¿
N
ece
sita
int
er
a
c
tua
r
frec
u
e
nt
eme
nt
e
c
on
los
disposi
t
i
v
os
subya
ce
nt
e
s
o
c
on
los
s
erv
i
c
ios
d
e
c
ont
r
olado
r
S
D
N
?
¿
Usa
r