# Enrutamiento basado en políticas

En redes de comunicaciones TCP/IP, enrutamiento basado en políticas (del inglés Policy-based routing o PBR) es una técnica para implementar decisiones de enrutamiento basadas en políticas definidas por el administrador de la red
El comportamiento habitual de un enrutador o router cuando recibe un paquete es la de reenviarlo en función de la dirección IP destino incluida en el paquete, que utiliza para comparar con su tabla de enrutamiento. Sin embargo, en algunos casos puede ser interesante reenviar el tráfico según otros criterios, como la dirección origen del paquete, el tipo de tráfico o cualquier otra información contenida en el paquete.

## La necesidad de definir políticas de enrutamiento

En las redes IP actuales, las grandes organizaciones requieren la libertad para implementar enrutamiento en función de sus propias políticas, definidas de una manera que va más allá de los aspectos controlados por los protocolos de enrutamiento.
Cuando determinado tráfico tiene que ser enviado por unos caminos específicos debido a cuestiones administrativas, el enrutamiento basado en políticas proporciona una solución. Los administradores de la red pueden crear políticas que provoquen selectivamente que determinados paquetes utilicen diferentes caminos.
El enrutamiento basado en políticas también proporciona un mecanismo para marcar paquetes y así diferenciar distintos tipos de tráfico, pudiendo priorizar combinándolo con técnicas de gestión de colas (queuing).

## Los beneficios de implementar enrutamiento basado en políticas

Dentro de los beneficios que se pueden obtener de implementar PBR podemos destacar:
* Elección de proveedor de tránsito basado en direcciones origen: Los proveedores de servicio de Internet y otras organizaciones pueden utilizar PBR para encaminar el tráfico hacia diferentes conexiones de Internet según dónde se haya originado dicho tráfico.
* Calidad de Servicio (QoS): Se puede proporcionar QoS modificando los valores TOS o IP Precedence de una manera diferenciada en los router frontera.
* Ahorro de costes: Se pueden reducir los costes derivados de las comunicaciones diferenciando los tipos de tráfico que utilizan cada una de los circuitos, pudiendo combinar con circuitos permanentes o conmutados de diferentes anchos de banda y costes.
* Equilibrado de carga: Además de las posibilidades de equilibrado de carga sobre caminos de igual coste proporcionado por algunos protocolos de encaminamiento dinámico, es posible balancear entre diferentes caminos en función de las características del tráfico.

## Reenvío de tráfico con PBR

El enrutamiento basado en políticas proporciona un mecanismo para expresar e implementar reenvío o encaminamiento de paquetes basado en políticas definidas por el administrador de la red. Esta técnica supone un mecanismo mucho más flexible para encaminar los paquetes a través de los diferentes routers disponibles en la red, complementando de esta manera los mecanismos proporcionados por los protocolos de enrutamiento dinámico, como RIP, OSPF o EIGRP. En lugar de decidir en función de la dirección destino, PBR permite al administrador de la red determinar e implementar políticas de enrutamiento para permitir o denegar determinados caminos en función de lo siguiente.:
* Dirección, o grupo de direcciones, origen.
* Aplicación concreta.
* Protocolo.
* Tamaño del paquete.
* Valor de QoS
La política puede ser tan sencilla como " mi red no transportará tráfico del departamento de Recursos Humanos" o tan compleja como "el tráfico originado en esta determinada red con estas características concretas tomará el camino A, y cualquier otro tipo de tráfico tomará el camino B", y siempre hablando para un mismo destino.

## Marcando el tráfico de red

El enrutamiento basado en políticas permite al administrador clasificar el tráfico utilizando listas de acceso (ACLs) para luego fijar los valores IP precedence o TOS de la cabecera IP, y por tanto marcando los paquetes según una clasificación definida.
Este tipo de clasificación del tráfico permite al administrador de red identificar tráfico con diferentes clases de servicio en el perímetro de la red e implementar la QoS definida para cada clase de servicio en el core de la red usando técnicas de encolado.

## Aplicación del enrutamiento basado en políticas

Esta técnica se aplica sobre los paquetes entrantes. Todos los paquetes recibidos por una interfaz con PBR habilitado son considerados para encaminarlos en función de las políticas configuradas. El router hace pasar a los paquetes por unos filtros avanzados denominados mapas de ruta, y son reenvíados al siguiente salto apropiado.

### Mapas de ruta

Cada entrada en la declaración de un mapa de ruta contiene una combinación de sentencias de comprobación y de acción. Las sentencias de comprobación definen el criterio por el cual determinados paquetes cumplen la política concreta (la condición).Las sentencias de acción determinan cómo el paquetes será encaminado o la acción a tomar sobre el paquete una vez se ha cumplido la condición de comprobación.
Para cada combinación de sentencias de comprobación y acción de un mapa de rutas, todas las sentencias de comprobación secuenciales se deben cumplir simultáneamente en el paquete para que se aplique las sentencias de acción. Puede haber múltiples conjuntos de combinaciones de sentencias de comprobación y acción en una declaración completa de mapa de rutas.

### Sentencias de comprobación: precisión del criterio

Para establecer la condición a cumplir por los paquetes para ser tratados de una u otra manera se pueden utilizar listas de acceso (ACLs), basándose en cualquier combinación de la dirección origen, dirección destino, aplicación, tipo de protocolo y valores TOS/IP precedence.
Además de ACLs, también se puede utilizar como criterio el tamaño del paquete, especificando valores máximo y mínimo. Esto permite al administrador diferenciar el tráfico interactivo (por ejemplo voz sobre IP), generalmente de paquetes más pequeños.
Si el paquete no cumple ninguna de las conficiones definidas, se aplica el enrutamiento convencional basado en dirección IP destino sin ejecutar ninguna acción.

### Sentencias de acción: Definición de la ruta

Si se cumplen las sentencias de comprobación, se puede aplicar una de las siguientes sentencias de acción para especifiar el criterio de reenvío del router:
* Lista de interfaces por los cuales se puede enviar el paquete- Si se especifican más de uno, el primero que esté levantado es el que se utiliza para el reenvío.
* Lista de direcciones IP de router de siguiente salto- La dirección IP especifica el router adyacente a utilizar como siguiente salto en el camino al destino. Si se especifican más de uno, el primero que esté levantado es el que se utiliza para el reenvío.
* Lista de direcciones IP de router por defecto de siguiente salto- Reenvía al router adyacente especificado sólo si no hay una ruta específica al destino para este paquete.
* IP TOS- Se puede modificar el byte TOS de la cabecera IP
* IP precedence- Se puede modificar el valor IP precedence en la cabecera IP
Los comandos de acción se pueden utilizar en cualquier combinación.
Si no se cumple ninguna de las condiciones definidas en el mapa de rutas se reenvía el paquetes según el comportamiento habitual. Si se quiere evitar este comportamiento se debe incluir una última sentencia de acción que fije la interfaz de reenvío del paquete a Null0, lo que provocará que se descarte el paquete.