9.9. Manipulación de los bits de TOS

Los bits del campo de tipo de servicio (TOS [1]) son un conjunto de cuatro indicadores de un bit de la cabecera de IP. Si uno de estos indicadores de bit vale 1, un encaminador puede manipular el datagrama de forma diferente del caso en el que ningún indicador valiera 1. Cada uno de los cuatro bits tiene un propósito diferente y sólo uno de los bits de TOS puede valer 1 al mismo tiempo, es decir, las combinaciones no están permitidas. Estos indicadores de bit se denominan de "tipo de servicio" porque permiten que la aplicación que transmite los datos informe a la red del tipo de servicio de red que requiere.

Las clases de servicios de red disponibles son:

Demora mínima

Se utiliza cuando se le da la máxima importancia al tiempo de viaje de un datagrama del 'host' de origen al 'host' de destino (demora). Por ejemplo, un suministrador de red podría estar utilizando tanto conexiones de red de fibra como por satélite. Los datos transportados por las conexiones por satélite tienen que viajar más lejos y su demora entre los mismos extremos será por lo general mayor que la de las conexiones de red terrestres. Un suministrador de red podría elegir asegurarse que los datagramas con este tipo de servicio no se transporten por satélite.

Rendimiento máximo

Se utiliza cuando el volumen de datos transmitidos en cualquier período de tiempo es importante. Existen numerosos tipos de aplicaciones de red para las que el tiempo de demora no es muy importante pero el rendimiento sí que lo es; por ejemplo, las transferencias de ficheros en bloque. Un suministrador de red podría elegir encaminar los datagramas con este tipo de servicio vía rutas de demora alta, pero de gran ancho de banda, como las conexiones por satélite.

Fiabilidad máxima

Se utiliza cuando es importante tener alguna certeza de que los datos llegarán al destino sin necesidad de una retransmisión. El protocolo IP puede transportarse sobre un número variado de medios de transmisión de bajo nivel. Mientras que SLIP y PPP son adecuados para protocolos de enlace de datos [2], no son tan fiables para transportar IP como otras redes, como las redes X.25. Un suministrador de red podría tener disponible una red alternativa, que ofreciera alta fiabilidad para transportar IP y que se utilizaría cuando se eligiera este tipo de servicio.

Coste mínimo

Se utiliza cuando resulta importante minimizar el coste de los datos transmitidos. El alquiler de ancho de banda de un satélite para una transmisión transoceánica cuesta generalmente menos que el alquier de espacio de un cable de fibra óptica sobre la misma distancia, por lo que los suministradores de red pueden elegir proporcionar ambos y cobrar de forma diferente según sea el que se utilice. En este escenario, el bit de tipo de servicio de “coste mínimo” puede ocasionar que los datagramas sean encaminados vía la ruta de menor coste por satélite.

9.9.1. Establecimiento de los bits de TOS con ipfwadm o ipchains

Las órdenes ipfwadm e ipchains gestionan los bits de TOS prácticamente de la misma forma. En ambos casos, se especifica una regla que coincide con los datagramas que contengan un conjunto particular de bits de TOS, y en ambos se utiliza el argumento -t para especificar los cambios que se desean realizar.

Los cambios se especifican utilizando máscaras de dos bits. Se realiza un AND lógico con la primera de estas máscaras de bits y el campo de las opciones de IP, mientras que se realiza un OR exclusivo con la segunda. Por si puede parecer complicado, en un momento se darán las recetas que se necesitan para habilitar cada uno de los tipos de servicio.

Las máscaras de bit se especifican utilizando valores hexadecimales de ocho bits. Tanto ipfwadm como ipchains utilizan la misma sintaxis para el argumento:
    -t máscara_and máscara_xor

Afortunadamente, pueden utilizarse los mismo argumentos de máscara cada vez que se desee establececer un tipo de servicio particular, lo que ahorra el tener que averiguarlas cada vez. En la Tabla 9-3 se presentan junto con algunas sugerencias de uso.

9.9.2. Establecimiento de los bits de TOS con iptables

La herramienta iptables permite especificar reglas que capturen sólo los datagramas con los bits de TOS coincidentes con los valores prederminados por la opción -m tos, y que establezcan los bits de TOS de los datagramas de IP que coincidan con una regla con el blanco -j TOS. Pueden establecerse los bits de TOS sólamente en las cadenas FORWARD y OUTPUT. La coincidencia y el establecimiento ocurren de forma independiente. Se puede configurar todo tipo de reglas interesante. Por ejemplo, puede configurarse una regla que descarte todos los datagramas con una cierta combinación de bits de TOS, o una regla que establezca los bits de TOS sólamente de los datagramas que provengan de unos ciertos 'hosts'. La mayoría de las veces, se utilizarán reglas que contengan tanto la coincidencia como el establecimiento para así realizar traducciones de bits de TOS, como ya se podía hacer con ipfwadm o ipchains.

En lugar de la configuración complicada de dos máscaras de ipfwadm e ipchains, iptables utiliza la estrategia más simple de especificar de forma plana los bits de TOS que deben buscar coincidencias con, o los bits de TOS que deben establecerse. Además, en lugar de tener que recordar y utilizar el valor hexadecimal, puede especificarse los bits de TOS utilizando los nombres mnemotécnicos mostrados en la tabla siguiente.

La sintaxis general utilizada para buscar coincidencias con los bits de TOS se parece a:
    -m tos --tos nombre_mnemotécnico [otros_args] -j objetivo

La sintaxis general utilizada para establecer los bits de TOS se parece a:
    [otros_args] -j TOS --set nombre_mnemotécnico

Recuérdese que las dos posibilidades generalmente se utilizarán juntas, pero que también pueden ser utilizadas de forma independiente si se quiere una configuración que así lo requiera.

Notas

[1]

N. del T.: 'Type Of Service' en el original en inglés

[2]

N. del T.: 'datalink' en el original en inglés