| Made possible by PowerDNS | ||
|---|---|---|
| Anterior | Capítulo 15. Recetario | Siguiente |
Si están saliendo muchos datos por su enlace, o entrando que para el caso es lo mismo, y está intentando hacer mantenimiento vía telnet o ssh, puede que la cosa no vaya muy bien. Los otros paquetes están bloqueando nuestras pulsaciones. ¿No sería maravilloso si hubiera una manera de que nuestros paquetes interactivois se colasen por entre el tráfico masivo? ¡Linux puede hacerlo!
Como antes, necesitamos gestionar el tráfico que va en ambas direcciones. Evidentemente, esto funciona mejor si hay máquinas Linux a ambos lados del enlace, aunque otros UNIX son capaces de hacerlo. Consulte a su gurú local de Solaris/BSD al respecto.
El organizador pfifo_fast estándar tiene 3 "bandas" diferentes. El tráfico del a banda 0 se transmite antes, tras lo cual se toma en consideración el tráfico de las bandas 1 y 2. ¡Es vital que nuestro tráfico interactivo vaya a la banda 0!
Hemos adaptado esto desvergonzadamente directamente del ipchains HOWTO (que pronto estará obsoleto):
Hay cuatro bits en la cabecera IP que se usan rara vez, llamados los bits de Tipo de Servicio (TOS). Afectan la manera en que se trata un paquete; los cuatro bits son "Retraso Mínimo", "Transferencia Máxima", "Fiabilidad Máxima" y "Coste Mínimo". Sólo se permite activar uno de estos bits. Rob van Nieuwkerk, el autor del código de ipchains que trabaja con el TOS, lo dice así:
El "Mínimum Delay" es especialmente importante para mí. Lo activo para paquetes "interactivos" en mi router (Linux) de salida. Estoy tras un enlace por módem a 33k6. Linux prioriza los paquetes en tres colas. De esta manera, consigo un rendimiento interactivo aceptable mientras realizo descargas masivas al mismo tiempo.
El uso más común es marcar las conexiones de telnet y control de ftp con "Retraso Mínimo", y la de datos de FTP a "Transferencia Máxima". Esto debería hacerse de la siguiente manera, en el router de salida:
# iptables -A PREROUTING -t mangle -p tcp --sport telnet \ -j TOS --set-tos Minimize-Delay # iptables -A PREROUTING -t mangle -p tcp --sport ftp \ -j TOS --set-tos Minimize-Delay # iptables -A PREROUTING -t mangle -p tcp --sport ftp-data \ -j TOS --set-tos Maximize-Throughput
Lo hecho hasta ahora sólo sirve para los datos que vienen de la máquina remota hacia la suya. Para los que van en el otro sentido parece que ya está hecho, ya que telnet, ssh y amigos activan el campo TOS automáticamente en los paquetes que salen.
Si tuviera una aplicación que no lo hace, siempre puede controlarlo con netfilter. En la máquina local:
# iptables -A OUTPUT -t mangle -p tcp --dport telnet \ -j TOS --set-tos Minimize-Delay # iptables -A OUTPUT -t mangle -p tcp --dport ftp \ -j TOS --set-tos Minimize-Delay # iptables -A OUTPUT -t mangle -p tcp --dport ftp-data \ -j TOS --set-tos Maximize-Throughput