¿Cómo funciona un DVR en OpenStack?

El enrutamiento virtual distribuido (DVR) es un diseño de enrutamiento alternativo que garantiza el enrutamiento externo de la instancia en caso de falla del nodo del controlador. Sin DVR, todo el tráfico de la instancia pasa por el nodo del controlador, lo que no es tan bueno para el nodo del controlador. Por lo tanto, DVR optimiza el tráfico de red mediante la implementación del agente L3 y programa los enrutadores en cada nodo Compute.

Cuando se usa DVR, diferentes tipos de tráfico van a una ruta diferente. Dividamos el tráfico en tres tipos.

1. Instancia a instancia de tráfico

2. Instancia a tráfico externo sin IP flotante

3. Instancia a tráfico externo con IP flotante

1. El tráfico de instancia a instancia fluye a través de nodos de proceso sin necesidad de controlador para el enrutamiento. Para este tipo de nodo de cálculo de enrutamiento tiene enrutador, es por eso que el enrutamiento distribuido.

2. Instancia al tráfico externo sin IP flotante, este tipo de tráfico toma la siguiente ruta. Instancia-> qrouter (nodo de cálculo) -> qrouter (nodo controlador) -> br-ex (puente externo del nodo controlador). Entonces, este tipo de tráfico aún requiere que el nodo controlador se comunique con el mundo exterior.

3. Instancia de tráfico externo con IP flotante, este es el caso más útil de enrutamiento distribuido. En este caso, el tráfico fluye así. Instancia-> fip-namespace (nodo de cálculo) -> br-ex (puente externo del nodo de cálculo). Por lo tanto, este tipo de tráfico, que es principalmente tráfico general, no requiere un nodo controlador. Esto requiere que la red externa esté conectada a cada nodo Compute. Entonces, en caso de falla del controlador, la red de instancias funciona correctamente.

En Fx Data Labs hemos implementado DVR para nuestro servicio en la nube Fx Data Cloud.