Qué es una red definida por software
Una red definida por software (SDN, por sus siglas en inglés) separa quien decide el camino del tráfico de quien lo mueve. Así puedes cambiar una regla en toda la red desde un solo programa.
Un campus tiene 200 switches y llega una orden: la wifi de invitados no puede ver los equipos de administración. Hacerlo a mano obliga a entrar en los 200 aparatos, uno por uno.
Al final de esta lección
Nota
Puedo decir qué decide un controlador y qué hace un switch.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Plano de datos | el trabajo que se hace con cada paquete | |
| Plano de control | el trabajo de decidir qué reglas hay | |
| Switch | un aparato que pasa tramas de un puerto a otro | |
| Controlador | un programa que escribe las reglas de los switches | |
| Flujo | una regla de un switch: qué paquetes y qué hacer | priority=10,actions=drop |
| OpenFlow | el idioma que hablan un switch y su controlador |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El switch mueve cada paquete mirando una tabla
El plano de datos es el trabajo que se repite con cada paquete: mirar una tabla y enviarlo por un puerto. Es rápido y no piensa.
El plano de control decide qué reglas debe tener la tabla. Calcula caminos, aplica las políticas y escribe las reglas en los switches.
Ejemplo: seis trabajos de una red
| Trabajo | ¿Se hace con cada paquete? | Plano |
|---|---|---|
| Enviar un paquete por el puerto 2 | Sí | Datos |
| Descartar un paquete bloqueado | Sí | Datos |
| Calcular el mejor camino entre dos aulas | No, una vez por cambio | Control |
| Decidir que los invitados no ven administración | No, una vez por política | Control |
| Escribir una regla en un switch | No, solo cuando cambia algo | Control |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un controlador cambia toda la red
En una red clásica cada switch lleva su propio control. Para cambiar una política hay que entrar en cada aparato.
En una red definida por software el control sale de los switches y vive en un controlador. El controlador habla con cada switch en OpenFlow. Cada regla se escribe una vez y llega a todos.
Ejemplo: cambiar una política en 200 switches
| Forma de hacerlo | Cuentas | Resultado |
|---|---|---|
| A mano en cada switch | 200 switches x 3 minutos | 600 minutos, o 10 horas |
| Con un controlador | 1 regla escrita una vez | El controlador la envía a los 200 |
| Un switch nuevo se añade | Antes: copiar su configuración | Ahora: conectarlo al controlador |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un switch sin reglas no reenvía nada
Vamos a mirar un switch de Open vSwitch, un switch de software real. Lo llamarás sw1 y es solo tuyo: no toca el switch br0 de la práctica.
Lo creamos en modo secure. Ese modo dice: haz solo lo que digan las reglas. Todavía no tiene ninguna.
Crea tu propio switch sw1
sudo ovs-vsctl --may-exist add-br sw1 -- set bridge sw1 datapath_type=system protocols=OpenFlow13 fail-mode=secureSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira su modo de fallo
sudo ovs-vsctl get-fail-mode sw1Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Pregunta si tiene controlador
sudo ovs-vsctl get-controller sw1Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lee su tabla de flujos
sudo ovs-ofctl -O OpenFlow13 dump-flows sw1Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Qué enseñaron esas cuatro órdenes
El switch existe, está en modo secure, no tiene controlador y su tabla de flujos está vacía. Con ese estado descartaría cualquier paquete que le llegara.
Cuando le des un controlador o escribas flujos a mano, el plano de control tendrá algo que decir. El switch seguirá haciendo solo plano de datos.
Un error frecuente
Advertencia
Mucha gente cree que el controlador reenvía cada paquete de la red. No lo hace: escribe reglas, y el switch las aplica por su cuenta. Solo los paquetes sin regla suben al controlador. Si todos subieran, el controlador sería el cuello de botella.