Al igual que en las redes tradicionales donde el enrutamiento esta basado en rutas obtenidas de la conexion y de forma estáticas y dinámicas almacenadas en una tablas de rutas. En las redes virtuales (vNets) ocurre lo mismo, el enrutamiento esta en base a rutas que serán creadas por el sistema, dinámicamente o incluidas manualmente de acuerdo a conveniencia y están almacenado en una tabla de ruta.
Rutas predeterminadas.
Al crear una red virtual en Azure, este crea automáticamente una tabla de rutas para cada subred de dicha red virtual y agrega las rutas predeterminadas del sistema (Default) a dicha tabla. No se puede quitar rutas predeterminadas de sistema, pero si se puede invalidar algunas con rutas personalizadas agregadas a demanda.
Cada ruta contiene un prefijo de dirección y el tipo de próximo salto. Cuando el tráfico que sale de una subred se envía a una dirección IP que está dentro del prefijo de la dirección de ruta, la ruta que contiene el prefijo es la que utiliza Azure.
Source | Prefijos de dirección | Tipo del próximo salto |
---|---|---|
Default | Único para la red virtual | Virtual network |
Default | 0.0.0.0/0 | Internet |
Default | 10.0.0.0/8 | None |
Defaut | 172.16.0.0/12 | None |
Default | 192.168.0.0/16 | None |
Default | 100.64.0.0/10 | None |
Como en las tablas de rutas de la red tradicional, en la tabla de rutas del las redes virtuales se maneja el termino de «próximo salto«, solo que en este caso tiene nombres preestablecidos. Y son las siguientes:
- Red virtual (Virtual network): Enruta el tráfico entre los intervalos de direcciones del espacio de direcciones de una red virtual (vNet). Azure crea una ruta con un prefijo de dirección que corresponde a cada intervalo de direcciones definido en el espacio de direcciones de una red virtual. Si el espacio de direcciones de la red virtual tiene varios intervalos de direcciones definidos, Azure crea una ruta individual para cada intervalo de direcciones. De forma predeterminada, Azure enruta el tráfico entre subredes. No es necesario definir tablas de rutas ni puertas de enlace de Azure para enrutar el tráfico entre subredes. Azure no crea rutas predeterminadas para intervalos de direcciones de subred. Cada intervalo de direcciones de subred está dentro de un intervalo de direcciones del espacio de direcciones de la red virtual.
- Internet: enruta a Internet el tráfico que especifica el prefijo de dirección. La ruta predeterminada del sistema especifica el prefijo de dirección 0.0.0.0/0. Si no se invalidan las rutas predeterminadas de Azure, Azure enruta a Internet el tráfico de todas las direcciones que no se hayan especificado en un intervalo de direcciones dentro de una red virtual. Hay una excepción a este enrutamiento. Si la dirección de destino es para un servicio de Azure, Azure enruta el tráfico directamente al servicio a través de la red troncal de Azure en lugar de enrutar el tráfico a Internet. El tráfico entre los servicios de Azure no atraviesa Internet. No importa en qué región de Azure exista la red virtual o en qué región de Azure se implementa una instancia del servicio de Azure. Puede reemplazar la ruta del sistema predeterminada de Azure predeterminado para el prefijo de dirección 0.0.0.0/0 por una ruta personalizada.
- None: el tráfico que se enruta al tipo de próximo salto None se elimina, en lugar de enrutarlo fuera de la subred. Azure crea automáticamente las rutas predeterminadas para los siguientes prefijos de dirección:
- 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16: reservadas para el uso privado en el RFC 1918.
- 100.64.0.0/10: reservada en RFC 6598.
Rutas predeterminadas opcionales
Azure agrega más rutas del sistema predeterminadas para diferentes funcionalidades de Azure, pero solo si se habilitan las funcionalidades. . En función de la funcionalidad, Azure agrega las rutas predeterminadas opcionales a subredes concretas de la red virtual o a todas las subredes de una red virtual. En la tabla siguiente se enumeran las otras rutas del sistema y los tipos de próximo salto que Azure podría agregar al habilitar diferentes funcionalidades.
Source | Prefijos de dirección | Tipo del próximo sato | La subred de red virtual a la qu agrega la ruta |
---|---|---|---|
Default | Único para la red virtual, por ejemplo: 10.1.0.0/16 | Virtual network peering | All |
Virtual network gateway | Prefijos anunciados desde el entorno local a través del Protocolo BGP o configurados en la puerta de enlace de red local | Virtual network gateway | All |
Default | Multiple | VirtualNetworkServiceEndpoint | Solo la subred para la que se habilita un punto de conexión de servicio |
- Emparejamiento de red virtual (Virtual network peering): al crear un emparejamiento de red virtual entre dos redes virtuales, el sistema agrega una ruta para cada intervalo de direcciones en el espacio de direcciones de cada red virtual para la que se crea un emparejamiento.
- Puerta de enlace de red virtual (Virtual network gateway): cuando una puerta de enlace de red virtual se agrega a una red virtual, se agregan también una o varias rutas en las que Puerta de enlace de red virtual aparece como el tipo de próximo salto. El origen es también una puerta de enlace de red virtual, ya que la puerta de enlace agrega las rutas a la subred. Si la puerta de enlace de red local intercambia rutas BGP con una puerta de enlace de red virtual, el sistema agrega una ruta para cada ruta. Estas rutas se propagan desde la puerta de enlace de red local. Se recomienda resumir las rutas locales al intervalo de direcciones más grande posible para propagar el menor número de rutas a una puerta de enlace de red virtual de Azure. Hay límites en el número de rutas que se pueden propagar a una puerta de enlace de red virtual de Azure.
VirtualNetworkServiceEndpoint
: Azure agrega las direcciones IP públicas de determinados servicios a la tabla de rutas cuando se habilita un punto de conexión para el servicio. Los puntos de conexión de servicio están habilitados para subredes individuales dentro de una red virtual, por lo que la ruta solo se agrega a la tabla de rutas de una subred para la que está habilitado un punto de conexión de servicio. Las direcciones IP públicas de los servicios de Azure cambian periódicamente. Azure administra automáticamente las direcciones en la tabla de rutas cuando cambian.
Rutas personalizadas
Para crear rutas personalizadas, cree rutas definidas por el usuario (UDR) o intercambiar rutas BGP entre la puerta de enlace de red local y una puerta de enlace de red virtual de Azure.
Rutas definidas por el usuario (UDR)
Para personalizar las rutas de tráfico, no se debe modificar las rutas predeterminadas. Debe crear rutas personalizadas o definidas por el usuario (estáticas), que invalidan las rutas del sistema predeterminadas de Azure. En Azure, crea una tabla de rutas y la asocia a cero o más subredes de red virtual. Cada subred puede tener cero o una tabla de rutas asociada.
De forma predeterminada, una tabla de rutas puede contener hasta 400 UDR. Con la configuración de enrutamiento de Azure Virtual Network Manager, este número puede ampliarse a 1.000 UDR por tabla de rutas. Este mayor límite admite configuraciones de enrutamiento más avanzadas. Un ejemplo es dirigir el tráfico desde centros de datos locales a través de un firewall a cada red virtual spoke en una topología en estrella tipo hub-and-spoke cuando tiene un mayor número de redes virtuales radiales.
Si crea una tabla de rutas y la asocia a una subred, las rutas de la tabla se combinan con las rutas predeterminadas de la subred. Si hay asignaciones de rutas en conflicto, las UDR invalidan las rutas predeterminadas.
Puede especificar los siguientes tipos de próximo salto al crear una UDR:
- Aplicación virtual (Virtual appliance): una aplicación virtual es una máquina virtual que ejecuta normalmente una aplicación de red como, por ejemplo, un firewall. Al crear una ruta con el tipo de salto de aplicación virtual, especifique también una dirección IP del próximo salto. La dirección IP puede ser:
- La dirección IP privada de una interfaz de red conectada a una máquina virtual. Cualquier interfaz de red conectada a una máquina virtual que reenvíe el tráfico de red a una dirección que no sea la suya propia debe tener la opción Habilitar reenvío de IP habilitada. La configuración deshabilita la comprobación del origen y el destino de una interfaz de red por parte de Azure. Habilitar el reenvío IP es una configuración de Azure.
Es posible que tenga que habilitar el reenvío IP dentro del sistema operativo de la máquina virtual para que el dispositivo reenvíe el tráfico entre direcciones IP privadas asignadas a interfaces de red de Azure. Si el dispositivo necesita enrutar el tráfico a una dirección IP pública, debe redirigir mediante proxy el tráfico o realizar la traducción de direcciones de red (NAT) desde la dirección IP privada del origen hasta su propia dirección IP privada. Después, Azure realiza la NAT en una dirección IP pública antes de enviar el tráfico a Internet.
Nota: Implemente una aplicación virtual en una subred diferente en la que se encuentran los recursos que enrutan a través de la aplicación virtual. La implementación de la aplicación virtual en la misma subred y la posterior aplicación de una tabla de rutas en la subred que enruta el tráfico a través de la aplicación virtual pueden provocar bucles de enrutamiento, en los que el tráfico nunca sale de la subred. Una dirección IP privada del próximo salto debe tener conectividad directa sin tener que enrutar a través de una puerta de enlace de Azure ExpressRoute o a través de Azure Virtual WAN. Si se establece el próximo salto en una dirección IP sin conectividad directa, se produce una configuración UDR no válida. - La dirección IP privada de un equilibrador de carga interno de Azure. A menudo se usa un equilibrador de carga como parte de una estrategia de alta disponibilidad para aplicaciones virtuales de red.
- La dirección IP privada de una interfaz de red conectada a una máquina virtual. Cualquier interfaz de red conectada a una máquina virtual que reenvíe el tráfico de red a una dirección que no sea la suya propia debe tener la opción Habilitar reenvío de IP habilitada. La configuración deshabilita la comprobación del origen y el destino de una interfaz de red por parte de Azure. Habilitar el reenvío IP es una configuración de Azure.
- Puerta de enlace de red virtual (Virtual network gateway): se especifica cuando se desea que el tráfico destinado a prefijos de dirección específicos se enrute a una puerta de enlace de red virtual. La puerta de enlace de red virtual debe crearse con el tipo VPN. No se puede especificar una puerta de enlace de red virtual creada como el tipo ExpressRoute en una UDR porque con ExpressRoute, debe usar BGP para rutas personalizadas. Tampoco puede especificar puertas de enlace de red virtual si tiene conexiones coexistentes de red privada virtual (VPN) y ExpressRoute. Puede definir una ruta que dirige el tráfico destinado al prefijo de dirección 0.0.0.0/0 a una puerta de enlace de red virtual basada en ruta.
En un entorno local, puede tener un dispositivo que compruebe el tráfico y determine si se reenvía o se elimina. En lugar de configurar una UDR para el prefijo de dirección 0.0.0.0/0, puede anunciar una ruta con el prefijo 0.0.0.0/0 a través de BGP si el BGP para una puerta de enlace de red virtual VPN está habilitado. - None: se especifica cuando se desea colocar tráfico en un prefijo de dirección, en lugar de reenviar el tráfico a un destino. Azure puede mostrar None para algunas de las rutas del sistema opcionales si no está configurada una funcionalidad.
- Red virtual (Virtual network): especifique la opción de red virtual si desea reemplazar el enrutamiento predeterminado en una red virtual.
- Internet: especifique la opción Internet cuando desee enrutar explícitamente el tráfico destinado a un prefijo de dirección a Internet. O úselo si quiere que el tráfico destinado a los servicios de Azure con direcciones IP públicas se mantenga dentro de la red troncal de Azure.
No se puede especificar emparejamiento de red virtual o VirtualNetworkServiceEndpoint
como el tipo de próximo salto en UDR. Azure crea rutas con emparejamiento de red virtual o tipos de próximo salto VirtualNetworkServiceEndpoint
solo cuando se configura un emparejamiento de red virtual o un punto de conexión de servicio.
Etiquetas de servicio para rutas definidas por el usuario
Ahora puede especificar una etiqueta de servicio como prefijo de dirección para un UDR en lugar de un intervalo IP explícito. Una etiqueta de servicio representa un grupo de prefijos de dirección IP de un servicio de Azure determinado. Microsoft administra los prefijos de direcciones que la etiqueta de servicio incluye y actualiza automáticamente dicha etiqueta a medida que las direcciones cambian. Así se minimiza la complejidad de las actualizaciones frecuentes de las rutas definidas por el usuario y se reduce el número de rutas que hay que crear. Actualmente, puede crear 25 o menos rutas con etiquetas de servicio en cada tabla de rutas. Con esta versión, también se admite el uso de etiquetas de servicio en escenarios de enrutamiento para contenedores.
El sistema da preferencia a la ruta con el prefijo explícito cuando hay una coincidencia exacta de prefijo entre una ruta con un prefijo de IP explícito y una ruta con una etiqueta de servicio. Cuando varias rutas con etiquetas de servicio tienen prefijos de IP que coinciden, las rutas se evalúan en el orden siguiente:
- Etiquetas regionales (por ejemplo,
Storage.EastUS
oAppService.AustraliaCentral
) - Etiquetas de nivel superior (por ejemplo,
Storage
oAppService
) - Etiquetas regionales
AzureCloud
(por ejemplo,AzureCloud.canadacentral
oAzureCloud.eastasia
) - Etiqueta
AzureCloud
Ejemplo de creación de una ruta con Azure CLI usando una etiqueta de servicio «Storage».
az network route-table route create --resource-group MyResourceGroup --route-table-name MyRouteTable --name StorageRoute --address-prefix Storage --next-hop-type VirtualAppliance --next-hop-ip-address 10.0.100.4
Border Gateway Protocol
Una puerta de enlace de red local puede intercambiar rutas con una puerta de enlace de red virtual de Azure mediante BGP. El uso del BGP con una puerta de enlace de red virtual de Azure depende del tipo seleccionado al crear la puerta de enlace:
- ExpressRoute: debe usar BGP para anunciar rutas locales para el enrutador perimetral de Microsoft. No puede crear una UDR para forzar el tráfico a la puerta de enlace de red virtual de ExpressRoute si implementa una puerta de enlace de red virtual implementada como el tipo ExpressRoute. Puede usar UDR para forzar el tráfico desde la ruta rápida a, por ejemplo, una aplicación virtual de red.
- VPN: opcionalmente, puede usar BGP.
Al intercambiar rutas con Azure mediante BGP, se agrega una ruta independiente a la tabla de rutas de todas las subredes de una red virtual para cada prefijo anunciado. La ruta se agrega con Puerta de enlace de red virtual como origen y tipo de próximo salto.
Puede deshabilitar la propagación de rutas de ExpressRoute y Azure VPN Gateway en una subred mediante una propiedad en una tabla de rutas. Al deshabilitar la propagación de rutas, el sistema no agrega rutas a la tabla de rutas de todas las subredes que tengan la propagación de rutas de puerta de enlace de red virtual deshabilitada. Este proceso se aplica tanto a rutas estáticas como a rutas de BGP. La conectividad con las conexiones VPN se logra mediante rutas personalizadas con un próximo salto de tipo Puerta de enlace de red virtual.
Nota: La propagación de rutas no debe deshabilitarse en GatewaySubnet
. La puerta de enlace no funcionará si esta configuración está deshabilitada.
Selección de rutas por parte de Azure
Cuando se envía tráfico saliente desde una subred, Azure selecciona una ruta en función de la dirección IP de destino y se usa el algoritmo de coincidencia de prefijo más largo. Por ejemplo, una tabla de rutas tiene dos rutas. Una ruta especifica el prefijo de dirección 10.0.0.0/24, y la otra ruta especifica el prefijo de dirección 10.0.0.0/16.
Azure dirige el tráfico destinado a 10.0.0.5 al tipo de próximo salto especificado en la ruta con el prefijo de dirección 10.0.0.0/24. Este proceso se produce porque 10.0.0.0/24 es un prefijo más largo que 10.0.0.0/16, aunque 10.0.0.5 se encuentre dentro de ambos prefijos de dirección.
Azure dirige el tráfico destinado a 10.0.1.5 al tipo de próximo salto especificado en la ruta con el prefijo de dirección 10.0.0.0/16. Este proceso se produce porque 10.0.1.5 no se incluye en el prefijo de dirección 10.0.0.0/24, lo que hace que la ruta con el prefijo de dirección 10.0.0.0/16 sea el prefijo coincidente más largo.
Si varias rutas contienen el mismo prefijo de dirección, Azure selecciona el tipo de ruta, en función de la siguiente prioridad:
- Ruta definida por el usuario
- Ruta BGP
- Ruta del sistema
Nota: Las rutas de sistema para el tráfico relacionado con la red virtual, los emparejamientos de la red virtual o los puntos de conexión de servicio de red virtual son las rutas preferidas. Se prefieren, incluso si las rutas BGP son más específicas. Las rutas con un punto de conexión de servicio de red virtual como el tipo de próximo salto no se pueden invalidar, incluso cuando se usa una tabla de rutas.
Por ejemplo, una tabla de rutas contiene las rutas siguientes:
Source | Prefijo de dirección | Tipo de próximo salto |
---|---|---|
Default | 0.0.0.0/0 | Internet |
User | 0.0.0.0/0 | Virtual network gateway |
Cuando el destino del tráfico es una dirección IP que está fuera de los prefijos de dirección de las otras rutas de la tabla de rutas, Azure selecciona la ruta con el origen Usuario. Azure elige esta opción porque las UDR son una prioridad más alta que las rutas predeterminadas del sistema.