Categories
General tcp-ip

Encaminamiento regulado

Por fin uno de vosotros (un compañero vuestro) se ha lanzado y propone un tema que, bajo mi punto de vista y desde el enfoque de la administración de redes de computadores, me parece MUY interesante.

Os animo a los demás a seguir su ejemplo.

Aquí os lo dejo. La idea es que, como en las entradas anteriores, expongáis otros ejemplos de escenarios en los que es interesante y útil el dirigir paquetes mediante encaminamiento regulado.

Edito: Por si alguien tiene dudas, os aclaro que también se pueden usar los ejemplos expuestos en clase. Lo que no debéis es repetiros en los comentarios.

——————–

Autor de la entrada: Juan Galiana

Texto:

Encaminamiento regulado es la capacidad de encaminar entre distintas redes en base a la información que contiene la cabecera o datos de los paquetes que circulan por ellas. Se pueden crear normas para clasificar los paquetes que vendrán determinadas de varias maneras: dirección origen, destino, interfaz entrante, TOS y fwmark. En concreto iproute2 permite usar la información de marcado de iptables (fwmark) para encaminar por una ruta u otra los paquetes dependiendo de estas marcas.
Utilidades que puede tener esto:

No sólo podemos usar información de la cabecera (como por ejemplo puerto, o tipo de protocolo) sino también otra información extendida que permite iptables, aunque es un dato propio de una máquina y no de una red, vamos a redirigir por ejemplo el tráfico TCP del usuario con UID 1000 por la IP 172.16.70.70 y dispositivo eth1, (los demás irán por la ruta por defecto):
1)# echo “200 FILTRO”>> /etc/iproute2/rt_tables
2)# ip rule add fwmark 1 table FILTRO
3)# ip route add table FILTRO via 172.16.70.70 dev eth1
4)# iptables -t mangle -A OUTPUT -p tcp -m owner –uid-owner 1000 -j MARK –set-mark 1

1) Creamos la tabla en el rt_tables
2) Añadimos una regla, asociando nuestra tabla FILTRO con la marca “1” en los paquetes.
3) Añadimos una ruta para la regla FILTRO, configurando que saldrán por lainterfaz eth1, ip 172.16.70.70
4) Marcamos con iptables el tráfico TCP del usuario con UID 1000 con la marca “1”
El redirigir tráfico de un UID específico puede servirnos para salir a Internet por una interfaz distinta (otra interfaz física o vpn) cuando la ruta por defecto no permita el paso de ese tipo de tráfico, simplemente corriendo el proceso con uid distinto.
El marcado por UID es un ejemplo curioso que permite iptables, pero también se podrían marcar por otros características como tipo de protocolo de transporte TCP o UDP, marcarlo con distintas marcas y luego asociar rutas distintas mediante reglas que asocien estas marcas con la ruta que nos interese.

By airc

Blog de la asignatura de Administración e Instalación de Redes de Computadores.
Se ha creado con la finalidad de convertirse en una herramienta útil para, en particular, todos los alumnos de la asignatura y, en general, para todos los interesados en temas de gestión y administración de redes de computadores

21 replies on “Encaminamiento regulado”

Una aplicación interesante del encaminamiento regulado puede ser el balanceo de carga.

Hay muchos escenarios en los que es interesante esta técnica. Un ejemplo puede ser una compañia que

tiene contratadas dos conexiones a Internet, cada una con un router e interfaz independiente. Sería

bueno configurar en el router central un balanceo de carga para el tráfico de Internet. De esta forma,

habría varias rutas por defecto, aunque el destino sea el mismo. La información necesaria sería la

siguiente:

ISP #1:
Router Interface = 1.1.1.30/27

ISP #2:
Router Interface = 2.2.2.30/27

Hay varias formas diferentes de implementar esta técnica, cada una depende del comportamiento que se

desea obtener.

La primera solución es el método “por paquete”. Bajo este escenario cada paquete (trama) que entre en el

router central saldrá por una ruta diferente. Así el primer paquete será enviado a través del router#1,

el segundo a través del router#2, el tercero a través del router#1, etc. La implementación de este

método sería algo parecido a:

ip route add equalize default \
nexthop via 1.1.1.30 dev eth1 \
nexthop via 2.2.2.30 dev eth1

El comando nexthop define multiples pasarelas para enviar paquetes, y el comando “equalize” indica que

el método de enrutamiento va a ser “por paquete”.

El principal problema de esta solución es que en los caminos hacia el destino final puede variar el

tránsito de cada fragmento (paquete) el suficiente tiempo para causar problemas en la cola de

reensamblaje en el destino.

La segunda solución para balancear la carga sería el método “por flujo”. En este escenario se permitiría

a cada flujo (no la trama) viajar a través de uno de los routers. Para implementar esta solución

simplemente habría que eliminar el modificador “equalize”. Ahora el tráfico sería enrutado a uno de los

routers mediante el método “por flujo” en lugar de “por paquete”.

ip route add default \
nexthop via 1.1.1.30 dev eth1 \
nexthop via 2.2.2.30 dev eth1

Mas información en:
Policy Routing with Linux – Matthew G. Marsh
http://www.policyrou

Otra posible función del balanceo de carga que comenta el compañero anterior, es la de equilibrar la carga entre dos tarjetas de red que disponen de una única conexión a Internet.

Si no me equivoco, bastaría con añadir la regla:

ip route add default scope global nexthop via $IP1 dev $IF1 weight
1 nexthop via $IP2 dev $IF2 weight 1

Dar prioridad adistintos tipos de tráfico
Controlar el tráfico de programas como el emule, … Sin afectar a la red interna
Priorizando los envios importantes sobre otros
limite el número máximo de conexiones concurrentes desde y hacia uno/varios host
limite el ancho de banda que se otorga a cada cliente POR IP
http://quarkblog.org/2005/03/15/mi-script-qos/
http://es.wikipedia.org/wiki/Iproute2
http://bulma.net/body.phtml?nIdNoticia=2084

Una posible aplicacion seria en el caso de que circule
por la red, el denomimado trafico elastico(multiples usuarios estableciendo conexiones TCP, tipicamente navegando
en la Web), y trafico de flujo (voz y video).

Si se regula el trafico por ejemplo en cuanto a la demanda del servicio, se puede llegar a evitar en un caso la perdida de la conexion y en el otro volver a enviar los datos desde el comienzo.

Me parece una tecnica muy interesante, porque cada vez se le esta sacando mas partido a la red. Ya son muchas las empresas que deciden ofrecer un servicio de TV por internet, en este caso el trafico de video es constante,(informacion, programas, cine..), con la introduccion de la TDT, multitud de empresas tendran que dejar de emitir por antena, y problablemente opten por esa opcion de futuro.

Otra cosa interesante es usar algoritmos de encaminamiento para agilizar la red.
Por ejemplo:
-ENCAMINAMIENTO DE CAMINO MÚLTIPLE(algoritmo de encaminamiento)

Existe un solo “mejor” camino entre cualquier par de nodos y que todo él trafico entre ellos deberá utilizar. Con frecuencia, se puede obtener un mejor rendimiento al dividir él trafico entre varios caminos, para reducir la carga en cada una de las líneas de comunicación. La técnica se conoce como Encaminamiento de camino múltiple, o algunas veces encaminamiento bifurcado. Se aplica tanto en subredes con data gramas, como en subredes con circuitos virtuales .

El encaminamiento de camino múltiple se realiza de la siguiente manera. Cada IMP mantiene una tabla con una ristra reservada para cada uno de los posibles IMP destinatarios; cada ristra ofrece la mejor, la segunda mejor, la tercera mejor, etc. Línea de salida para este destino en particular. Una de las ventajas del encaminamiento del camino múltiple es la posibilidad de poder transmitir diferentes clases de trafico sobre diferentes caminos.

http://www.angelfire.com/mac2/rodrigo/tmenuchis_archivos/repexam.htm
en la página hay más algoritmos de encaminamiento

También podemos resolver los problemas de congestión de una red mediante algoritmos de control de gestión.
-PREASIGNACIÓN DE TAMPONES.

Si se utilizan circuitos virtuales dentro de la subred, es posible resolver por completo el problema de la congestión de la manera siguiente. Cuando se establece un circuito virtual, el paquete de solicitud de llamada sigue su camino a través de la subred, produciendo entradas en las tablas según avanza. En el momento en que llega a su destino, la ruta que deberá seguir todo el tráfico subsiguiente ya se ha determinado, así como se han hecho entradas en las tablas de encaminamiento de todos los IMP intermedios.
Normalmente, el paquete de solicitud de llamada no reserva ningún espacio de memoria en los IMP intermedios, sino solo ranuras en las tablas. Sin embargo una sencilla modificación del algoritmo de establecimiento podría hacer que cada uno de los paquetes de solicitud de llamada reserve, también, uno o más tampones para datos. Si llega un paquete de solicitud de llamada a un IMP y todos los tampones fueron reservados con anticipación, se deberá proceder a buscar otra ruta alternativa para el proceso, o bien, devolver una “señal de ocupado” al extremo que llama. Aun cuando los tampones se reserven algunos de los circuitos que aspiran a ser circuitos virtuales pueden ser reencaminados o rechazados por falta de espacio en la tabla, de tal forma que, reservar memorias no agrega ningún problema adicional a los ya existentes.

Al asignar permanentemente tampones a cada uno de los circuitos virtuales en cada IMP, siempre habrá un lugar para almacenar cualquier paquete que llegue hasta que pueda ser reexpedido.
Es imposible que se llegue a presentar congestión, por que todos los recursos necesarios para procesar él trafico ya se han reservado. Algunas subredes lo utilizan sólo en aquellos casos en
donde es primordial tener un retardo muy pequeño y un gran ancho de banda.

http://www.angelfire.com/mac2/rodrigo/tmenuchis_archivos/repexam.htm
También teneis mas algoritmos de control de la gestión en la página.
Un saludo

Otra funcionalidad consiste en la definición de túneles, por ejemplo para conectar redes de distinas topologías, o sin ir más lejos el servicio “no-ip.com”. Este servicio se ve como un gran servidor dns que lo que hace es encaminar los paquetes que llegan al servidor dns de la compañía a tu propia dirección ip. Por lo que al servidor de esa empresa lo podemos considerar como un encaminador regulado para cada uno de sus clientes.

Uno de los ejemplos en el que seria bastante interesante aplkicar encaminamiento regulado mas concretamente aplicando un balanceo de carga utilizando dos adsls y un equipo proxy.

En este caso tenemos una empresa con 2 adsls y una serie de equipos conectados a una adsl y otros a otra hay una adsl que aporta mas ancho de banda que la otra, por lo tanto como es lógico habra mas equipos conectados a esta.

El problema es que los ordenadores necesitan tener siempre internet
y si surje un fallo en una adsl una serie de ordenadores dejarian de tener internet, por ello bajo la circunstancia de que tenemos 2 adsl
y utilizando (encaminamiento regulado) balanceo de carga conectamos las adsls a un proxy (en este caso un ordenador provisto de ubuntu y 3 tarjetas de red) con esto conseguimos que si cayera un adsl los equipos conectados a esa como antes no perderian su conexión y ademas podriamos asignar diferentes pesos a cada una de las conexiones a conveiencia nuestra.

este metodo solo tiene una pega y es que las rutas son cacheadas, es decir, si tu pides “www.google.es” y se enruta por adsl1, la siguiente vez, hasta que caduque el cacheo, ira por adsl1… Esto es malo… Ya que si adsl1 se cae, las rutas cacheadas fallaran, aunque adsl2 este disponible, si no estan cacheadas iran por adsl2.

Otro ejemplo aplicable seria:
maginemos el caso de una mediana empresa, que dispone de una conexión a Internet basada en un ADSL de 2 Mbps. Con un uso elevado de la misma en la que además no quiere que las descargas de ftp de sus empleados acaben ralentizando la navegación de los directivos de la misma aquí podemos encontrar que el balanceo entre 2 adsl trambien puede sr una solucion valida.

+informacion:
http://es.wikipedia.org/wiki/Iproute2
http://www.openbsd.org/faq/pf/es/pools.html
http://www.ubuntu-es.org/index.php?q=node/17862
http://es.wikipedia.org/wiki/Balance_de_carga

Hola,

Algunos compañeros hablan de televisión por internet o programas p2p como el eMule,
creo que para regular los paquetes que se envian por la red, se podria utilizar
el programa Traffic Shapper
que manipula el ancho de banda.

Traffic Shaper crea interfaces de red nuevas que define el propio usuario y actuan sobre una interfaz de red física
para hacer la comunicación y esto puede ser utilizado por el encaminador para el tráfico saliente.
El modelado de paquetes propone conceptos de clasificación, colas, políticas reforzadoras,
administración de congestión, calidad de servicio (QoS) y regulación.

Este regulador lo introdujo Linux.

Traffic shaper solo se compila por módulo.
Su configuración se hace mediante shapecfg
Algunas órdenes son:
shapecfg attach shaper0 eth1
shapecfg speed shaper0 64000

Algunas empresas utilizan traffic shaping para que no se les colapse el servidor.

Fuentes
http://www.mailxmail.com/curso/informatica/redeslinuxcomo/capitulo32.htm
http://es.wikipedia.org/wiki/Traffic_shaping

Otra util aplicacion seria la utilizacion de filtros para la clasificacion de paquetes:
Sabemos que en las disciplinas de colas con clases es necesario llevar a cabo una
clasificación del tráfico. Es decir, es necesario determinar a qué clase debe ir cada paquete
IP.
Para ello utilizamos el concepto de ‘filtro’ que asociaremos a cada disciplina de colas en la
que sea necesario llevar a cabo una clasificación.
Las posibilidades a la hora de filtrar los paquetes son múltiples, incluso hay algunos tipos
de filtros que son específicos de determinadas disciplinas de colas. En este trabajo sólo
haremos referencia a los dos tipos de filtros más significativos:
.- Filtro u32
.- Filtro route
3.4.1. Filtro u32.
Este tipo de filtro proporciona una versatilidad enorme al permitir muchos criterios a la
hora de llevar a cabo el filtrado, lo cual hace que sean los más ampliamente utilizados.
Por definición, este tipo de filtro permite filtrar en función de cualquier conjunto de bits,
tanto de la cabecera del paquete IP, como de la cabecera del segmento de datos. Sin
embargo, este tipo de utilización es bastante farragosa y complicada, por lo que
normalmente se suelen utilizar formas más directas para estos filtros. Así, algunas de estos
criterios directos son:
.- Dirección IP de origen/destino del paquete.
.- Protocolo utilizado: tcp, udp, icmp, gre, …
.- Puertos de origen y destino utilizados.
.- Valor del campo TOS de la cabecera IP.
Veamos algunos ejemplos:
# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 \
match ip src 1.2.3.0/24 \
match ip dst 4.3.2.0/24 flowid 10:1
Este filtro seleccionará aquellos paquetes IP que tengan como dirección IP origen
cualquiera de la red 1.2.3.0/24 y como dirección destino cualquiera de la red 4.3.2.0/24.
# tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
match ip src 4.3.2.1/32
match ip dport 80 0xffff flowid 10:1
Este filtro seleccionará aquellos paquetes IP que tenga como dirección origen 4.3.2.1 y
puerto destino el 80.
3.4.2. Filtro route.
Este tipo de filtros toman su decisión en función del resultado obtenido al pasar el paquete
IP por la tabla de rutas.
Veamos un ejemplo:
# ip route add 192.168.10.0/24 via 192.168.10.1 dev eth1 realm 10
Con este comando indicamos que los paquetes que vayan a cualquiera de las direcciones
192.168.10.0/24 será marcado con el ‘realm 10’ si son consultados por un filtro de tipo
route.
Así, ahora podríamos utilizar el siguiente filtro:
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 \
route to 10 classid 1:10
Como vemos , cualquier paquete con destino 192.168.10.0/24 será enviado a la clase con
manejador 1:10.

Otra util aplicacion seria la utilizacion de filtros para la clasificacion de paquetes:
Sabemos que en las disciplinas de colas con clases es necesario llevar a cabo una
clasificación del tráfico. Es decir, es necesario determinar a qué clase debe ir cada paquete
IP.
Para ello utilizamos el concepto de ‘filtro’ que asociaremos a cada disciplina de colas en la
que sea necesario llevar a cabo una clasificación.
Las posibilidades a la hora de filtrar los paquetes son múltiples, incluso hay algunos tipos
de filtros que son específicos de determinadas disciplinas de colas. En este trabajo sólo
haremos referencia a los dos tipos de filtros más significativos:
.- Filtro u32
.- Filtro route
3.4.1. Filtro u32.
Este tipo de filtro proporciona una versatilidad enorme al permitir muchos criterios a la
hora de llevar a cabo el filtrado, lo cual hace que sean los más ampliamente utilizados.
Por definición, este tipo de filtro permite filtrar en función de cualquier conjunto de bits,
tanto de la cabecera del paquete IP, como de la cabecera del segmento de datos. Sin
embargo, este tipo de utilización es bastante farragosa y complicada, por lo que
normalmente se suelen utilizar formas más directas para estos filtros. Así, algunas de estos
criterios directos son:
.- Dirección IP de origen/destino del paquete.
.- Protocolo utilizado: tcp, udp, icmp, gre, …
.- Puertos de origen y destino utilizados.
.- Valor del campo TOS de la cabecera IP.
Veamos algunos ejemplos:
# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 \
match ip src 1.2.3.0/24 \
match ip dst 4.3.2.0/24 flowid 10:1
Este filtro seleccionará aquellos paquetes IP que tengan como dirección IP origen
cualquiera de la red 1.2.3.0/24 y como dirección destino cualquiera de la red 4.3.2.0/24.
# tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
match ip src 4.3.2.1/32
match ip dport 80 0xffff flowid 10:1
Este filtro seleccionará aquellos paquetes IP que tenga como dirección origen 4.3.2.1 y
puerto destino el 80.
3.4.2. Filtro route.
Este tipo de filtros toman su decisión en función del resultado obtenido al pasar el paquete
IP por la tabla de rutas.
Veamos un ejemplo:
# ip route add 192.168.10.0/24 via 192.168.10.1 dev eth1 realm 10
Con este comando indicamos que los paquetes que vayan a cualquiera de las direcciones
192.168.10.0/24 será marcado con el ‘realm 10’ si son consultados por un filtro de tipo
route.
Así, ahora podríamos utilizar el siguiente filtro:
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 \
route to 10 classid 1:10
Como vemos , cualquier paquete con destino 192.168.10.0/24 será enviado a la clase con
manejador 1:10.
fuente: http://www.sauronz.com/manuales/05-Contro-Trafico-Linux-Fernando-David-Gomez-res.pdf

Adjunto otra pagina en la cual nos relata una gran cantidad de aplicaciones y usos del encaminamiento avanzado en la actualidad:
http://www.microalcarria.com/descargas/documentos/Linux/redes/routing/enrutamiento_avanzado_y_control_de_tr%E1fico/

Mediante el encaminamiento regulado podemos hacer una gestión eficaz del tráfico de nuestra red. ¿Quién no ha discutido con su hermano/compañero de piso por el ancho de banda que está usando para bajarse un montón de películas mientras que, encima, está jugando a un juego on-line?

La solución viene con regular qué paquetes se encaminan con mayor velocidad, prioridad etc. Para clasificar y marcar los paquetes podemos usar el campo de QoS signaling de la cabecera IP y, tras su encaminamiento, gestionar el tráfico en cada una de las interfaces de salida.

Además de regular el encaminamiento con las prioridades establecidas en la cabecera IP, el equipo desde donde viene el paquete y otra información, podemos, por ejemplo, usar una técnica de gestión del tráfico llamada shaping que nos permite evitar posibles congestiones en nuestra red. De esta forma, podríamos establecer el ancho de banda para distintos tipos de tráfico y le pondríamos a nuestro hermano su ancho de banda proporcional para su emule y sus juegos y no perderíamos tiempo pidiéndole que pare algo, etc. :D.

El shaping es una técnica más sofisticada que el polycing, que básicamente elimina paquetes para mantener los requerimientos establecidos para la prioridad de paquetes y congestión.

Referencias:
http://www.cisco.com/en/US/tech/tk543/tk766/tsd_technology_support_protocol_home.html
http://www.itu.int/md/T01-SG11-C-0006/es
http://en.wikipedia.org/wiki/Traffic_shaping

Al igual que ha comentado MªJosé Martínez Escudero el Traffic Shapper, también podríamos utilizar Dosifinet que sirve para controlar el ancho de banda y repartir el ancho de banda entre los distintos usuarios. Algunas prestaciones de Dosifinet son las siguientes:
-Baja latencia para servicios interactivos
-Reducción de la prioridad para servicios que funcionen desatendidos
-Reducción de latencias en servicios interactivos como telnet o ssh.
-NAPT
-Posibilidad de definir privilegios para los momentos de alta carga

Para mas información:
http://www.eurogaran.com/dosifinet/

Para resolver problemas de encaminamiento en Internet podemos emplear OSPF (Open Shortest Path First) es el estándar para encaminamiento dentro de cada sistema autónomo. Distingue zonas, dispone de un Backbone, usa adaptaciones del protocolo de estado de enlace.
El resumen de las características de OSPF es el siguiente:
OSPF es un protocolo de encaminamiento complejo, como las anteriores secciones han hecho patente. Los beneficios de esta complejidad (sobre RIP) son los siguientes:
– Debido a las bases de datos de estados de enlaces sincronizadas, los “router” OSPF convergerán mucho más rápido que los “routers” RIP tras cambios de topología. Este efecto se hace más pronunciado al aumentar el tamaño del AS.
– Incluye encaminamiento TOS(“Type of Service”) diseñado para calcular rutas separadas para cada tipo de servicio. Para cada destino, pueden existir múltiples rutas, cada una para uno o más TOSs.
– Utiliza métricas ponderadas para distintas velocidades el enlace. Por ejemplo, un enlace T1 a.544 Mbps podría tener una métrica de 1 y un SLP a 9600 bps una de 10.
– Proporciona balanceamiento de la carga ya que una pasarela OSPF puede emplear varios caminos de igual coste mínimo.
– A cada ruta se le asocia una máscara de subred, permitiendo subnetting de longitud variable y supernetting.
– Todos los intercambios entre “routers” se pueden autentificar mediante el uso de passwords.
– OSPF soporta rutas específicas de hosts, redes y subredes.
– OSPF permite que las redes y los hosts contiguos se agrupen juntos en áreas dentro de un AS, simplificando la topología y reduciendo la cantidad de información de encaminamiento que se debe intercambiar. La topología de un área es desconocida para el resto de las áreas.
– Minimiza los broadcast permitiendo una topología de grafo más compleja en la que las redes multiacceso tienen un DR que es responsable de describir esa red a las demás redes del área.
– Permite el intercambio de información de encaminamiento externa, es decir, información de encaminamiento obtenida de otro AS.
– Permite configurar el encaminamiento dentro del AS según una topología virtual más que sólo las conexiones físicas. Las áreas se pueden unir usando enlaces virtuales que crucen otras áreas sin requerir encaminamiento complicado.
– Permite el uso de enlaces punto a punto sin direcciones IP, lo que puede ahorrar recursos escasos en el espacio de direcciones IP.
Para resolver problemas de congestión en la red, una buena solución son los algoritmos de encaminamiento, como se ha mencionado con anterioridad. Explico aquí un poco más acerca de estos. Para calcular el trayecto de los paquetes se usan tablas de encaminamiento, y para la construcción y mantenimiento de las tablas de encaminamiento se emplean los algoritmos de encaminamiento. Algunas propiedades de los algoritmos de encaminamiento son: corrección, simplicidad, robustez, estabilidad, equidad, optimización. Hay dos tipos de algoritmos: Estáticos y Adaptativos (obtención información, cuándo, métrica a optimizar).

Las fuentes:
http://ditec.um.es/laso/docs/tut-tcpip/3376c33.html#ospf
http://www.dtic.ua.es/asignaturas/AIRC/03-AIRC-TCP-IP.pdf
http://www.google.es

Para Cisco,(aunque ya se han hablado de alguna de ellas) algunas de las ventajas de usar Policy Routing son las siguientes:
– Selección de transito de proveedores en base al origen . Los proveedores de servicios de Internet y otras organizaciones pueden utilizar el policy-based routing para encaminar trafico originado por diferentes grupos de usuarios a través de distintas conexiones de Internet utilizando los routers de policy.
– Calidad de Servicio(Quality of Service -QOS-) . Las organizaciones pueden facilitar calidad de servicio (QOS) configurando valores de precedencia o de tipo de servicio (TOS) en las cabeceras de los paquetes IP en la periferia de la red y utilizando mecanismos de encolamiento para priorizar el trafico en el troncal de la red.
– Ahorro de costes . Las organizaciones pueden ahorrar costes repartiendo trafico interactivo y de lote entre el ancho de banda bajo, las rutas permanentes de bajo coste y el ancho de banda alto, el coste alto, y las rutas conmutadas.
– Distribución de carga . Adicionalmente a la capacidad de distribución de carga dinámica ofrecido por el routing basado en destino, tradicionalmente soportado por el software de routing de Teldat, los gestores de la red ya pueden implementar las políticas para distribui r el trafico entre los múltiples caminos basándose en las características del trafico.

El empleo de ‘route maps’ permite establecer una politica de enrutamiento para el envio de esos paquetes(solo paquetes entrantes).
Estos ‘route maps’ son similares a las listas de acceso, en la que se configuran una serie de condiciones, y una acción a tomar en caso de que el paquete cumpla con ellas. Se permite insertar y borrar líneas
en medio del route map.
Para configurarlos en cisco:
(config)# route-map [nombre] [permit | deny][número de secuencia]
(config-route-map)# match [condiciones]
(config-route-map)# set [acciones]

Si un paquete con coincide con ninguna política, o si esta está marcada como deny, el paquete se enrutará como lo haría
sin policy-routing.
La política se ha de establecer en el interface de entrada del tráfico. Para cada paquete de entrada, el router lo hace pasar
por la política definida, y de este modo decide el interface de salida. Si normalmente el routing se hace en función de la
dirección destino, con policy routing podemos enrutar basándonos en dirección origen, puerto, protocolo y tamaño de
paquete.

Un saludo!

Sobre QoS:
Quality of Service (QoS) se refiere a la capacidad de una red para proporcionar un mejor servicio a los tráfico seleccionado de la red a través de varias tecnologías, incluyendo Frame Relay, Asynchronous Transfer Mode (ATM), y 802.1 Ethernet networks, SONET, enrutado IP y redes que pueden utilizar alguna o todas de estas tecnologías subyacentes. El principal objetivo de QoS es proporcionar prioridad de ancho de banda, control de jitter y latencia (requerido por algunos tráficos en tiempo real y interactivos), y la mejora de características de la pérdida. También es importante asegurarse de que el suministro de prioridad de una o más conexiones no hace fallar otras conexiones.

Fundamentalmente, QoS permite prestar un mejor servicio a determinadas conexiones. Esto se hace ya sea por el aumento de la prioridad de una conexion, o la limitación de la prioridad de la otra. Al utilizar herramientas de gestión de la congestión, se aumenta la prioridad de un flujo por el servicio de colas de espera de diferentes maneras. La herramienta de gestión de la cola utilizada para evitar la congestión plantea prioridad la supresión de menor prioridad antes de las corrientes de las corrientes de mayor prioridad. La configuración de prioridad permite proporcionar un flujo limitando a unas flujos, aumentando el rendimiento de otros.

Más info en:
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm [inglés]

Un posible ejemplo practico de QoS, donde puede ser útil calidad de servicio puede ser en VoIP, video conferencias, o video streaming.
Vamos a tener en cuenta los parametros del QoS que son:

– Ancho de Banda (bandwidth):unidad:–> Kb/s Indica el caudal máximo que se puede transmitir
– Retardo (delay) o latencia (latency): unidad–>ms; El tiempo medio que tardan en llegar los paquetes
– Jitter ms La fluctuación que se puede producir en el
Retardo
– Tasa de pérdidas (loss rate): unidad–>%; Proporción de paquetes perdidos respecto de los enviados

A partir de estos, podemos deducir por ejemplo que si en una conversacion VoIp se mandan paquetes de voz cada 20ms para una conversacion con calidad, si debido a la saturacion de la red, se envian paquetes cada 40ms, la calidad disminuye.

Existen dos posibles estrategias para dar trato preferente a un usuario o una aplicación en una red:
Carril BUS: reservar capacidad para su uso exclusivo. A veces se denomina ‘QoS hard’. Ej.: VCs ATM con categoría de servicio CBR
Ambulancia: darle mayor prioridad que a otros usuarios. A veces se denomina ‘QoS soft’. Ejemplo: LANs 802.1p
Cada estrategia tiene ventajas e inconvenientes.

RESERVA
======
– Ventajas
Da una garantía casi total
Los paquetes no necesitan llevar ninguna marca que indique como han de ser tratados, la información la tienen los routers
– Desventajas
Requiere mantener información de estado sobre cada comunicación en todos los routers por lo que pasa
Se requiere un protocolo de señalización para informar a los routers y efectuar la reserva en todo el trayecto

PRIORIDAD
=========
– Ventajas
Los routers no necesitan conservar información de estado

– Desventajas

Los paquetes han de ir marcados con la prioridad que les corresponde
La garantía se basa en factores estadísticos, es menos segura que la reserva de recursos (puede haber overbooking)

He encontrado una frase por internet que esta bastante bien:

“El Santo Grial de las redes de computadores es diseñar una red que tenga la flexibilidad y el bajo costo de la Internet, pero que ofrezca las garantías de calidad de servicio extremo a extremo de la red telefónica.”

S. Keshav: ‘An Engineering Approach to Computer Networking‘, 1997

Hola,

El análisis de usuarios suele encuadrarse en los proxys, ya que éstos pueden leer las cabeceras del nivel de aplicación, y se suelen asociadar a validaciones http o de otro protocolo.

En este caso lo que proponía la entrada es analizar el usuario de la máquina local como atributo extendido que ofrece iptables en el uso de un firewall en un sistema Linux.

Analizar parámetros de la propia máquina puede servirnos por ejemplo para la securización de máquinas en el sentido que podemos tener procesos corriendo como root que usen ciertos puertos de otras máquinas (por ejemplo login), sin embargo, un usuario con uid distinto de 0 no podrá acceder a esos puertos por red desde esa máquina.
Al igual nos puede interesar restringir puertos de otras máquinas sólo para que accedan ciertos usuarios.

También podríamos usar el marcado de paquetes de iptables junto con el uso de iproute2 para control parental (dejar usuarios sin internet o solo a aciertas horas, etc). O directamente que ciertos usuarios no tengan conectividad de red (por ejemplo para usuarios hostiles).

Este método puede ofrecer funcionalidad de conexión mediante proxy a un programa que no la tenga, configurando que ese programa saldrá por otra interfaz (corriendolo con un UID especifico, o por PID).

De todas maneras el encaminamiento regulado se suele utilizar en routers (FORWARD) y no en OUTPUT, en los cuales los UID’s o PID’s no tienen sentido.

Como comenta #1 se puede utilizar para balanceo de carga, o por ejemplo para resolver problemas como plantea #10 de excesiva carga, marcar paquetes por puerto y luego encaminar el ftp, web por una interfaz y correo y cosas más críticas por otra.

También se ha comentado el uso de Qos (#11, #12, #18), para mejorar la calidad de las conexiones, tema que está muy ligado a lo que estamos comentando, una prueba de ello es que el comando tc (traffic control) también hace uso de marcas fwmark.

Si quereis profundizar en el tema de control de tráfico os recomiendo el Linux Advanced Routing & Traffic Control, y teneis una versión en castellano.

http://lartc.org/

Saludos

Responder a Alfonso Polo Fernández Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *