Enseñar a todos a conocer la función de control de flujo del servidor TC

  

TC se usa principalmente para empresas, por supuesto, su propia casa también está disponible, pero creo que no es necesario, la red de la empresa generalmente supera el tráfico, o el tráfico no está controlado, por lo que puede Utilice TC para controlar el tráfico del servidor. A continuación le indicamos cómo hacerlo.

TC Introducción

En linux, TC tiene dos métodos de control CBQ y HTB.HTB están diseñados para reemplazar CBQ. Es un marco de filtrado jerárquico.

El TC consta de tres bloques de construcción básicos: qdisc que dicta la cola (disciplina de cola), clase (clase) y clasificadores (Clasificadores) y cola

(disciplina de la cola): se utiliza para implementar la red de control Velocidad del transceptor. A través de la cola, Linux puede almacenar en caché los paquetes de datos de la red, y luego suavizar el tráfico de la red de acuerdo con la configuración del usuario, sin interrumpir la conexión (como TCP). Se debe tener en cuenta que Linux no controla la cola de recepción lo suficientemente bien, por lo que generalmente solo usamos la cola de envío, es decir, "el control y el control no controlan". Encapsula otros dos componentes principales de TC (clases y clasificadores). Si el kernel necesita enviar un paquete a través de una interfaz de red, necesita poner en cola el paquete de acuerdo con el qdisc (regla de puesta en cola) configurado para esta interfaz. Luego, el kernel toma tantos paquetes de datos como sea posible del qdisc y los entrega al módulo del controlador del adaptador de red.

El QDisc más simple es pfifo. No realiza ningún procesamiento en los paquetes entrantes. Los paquetes se colocan en la cola en una forma de primero en entrar, primero en salir. Sin embargo, guarda paquetes que la interfaz de red no puede manejar en este momento.

Las reglas de la cola incluyen FIFO (primero en entrar, primero en salir), RED (detección temprana aleatoria), SFQ (cola aleatoria justa) y token bucket (Token Bucket), cola basada en clases (CBQ), CBQ es un super Cola, es decir, puede contener otras colas (incluso otras CBQ). La clase

se utiliza para representar la estrategia de control. Obviamente, muchas veces es probable que implementemos diferentes estrategias de control de flujo para diferentes IP. En este momento, tenemos que usar diferentes clases para representar diferentes estrategias de control. El filtro

se utiliza para clasificar a los usuarios en estrategias de control específicas (es decir, diferentes clases). Por ejemplo, ahora queremos implementar diferentes estrategias de control (A, B) para las dos direcciones IP xxa, xxb. En este momento, podemos usar el filtro para asignar xxa al control de la estrategia A, y xxb para controlar la estrategia B, la división del filtro. El indicador se puede implementar utilizando la función de marcado u32 o la marca de configuración de las tablas de IP (principalmente utilizando iptables para el marcado).

Actualmente, los filtros que TC puede usar son: clasificador fwmark, clasificador u32, clasificador basado en rutas y clasificador RSVP (para IPV6, IPV4, etc.); entre ellos, el clasificador fwmark nos permite El código de netfilter de Linux se usa para seleccionar el tráfico, y el clasificador u32 nos permite elegir el tráfico en función del encabezado ANY. Tenga en cuenta que los filtros están dentro de QDisc y no pueden ser el tema.

Paquetes-> iptables (en iptables, iptables establece diferentes marcas según diferentes ips) - > TC (clase) - > TC (cola)


Supongamos que el bit eth0 es la interfaz de red externa del servidor.

1) Primero en qdiscA de eth0, qdiscA controla la velocidad de pasar la máquina a la red externa, por lo que se usa para controlar la velocidad del flujo de salida del servidor.

#tc qdisc agregar dev eth1 root handle 1: Htb default 1

Agregue el identificador de nivel superior de la interfaz del conjunto (para marcar) La clase predeterminada que usa 1 clase

se explica de la siguiente manera: si se trata de una cola, o tanto la clase como el filtro tienen ID y similares Los caracteres, generalmente tienen padre (padre, capa superior), tenga en cuenta que ID tiene una localidad de interfaz, diferentes interfaces de red pueden tener el mismo ID. Por esta razón, porque qdisc está en la parte superior, por lo que padre no está, use ‘ root ’ ID con 1: para marcar

‘ default 91 ′ significa que cuando un flujo de IP no satisface ninguna de las reglas de filtro establecidas, se clasificará automáticamente en la clase 1. Consulte el manual para obtener una descripción más detallada de las reglas de instrucción.

2) Luego cree dos clases en qdisc para especificar la velocidad del control eth0 a través de la máquina a la red externa

#tc class add dev eth0 parent 1: 0 classid1: 30 htb rate 2mbit ceil 4mbit prio 2

Nota: Lo anterior es la velocidad de nuestro servidor de salida de control, 2M, hasta 4M

tasa: es un valor de ancho de banda de clase garantizada. Si hay más de una clase, asegúrese de que la suma de todas las subclases sea menor o igual que la clase principal.

prio: se utiliza para indicar la competitividad al tomar ancho de banda. Cuanto más pequeño es el prio, mayor es la prioridad y más fuerte es la competitividad.

Copyright © Conocimiento de Windows All Rights Reserved