Algunos formación de tráfico

  

Muchos ancho de banda de acceso al servidor SME es a menudo sólo un único servidor por lo general de 10 Mbps bajo servidores Linux también ejecutar otros servicios, tales como servicios de FTP, servicios web, cuando el tráfico del sitio es grande y hay muchas personas a la vez Al descargar, el ancho de banda se agota fácilmente, lo que provoca la latencia del servidor o la pérdida de paquetes. ¿Cómo acelerar el límite del puerto 80 y asegurar que otros servicios puedan ejecutarse normalmente?

Puede usar el comando tc para ajustar los límites de los puertos y servidores especificados en el servidor.

Token Bucket (TB)

Token Bucket es un algoritmo común que se utiliza para controlar la cantidad de datos que ingresan a la red, lo que permite enviar ráfagas de datos. Se utiliza para control de flujo de red o limitación de velocidad. Con el token bucket, puede definir el tráfico en una interfaz que permite la tasa máxima en un momento dado. Fichas /seg |  | |  |  Cubo a |  |  Para mantener b tokens + ====== + ===== + | | |  \\ | /Paquetes |  + ============ + stream |  --- > |  Espera de fichas |  --- > Eliminar token --- > eth0 |  + ============ + 1.El filtro de TB coloca los tokens en el depósito a una cierta tasa. 2. Cada token es un permiso para que la fuente envíe un número específico de bits a la red. .Bucket puede contener b tokens según las reglas de configuración.4.El núcleo puede enviar paquetes si tiene que esperar otro token.

¿Cómo uso el comando TC?

¡Advertencia! Estos ejemplos requieren una buena comprensión de TCP /IP y otros conceptos de red. Todos los usuarios nuevos deben intentar ser ejemplos en un entorno de prueba. El comando TC se instala por defecto en mi distribución de Linux. Para una lista de las normas vigentes, entre:

# tc qdisc -s ls dev eth0 Muestra de salida: qdisc pfifo_fast 0: 3 bandas raíz priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1Sent 2732108 bytes 10732 PKT (cayó 0, 0 overlimits requeues 0) 0bit tasa 0pps backlog 0b 0p requeues 0

lo primero que la primera formación de tráfico reglas, enviar una solicitud de ping cyberciti.biz estación de trabajo local Linux, y tenga en cuenta el ping hora, tipo:

# ping salida de muestra cyberciti.biz: PING cyberciti.biz (74.86.48.99) 56 (84) bytes de bytes data.64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 1 TTL = 47 tiempo = 304 bytes MS64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 2 TTL = 47 tiempo = 304 bytes MS64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 3 ttl = 47 tiempo = 304 bytes MS64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 4 TTL = 47 tiempo = 304 MS64 bytes de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 5 TTL = 47 tiempo = 304 ms64 bytes desde txvip1.simplyguide.org (74.86.48.99): icmp_seq = 6 ttl = 47 tiempo = 304 ms

Escriba a continuación TC 200 ms comando ralentiza

# tc qdisc añadir dev eth0 200 ms de retardo NetEm raíz ahora vuelva a ejecutar la solicitud de ping # ping cyberciti.biz de muestra de salida: cyberciti.biz PING (74.86.48.99) 56 (84) bytes de bytes data.64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 1 TTL = 47 tiempo = 505 MS64 bytes de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 2 TTL = 47 tiempo = 505 MS64 bytes desde txvip1.simplyguide.org (74.86.48.99): icmp_seq = 3 TTL = 47 tiempo = 505 bytes MS64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 4 TTL = 47 tiempo = 505 MS64 bytes de txvip1. simplyguide.org (74.86.48.99): icmp_seq = 5 TTL = 47 tiempo = 505 MS64 bytes de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 6 TTL = 47 tiempo = 505 bytes MS64 de txvip1.simplyguide.org ( 74.86.48.99): bytes icmp_seq = 7 TTL = 47 tiempo = 505 MS64 de txvip1.simplyguide.org (74.86.48.99): icmp_seq = 8 TTL = 47 tiempo = 505 ms ^ C --- estadísticas cyberciti.biz de ping - -8 Paquetes transmitidos, 8 recibidos, 0% de pérdida de paquetes, tiempo 7006msrtt min /avg /max /mdev = 504.464 /505.303 /506.308 /0.949 ms

Para mostrar la regla actual, introduzca # tc qdisc -s ls dev eth0 muestra de salida: qdisc NetEm 8001: root límite de retardo de 1000 200.0msSent 175.545 bytes 540 PKT (dropped 0, 0 overlimits requeues 0) 0bit tasa Backlog 0pps 0b 0p requeues 0

Para eliminar todas las reglas, ingrese # tc qdisc del dev eth0 root # tc -s qdisc ls dev eth0

ejemplos de TBF

Adjuntando una velocidad máxima sostenida de 1 Mbit /s, velocidad máxima de 2.0 MB /s, búfer de 10kilobytes para un cálculo de TBF, lo que hace que el TBF genere un retraso de hasta 70 ms, con un comportamiento perfecto de velocidad máxima, con el límite de tamaño de la cuchara frontal, entrada:


# tc qdisc añadir dev eth0 raíz tasa TBF 1 Mbit ráfaga de 70 ms de latencia 10kb peakrate 2mbit minburst 1540

HTB y ndash; jerárquica muestra cubo

a Controle el uso del ancho de banda de egreso de HTB en un enlace dado: 1.rate – puede establecer el ancho de banda permitido. 2.ceil – puede establecer el ancho de banda de ráfaga cuando se permite el depósito. 3.prio – Puede establecer una prioridad de ancho de banda adicional. El ancho de banda proporcionado por la clase inferior de prios. Por ejemplo, puede dar un tráfico DNS y PRIO de descarga HTTP más bajos. 4.iptables y TC: debe utilizar iptables y TC de la siguiente manera: Controle el tráfico HTTP saliente.

Ejemplo: Formulación de tráfico saliente HTTP

Primero, elimine las reglas existentes en la NIC eth1: # /sbin /tc qdisc del dev eth1 root Abra la regla de la cola, escriba: # /sbin /tc qdisc añadir dev eth1 mango raíz 1: 0 htb por defecto 10 clases de límites definidos, es decir, el ancho de banda permitido de 512 kilobytes a 640 kilobytes los puertos 80 y estalló ancho de banda:

# /sbin /Tc class add dev eth1 parent 1: 0 classid 1:10 htb rate 512kbps ceil 640kbps prio 0 Tenga en cuenta que el puerto 80 no está definido en ninguna parte de la clase anterior. Usará la regla de eliminación de iptables de la siguiente manera:

# /sbin /iptables -A SALIDA -t mangle -p tcp --sport 80 -j MARK --set-mark 10 Para guardar las reglas de iptables, ingrese lo siguiente Comando, (RHEL por ejemplo): # /sbin /service iptables save Finalmente, asigne a qdisc: # tc filter add dev eth1 parent 1: 0 prio 0 protocolo ip handle 10 fw flowid 1:10 debajo del puerto 80 y 22 Otro ejemplo:

/sbin /tc qdisc agregar dev eth0 root handle 1: clase htb /sbin /tc add dev eth0 parent 1: classid 1: 1 htb rate 1024kbps /sbin /tc class add dev eth0 padre 1: clase 5 HTB 512 kbps tasa superior 640Kbps prio 1 /sbin /tc añadir dev eth0 matriz 1:: 1 classid 1 1 classid 1: 6 HTB 160kbps 100kbps tasa superior prio 0 /sbin /tc filtro de añadir dev eth0 matriz 1: 0 prio 1 protocolo mango ip 5 fw flowid 1: filtro 5 /sbin /tc añadir dev eth0 padre 1: 0 prio 0 protocolo mango ip 6 fw flowid 1: 6 /sbin /iptables -A OUTPUT -t mangle -p --sport tcp 80 -j MARK - set-mark 5 /sbin /iptables -A OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 6

¿Cómo puedo monitorear y Velocidad de la prueba?

Use la herramienta

# /sbin /tc -s -d clase show dev eth0 # /sbin /iptables -t mangle -n -v -L # iptraf # watch /sbin /tc -s -d class show dev eth0 Para probar la velocidad de descarga con las herramientas de línea de comandos LFTP o wget.

Copyright © Conocimiento de Windows All Rights Reserved