¿Por qué dosificar el protocolo Openflow existe la tabla de grupo? ¿Y cuál es la relación entre la tubería y la tabla de grupo?

Fondo

OpenFlow se define en términos de una tubería de etapas, cada una de las cuales se llama una tabla de flujo.

Cada una de estas etapas es una etapa de coincidencia y acción: comprueba si el paquete contiene alguna de las entradas de la tabla, y si se encuentra una coincidencia, aplica las instrucciones asociadas con esa línea al paquete. Una de estas instrucciones puede ser enviar el paquete a la siguiente etapa que necesita manejar el paquete. Si no existe tal instrucción, entonces el paquete no pasa a ninguna “siguiente etapa” (tabla de flujo) en el que ha llegado al final de la tubería de procesamiento.

En este punto, se supone que el paquete debe enviarse fuera del switch en algún puerto / interfaz. Si hay cosas de último momento que deben hacerse (o con) el paquete a medida que se envía, se adjuntan al paquete en forma de un “conjunto de acciones”.

¿Por qué necesito una tabla de grupo?

Cuando desea que se aplique * uno de varios conjuntos * de acciones de último minuto a un paquete, o desea que se envíen varias copias del paquete, cada una con sus propias acciones de último minuto aplicadas, entonces necesita / desea un mesa de grupo.

dos ejemplos aclararán esto

  1. Suponga que desea enviar 2 (o más) copias del paquete, una al destino previsto y el resto a algún analizador de red. Imagine también que cada copia del paquete necesita una encapsulación diferente; digamos que algunos necesitan un encabezado de VLAN y otros no, o que necesitan diferentes números de identificación de VLAN. Para hacerlo en las tablas de flujo, necesitaría modificar cualquier regla en todas las tablas de flujo para crear las copias. Si agrega o mueve un analizador de red, debe buscar y modificar todas las entradas relevantes de la tabla de flujo.

En su lugar, crea un grupo ALL para representar el destino y todos los análisis relevantes, donde cada entrada tiene las acciones necesarias para aplicar a esa copia en particular: agregue una VLAN (o no), establezca la ID de VLAN relevante, etc. Ahora tablas de flujo enviadas a este ONE GROUP, y si agrega o mueve un analizador (o el destino cambia) no necesita tocar las tablas de flujo, y simplemente modifica el grupo.

2. Tolerancia a fallas: un puerto / ruta de respaldo

Suponga que desea admitir una situación de tolerancia a fallas: si se supone que un paquete sale en el puerto 1, pero el puerto está inactivo, entonces, como respaldo, desea enviarlo en el puerto 2. Si usa flow- solo tablas, cuando el puerto 1 deja de funcionar, debe encontrar todas las reglas en todas las tablas de flujo que se envían al puerto 1 y cambiarlas todas. Es mejor definir un grupo “1st live” para representar esto y todas las reglas de la tabla de flujo se envían a este grupo. Mientras el puerto 1 esté activo, el grupo envía todos los paquetes al puerto 1. Si el puerto 1 baja, el grupo cambia a enviar todos los paquetes al puerto 2, y las tablas de flujo permanecen como están.

Hay otros casos de uso, pero espero que esto sea suficiente para demostrar por qué los Grupos son útiles / necesarios.