0% encontró este documento útil (0 votos)
33 vistas8 páginas

Switch Openflow

Cargado por

Azhu Quintos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas8 páginas

Switch Openflow

Cargado por

Azhu Quintos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Introducción un conjunto de entradas de flujo; 

cada entrada de
flujo consta de campos coincidentes, contadores y
Este documento describe los requisitos de un un conjunto de instrucciones para aplicar a paquetes
conmutador lógico OpenFlow. Información coincidentes (ver 5.2).
Adicional
El emparejamiento comienza en la primera tabla de
Esta especificación cubre los componentes y las flujo y puede continuar con tablas de flujo
funciones del conmutador y el protocolo de adicionales de la tubería (ver
conmutador OpenFlow para gestionar un
conmutador OpenFlow desde un 5.1). Las entradas de flujo coinciden con los
paquetes en orden de prioridad, siendo la primera
controlador OpenFlow remoto. entrada coincidente en cada tabla
utilizado (ver 5.3). Si se encuentra una entrada
coincidente, las instrucciones asociadas con la
entrada de flujo específica son
ejecutado (ver 5.5). Si no se encuentra ninguna
coincidencia en una tabla de flujo, el resultado
depende de la configuración de la entrada de flujo
de tabla perdida: por ejemplo, el paquete puede ser
reenviado a los controladores a través de OpenFlow
canal, abandonado o puede continuar a la siguiente
tabla de flujo (ver 5.4).
Las instrucciones asociadas con cada entrada de
flujo contienen acciones o modifican el
procesamiento de la tubería (consulte
Figura 1: Componentes principales de un 5.5). Las acciones incluidas en las instrucciones
interruptor OpenFlow. describen el reenvío de paquetes, la modificación de
paquetes y la tabla de grupos
2 componentes del interruptor
Procesando. Las instrucciones de procesamiento de
Un conmutador lógico OpenFlow consta de una o canalización permiten enviar paquetes a tablas
más tablas de flujo y una tabla de grupo, que posteriores para más
realizan paquetes búsquedas y reenvío, y uno o más
canales OpenFlow a un controlador externo (Figura procesar y permitir que la información, en forma de
1). los metadatos, se comunique entre tablas. Mesa
el interruptor se comunica con el controlador y el el procesamiento de la tubería se detiene cuando el
controlador gestiona el interruptor a través del conjunto de instrucciones asociado con una entrada
interruptor OpenFlow protocolo. de flujo coincidente no especifica
Usando el protocolo de conmutación OpenFlow, el una mesa de al lado; en este punto, el paquete se
controlador puede agregar, actualizar y eliminar suele modificar y reenviar (véase 5.6).
entradas de flujo en flujo tablas, tanto de forma
Las entradas de flujo pueden reenviarse a un
reactiva (en respuesta a paquetes) como
puerto. Suele ser un puerto físico, pero también
proactiva. Cada tabla de flujo en el interruptor
puede ser un puerto lógico
contiene
definido por el conmutador o un puerto reservado reenviar a varios puertos, un diseñador de
definido por esta especificación (ver 4.1). Los conmutadores puede optar por implementar esto
puertos reservados pueden como una sola máscara de bits dentro
especificar acciones de reenvío genéricas, como la tabla de reenvío de hardware. Otro ejemplo es el
enviar al controlador, saturar o reenviar emparejamiento; la tubería expuesta por un
utilizando métodos que no sean OpenFlow , como el OpenFlow
procesamiento de conmutadores "normal" (ver 4.5),
mientras que los puertos lógicos definidos por El conmutador puede implementarse físicamente
con un número diferente de tablas de hardware.
conmutadores
puede especificar grupos de agregación de enlaces, 3 Glosario
túneles o interfaces de bucle invertido (ver 4.4). Esta sección describe los términos clave de la
Las acciones asociadas con las entradas de flujo especificación de OpenFlow. La mayoría de los
términos son específicos de esta especificación.
también pueden dirigir paquetes a un grupo, que
especifica • Acción: operación que actúa sobre un
paquete. Una acción puede reenviar el paquete a un
procesamiento (ver 5.10). Los grupos representan
conjuntos de acciones para inundaciones, así como puerto, modificar
reenvíos más complejos. el paquete (como disminuir el campo TTL) o cambiar
semántica (por ejemplo, multitrayecto, su estado (como asociarlo con un
redireccionamiento rápido y agregación de cola). La mayoría de las acciones incluyen
enlaces). Como capa general de indirección, los parámetros, por ejemplo, una acción de establecer
grupos un campo incluye un tipo de campo y
También permite que múltiples entradas de flujo valor de campo. Las acciones pueden especificarse
reenvíen a un solo identificador (por ejemplo, como parte del conjunto de instrucciones asociado
reenvío de IP a un siguiente con una entrada de flujo o
salto). Esta abstracción permite que las acciones de en un depósito de acciones asociado con una
salida comunes en las entradas de flujo se entrada de grupo. Las acciones se pueden acumular
modifiquen de manera eficiente. en el conjunto de acciones
La tabla de grupo contiene entradas de grupo; cada del paquete o aplicado inmediatamente al paquete
entrada de grupo contiene una lista de grupos de (ver 5.8).
acciones con
• Lista de acciones: una lista ordenada de acciones
semántica dependiente del tipo de grupo (ver que pueden incluirse en una entrada de flujo en
5.10.1). Se aplican las acciones en uno o más la instrucción ApplyActions o en un mensaje de
depósitos de acciones. salida de paquetes, y que se ejecutan
a los paquetes enviados al grupo. inmediatamente en el orden de la lista.
(ver 5.7). Las acciones de una lista se pueden
Los diseñadores de conmutadores son libres de
implementar los componentes internos de cualquier duplicar, sus efectos son acumulativos.
forma conveniente, siempre que 12 © 2015; La Fundación Open Networking
y se conserva la semántica de la instrucción. Por Versión 1.5.1 de la especificación del conmutador
ejemplo, mientras que una entrada de flujo puede OpenFlow
usar un grupo de todos para
• Conjunto de acciones: un conjunto de acciones puntos específicos de la tubería, como en un puerto
incluidas en una entrada de flujo en la instrucción o en una entrada de flujo (ver 5.9). Contadores
Write-Actions que típicamente
se agregan al conjunto de acciones, o en un grupo de contar el número de paquetes y bytes que pasan a
acciones de grupo que se ejecutan en el orden del través de un elemento OpenFlow, sin embargo,
conjunto de acciones (ver otros
5.6). Las acciones de un conjunto solo pueden también se definen los tipos de contadores.
ocurrir una vez.
• Ruta de datos: la agregación de componentes de
• Action Bucket: un conjunto de acciones en un un conmutador lógico OpenFlow que están
grupo. El grupo seleccionará uno o más cubos para directamente involucrados en el procesamiento y
cada reenvío del tráfico. La ruta de datos incluye la
tubería de tablas de flujo, la
paquete.
mesa de grupo y los puertos.
• Conjunto de acciones: un conjunto de acciones
asociadas con el paquete que se acumulan mientras • Entrada de flujo: un elemento en una tabla de flujo
el paquete se que se utiliza para emparejar y procesar
paquetes. Contiene un conjunto de
procesados por cada tabla y que se ejecutan en el
orden especificado cuando el conjunto de campos coincidentes para paquetes coincidentes,
instrucciones termina una prioridad para la precedencia coincidente, un
conjunto de contadores para rastrear
procesamiento de tuberías (ver 5.6).
paquetes y un conjunto de instrucciones para aplicar
• Byte: un octeto de 8 bits. (ver 5.2).
• Conexión: una conexión de red que transporta • Tabla de flujo: una etapa de la tubería. Contiene
mensajes OpenFlow entre un conmutador y un entradas de flujo.
controlador, se puede implementar utilizando varios
protocolos de transporte de red (ver 6.3). Un • Desvío: Decidir el puerto de salida o conjunto de
OpenFlow puertos de salida para un paquete, y la transferencia
de esa
El canal tiene una conexión principal y,
opcionalmente, varias conexiones auxiliares (ver paquete a esos puertos de salida.
6.3.8).
• Grupo: una lista de grupos de acciones y algunos
• Canal de control: la agregación de componentes de medios para elegir uno o más de esos grupos para
un conmutador lógico OpenFlow que gestiona la aplicar
comunicación con los controladores. El canal de
control incluye un canal OpenFlow por por paquete (ver 5.10).
• Encabezado: información de control incrustada en
Controlador OpenFlow.
un paquete utilizado por un conmutador para
• Controlador: consulte Controlador OpenFlow. identificar el paquete y
• Contador: los contadores son el elemento principal para informar al conmutador sobre cómo procesar y
de las estadísticas de OpenFlow y se acumulan en reenviar el
varios paquete. El encabezado generalmente incluye
varios campos de encabezado para identificar el
origen y el destino del paquete, y cómo interpretar
otros encabezados y la carga útil. Los paquetes OpenFlow se reciben en un puerto de
entrada y son procesados por la tubería OpenFlow
• Campo de encabezado: un valor del encabezado (ver 5.1)
del paquete. El encabezado del paquete se analiza
para extraer su encabezado que puede reenviarlos a un puerto de salida. El
puerto de entrada de paquetes es una propiedad del
campos que se comparan con los campos paquete.
coincidentes correspondientes.
a lo largo de la canalización de OpenFlow y
• Híbrido: integra la operación OpenFlow y la representa el puerto OpenFlow en el que se recibió
operación de conmutación Ethernet normal . el paquete
  en el interruptor OpenFlow. El puerto de entrada se
Puertos OpenFlow puede utilizar al hacer coincidir paquetes (consulte
5.3). La canalización de OpenFlow puede decidir
Esta sección describe la abstracción de puertos enviar el paquete en un puerto de salida usando la
OpenFlow y los distintos tipos de puertos OpenFlow acción de salida (ver 5.8), que
admitidos por OpenFlow.
define cómo el paquete vuelve a la red.
4.1 Puertos OpenFlow
Un conmutador OpenFlow debe admitir tres tipos de
Los puertos OpenFlow son las interfaces de red puertos OpenFlow: puertos físicos, puertos lógicos y
para pasar paquetes entre el procesamiento
OpenFlow y el puertos reservados.

resto de la red. Los conmutadores OpenFlow se 4.2 Puertos estándar


conectan lógicamente entre sí a través de sus Los puertos estndar de OpenFlow se definen como
puertos OpenFlow, un puertos fsicos, puertos lgicos y los
el paquete se puede reenviar desde un conmutador puerto si es compatible (excluyendo otros puertos
OpenFlow a otro conmutador OpenFlow solo a reservados).
través de una salida
Los puertos estándar se pueden usar como puertos
Puerto OpenFlow en el primer conmutador y un de entrada y salida, se pueden usar en grupos (ver
puerto OpenFlow de entrada en el segundo 5.10),
conmutador.
tienen contadores de puertos (ver 5.9) y tienen
Un conmutador OpenFlow hace que varios puertos estado y configuración (ver 7.2.1).
OpenFlow estén disponibles para el procesamiento
OpenFlow. El conjunto de 15 © 2015; La Fundación Open Networking

Los puertos OpenFlow pueden no ser idénticos al Versión 1.5.1 de la especificación del conmutador
conjunto de interfaces de red proporcionadas por el OpenFlow
hardware del conmutador,
4.3 Puertos físicos
Algunas interfaces de red pueden estar
Los puertos físicos de OpenFlow son puertos
deshabilitadas para OpenFlow, y el conmutador
definidos por conmutadores que corresponden a
OpenFlow puede definir
una interfaz de hardware del
Puertos OpenFlow.
cambiar. Por ejemplo, en un conmutador Ethernet,
los puertos físicos se asignan uno a uno a las
interfaces Ethernet.
En algunas implementaciones, el conmutador acciones como enviar al controlador, saturar o
OpenFlow puede virtualizarse sobre el hardware del reenviar usando métodos que no son OpenFlow,
conmutador. En esos casos, como
un puerto físico OpenFlow puede representar una como procesamiento de conmutador "normal".
porción virtual de la interfaz de hardware
correspondiente del No se requiere un conmutador para admitir todos
los puertos reservados, solo los marcados como
cambiar. "Requeridos" a continuación.
4.4 Puertos lógicos • Requerido: TODOS: Representa todos los puertos
que el switch puede usar para reenviar un paquete
Los puertos lógicos de OpenFlow son puertos específico. lata
definidos por conmutadores que no corresponden
directamente a un hardware ser utilizado solo como puerto de salida. En ese caso,
una copia del paquete comienza el procesamiento
interfaz del interruptor. Los puertos lógicos son de salida en todos
abstracciones de nivel superior que pueden definirse
en el conmutador puertos estándar, excluyendo el puerto de entrada
de paquetes y los puertos que están configurados
utilizando métodos que no son OpenFlow (por como OFPPC_NO_FWD.
ejemplo, grupos de agregación de enlaces, túneles,
interfaces de bucle invertido). • Requerido: CONTROLADOR: Representa el canal de
control con los controladores OpenFlow. lata
Los puertos lógicos pueden incluir encapsulación de
paquetes y se pueden asignar a varios puertos ser utilizado como puerto de entrada o como puerto
físicos. El procesamiento de salida. Cuando se utiliza como puerto de salida,
encapsula el
realizado por el puerto lógico depende de la
implementación y debe ser transparente para el paquete en un mensaje de entrada y lo envía
procesamiento de OpenFlow, utilizando el protocolo de conmutación OpenFlow
(consulte 7.4.1). Cuando
y esos puertos deben interactuar con el
procesamiento OpenFlow como los puertos físicos utilizado como puerto de entrada, identifica un
OpenFlow. paquete que se origina en el controlador.
Las únicas diferencias entre los puertos físicos y los • Obligatorio: TABLA: Representa el inicio de la
puertos lógicos es que un paquete asociado con un tubería de OpenFlow (ver 5.1). Este puerto es solo
puerto puede tener un campo de canalización válido en una acción de salida en la lista de acciones
adicional llamado Tunnel-ID asociado con él (ver de un mensaje de salida de paquetes (ver 7.3.6), y
[Link]) y cuando un paquete envía el
recibido en un puerto lógico se envía al controlador, paquete a la primera tabla de flujo para que el
tanto su puerto lógico como su puerto físico paquete se pueda procesar a través del OpenFlow
subyacente regular
se informan al controlador (ver 7.4.1). tubería.
4.5 Puertos reservados • Requerido: IN PORT: Representa el puerto de
entrada de paquetes. Solo se puede utilizar como
Los puertos reservados de OpenFlow están definidos puerto de salida,
por esta especificación. Especifican reenvío genérico
envía el paquete a través de su puerto de entrada.
  interruptor (ver 5.1). Se puede usar solo como
puerto de salida y procesa el paquete usando el
• Obligatorio: CUALQUIERA: valor especial utilizado
en algunas solicitudes de OpenFlow cuando no se tubería. En general , puenteará o enrutará el
especifica ningún puerto (es decir, puerto paquete, sin embargo, el resultado real es la
implementación.
está comodín). Algunas solicitudes de OpenFlow
contienen una referencia a un puerto específico que dependiente. Si el switch no puede reenviar
la solicitud paquetes desde la canalización de OpenFlow a la
normal
solo se aplica a. El uso de ANY como número de
puerto en estas solicitudes permite que la instancia pipeline, debe indicar que no admite esta acción.
de solicitud
• Opcional: FLOOD: representa la inundación
se aplican a todos y cada uno de los puertos. No se utilizando la canalización tradicional no OpenFlow
puede utilizar como puerto de entrada ni como del conmutador
puerto de salida.
(ver 5.1). Solo se puede utilizar como puerto de
• Requerido: UNSET: valor especial para especificar salida, el resultado real depende de la
que el puerto de salida no se ha configurado en el implementación. En
Conjunto de acción. Solo se usa cuando se intenta general enviará el paquete a todos los puertos
hacer coincidir el puerto de salida en el conjunto de estándar, pero no al puerto de entrada, ni a los
acciones usando el puertos que están
Campo de coincidencia OXM_OF_ACTSET_OUTPUT en estado OFPPS_BLOCKED. El conmutador también
(ver [Link]). No se puede utilizar como puerto de puede usar el ID de VLAN del paquete u otros
entrada ni criterios para seleccionar
como puerto de salida. qué puertos utilizar para las inundaciones.
• Opcional: LOCAL: representa la pila de red local del Los conmutadores de solo OpenFlow no admiten el
conmutador y su pila de administración. puerto NORMAL y el puerto FLOOD, mientras que
OpenFlow híbrido
Se puede utilizar como puerto de entrada o como
puerto de salida. El puerto local permite a las los conmutadores pueden admitirlos (consulte
entidades remotas 5.1). El reenvío de paquetes al puerto FLOOD
depende del conmutador
interactuar con el conmutador y sus servicios de red
a través de la red OpenFlow, en lugar de a través de implementación y configuración, mientras que el
un reenvío usando un grupo de tipo all permite al
controlador
red de control separada. Con un conjunto apropiado
de entradas de flujo, se puede utilizar para Implementar inundaciones de manera más flexible
implementar un (ver 5.10.1).
Conexión del controlador en banda (esto está fuera 4.6 Cambios de puerto
del alcance de esta especificación).
Una configuración de conmutador, por ejemplo,
• Opcional: NORMAL: representa el reenvío utilizando el Protocolo de configuración OpenFlow,
mediante la canalización tradicional que no es puede agregar o eliminar
OpenFlow del
puertos desde el conmutador OpenFlow en 4.7 Recirculación en puerto
cualquier momento. El conmutador puede cambiar
Los puertos lógicos se pueden utilizar opcionalmente
el estado del puerto según la
para insertar un servicio de red o un procesamiento
mecanismo de puerto subyacente, por ejemplo, si el complejo en OpenFlow
enlace está cayendo (ver 7.2.1). El controlador o un
interruptor (ver 4.4). La mayoría de las veces, los
La configuración del conmutador puede cambiar la paquetes enviados a puertos lógicos nunca regresan
configuración del puerto (consulte 7.2.1). Cualquiera al mismo conmutador OpenFlow,
de estos cambios en el estado del puerto o
son consumidos por el puerto lógico o
La configuración debe comunicarse al controlador eventualmente enviados a través de un puerto
OpenFlow (consulte 7.4.3). físico. En otros casos,
La adición, modificación o eliminación de puertos los paquetes enviados a un puerto lógico se
nunca cambia el contenido de las tablas de flujo, en recirculan de nuevo al conmutador OpenFlow
particular el flujo después del puerto lógico
Las entradas que hacen referencia a esos puertos no Procesando.
se modifican ni eliminan (las entradas de flujo
pueden hacer referencia a los puertos a través del La recirculación de paquetes a través de puertos
lógicos es opcional y OpenFlow admite varios tipos
partido o acciones). Los paquetes reenviados a de recirculación de puertos. La recirculación más
puertos inexistentes simplemente se descartan (ver simple es cuando un paquete enviado en un puerto
5.6). Del mismo modo, Port lógico regresa al
La adición, modificación y eliminación conmuta a través del mismo puerto lógico. Esto
nunca cambia el contenido de la tabla de grupo, sin podría usarse para un procesamiento de paquetes
embargo, el comportamiento en bucle o unidireccional.
de algunos grupos puede cambiar a través de la La recirculación también puede ocurrir entre un par
verificación de la vida (ver 6.7). de puertos, en el que un paquete enviado en un
puerto lógico regresa
Si se elimina un puerto y su número de puerto se
reutiliza posteriormente para un puerto físico o en el conmutador a través del otro puerto lógico del
lógico diferente, cualquier par. Esto podría usarse para representar puntos
finales de túnel o
las entradas de flujo restantes o las entradas de
grupo que aún hacen referencia a ese número de procesamiento de paquetes bidireccional. Una
puerto pueden ser redirigidas de manera efectiva propiedad de puerto describe la relación de
recirculación entre puertos.
17 © 2015; La Fundación Open Networking
(ver [Link]).
Versión 1.5.1 de la especificación del conmutador
OpenFlow Un conmutador debe protegerse a sí mismo de
bucles infinitos de paquetes cuando se utiliza la
al nuevo puerto, posiblemente con resultados recirculación de puertos. Este mecanismo
indeseables. Por lo tanto, cuando se elimina un
puerto, se deja al es específico de la implementación y está fuera del
alcance de esta especificación. Por ejemplo, el
controlador para limpiar cualquier entrada de flujo o interruptor podría
entrada de grupo que haga referencia a ese puerto,
si es necesario.
adjuntar un recuento de recirculación interna a cada combinación y manejo de acciones
paquete, que se incrementa para cada recirculación,
 
y el
el conmutador descarta los paquetes para los que el
contador está por encima de un umbral definido por
el conmutador. Los controladores son fuertemente
Se recomienda evitar la generación de
combinaciones de entradas de flujo que puedan
generar bucles de recirculación.
Debido a la amplia gama de procesamiento posible,
se puede suponer muy poco sobre los paquetes
recirculados de regreso al conmutador. Los paquetes
recirculados vuelven a la primera tabla de flujo de la
tubería (ver 5.1)
y pueden identificarse por su nuevo puerto de
entrada. Los encabezados del paquete pueden haber
cambiado, por lo que la coincidencia
no se garantiza que los campos sean iguales. El
puerto lógico puede fragmentar y reensamblar
paquetes,
por lo que los paquetes pueden no coincidir uno a
uno y pueden tener diferentes tamaños.
El campo Tunnel-ID y algunos otros campos de
canalización asociados con el paquete pueden
opcionalmente ser
conservado a través de la recirculación y disponible
para igualar al volver al interruptor, el
Los campos de canalización que se conservan se
indican mediante la propiedad de campo de
coincidencia de puerto (consulte [Link]). Si un
El campo de canalización está presente tanto en la
propiedad OFPPDPT_PIPELINE_OUTPUT del puerto
de salida como en la
OFPPDPT_PIPELINE_INPUT del puerto de retorno,
este campo de canalización se conserva con el
paquete (su valor debe permanecer igual).
5 tablas OpenFlow
Esta sección describe los componentes de las tablas
de flujo y las tablas de grupo, junto con la mecánica
de

También podría gustarte