Está en la página 1de 28

Universidad Nacional Autónoma de Nicaragua

UNAN-León

Facultad de Ciencias y Tecnología.


Ing en Telematica.
Redes de Area Extensa.

Docente:
 Msc. Aldo Martínez

Tema:
• Practica 1. Calidad de Servicio en Linux.
Elaborado por:
 Wilber Andrés Manzanarez Narvaez

Fecha: 24/04/2020

“A la libertad por la universidad”


Descomprime el fichero que contiene el escenario de NetGUI lab-tc.tgz para realizar la práctica
de control de tráfico en Linux.
Al descomprimir el fichero me muestra la siguiente topologia de red:
11.0.0.0 y 12.0.0.0.
1.Sin control de tráfico ni a la entrada ni a la salida.
El router r1 no tiene activado el control de tráfico en ninguna de sus interfaces.

Al verificar las discplina de entrada con tc qdisc show muestra las discplina por defecto pfifo_fast.

1.1. Un flujo de datos.


Arranca iperf en modo servidor UDP en pc3 y arranca iperf en modo cliente UDP en pc1
para que envı́e tráfico a 3 Mbit durante 10 segundos a pc3.

Inicio el comando iperf en pc3 en modo servidor.

Inicio el comando iperf en modo cliente que envie trafico de 3 Mbit, por defecto el comando enviá
durante 10segundos.
Observa en el lado servidor, el informe del tráfico recibido en el sentido pc1 → pc3.

En Transferencia muestra 3.75 Mbytes y el ancho es de 3.15 Mbits/sec, y en como no hay otro fluyo
el jitter es el mínimo.

1.2. Dos flujos de datos.


• Arranca iperf en modo servidor UDP en pc4.

Inicio el servidor iperf (udp) en pc4.

• Arranca otro iperf en modo servidor UDP en pc3.

Inicio el servidor iperf en pc3.


• Inicia una captura de tráfico en la interfaz eth1 de r1.

Incio captura con el comando tcpdump -i eth1 -w /hosthome/prueba-router.cap , para


capturar trafico en la intefaz eth1 de r1.

• Escribe (todavı́a sin ejecutar) el comando que arranca iperf en modo cliente UDP en pc1
para que envı́e 3 Mbit al servidor pc3 en el sentido pc1 → pc3 durante 10 segundos.

Escribo iperf -u -c 12.0.0.30 -b 3Mbit, para que envie trafico a 3Mbit a pc3(12.0.0.30) por
defecto se envia durante 10 seg.

• Escribe (todavı́a sin ejecutar) el comando que arranca iperf en modo cliente UDP en pc2
para que envı́e 3 Mbit al servidor pc4 en el sentido pc2 → pc4 durante 10 segundos.

Inico el cliente iperf hacia pc2(12.0.0.40) con trafico de 3Mbit.


• Ejecuta los dos comandos anteriores uno a continuación de otro (lo más rápidamente que
puedas) para que su ejecución se realice de forma simultánea.

Ejecuto los comando en pc1 y pc2 para enviar los 2 flujos.

• Interrumpe la captura aproximadamente 10 segundos después de que arrancaras iperf.

Interrumpo la captura de trafico luego de 10 segundos en r1.

A continuación analiza los resultados obtenidos:


1. Explica las estadísticas que muestran los servidores.

En ambos caso los servidores reflejan


el mismo ancho de banda por que no
se a configurado disciplina de
entrada y de salida, y como son dos
flujos en la variación de entrega de
los paquetes fue de 0.123ms la
diferencia.
2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

En el instante 0 pc2 tiene todo el ancho de banda de 3.242 bits/sec y cuando entra el flujo de pc1 va
disminuyendo el ancho de banda de pc2

2. Control de admisión para el tráfico de entrada


Vamos a configurar r1 para restringir el tráfico de entrada para 2 flujos de datos que recibe r1:
• Flujo 1: origen 11.0.0.10 se va a restringir a una velocidad de 1Mbit y una cubeta de 10k.
• Flujo 2: origen 11.0.0.20 se va a restringir a una velocidad de 2Mbit y una cubeta de 10k.
• Utiliza tc para definir esta configuración en la interfaz eth0 de r1 que es la interfaz de
entrada de r1 para los flujos 1 y 2. Ten en cuenta que se aplique primero el filtro del flujo
número 1 y después el del número 2. Guarda esta configuración en un fichero de script,
por ejemplo con el nombre tc-ingress.sh que deberá contener las instrucciones que
ejecutarias en la linea de comandos:

Con nano creo un script llamado tc-ingress.sh y le agrego las siguientes ordenes:
tc qdisc del dev eth0 ingress =elimino disciplina creadas.
Tc qdisc add dev etho handle ffff: ingress=creo la disciplina de entrada.
Tc filter add dev eth0 parent ffff: \= creo los filtros para restringir la velocidad a pc1 y pc2 y para
que no superen la velocidad establecida y le añado cubeta de 10k a pc1 y pc2.
Una vez creado el script debes darle permisos de ejecución con la orden:
chmod 755 tc-ingress.sh
Le damos permiso al script

Y por último, para ejecutarlo, debes escribir:


./tc-ingress.sh
Ejecuto el script para que se agregue la displina de entrada.

• Inicia una captura de tráfico en la interfaz eth1 de r1.

Ejecuto captura de trafico en r1 en la intefaz eth1 ycon el nombre trafico-entrada.eth1.r1.cap

• Arranca dos clientes y 2 servidores tal y como lo hiciste en el apartado 1.2.

Primero arranco servidor iperf en pc3 y pc4.


Ejecuto el cliente iperf en pc1 y pc2.

• Interrumpe la captura aproximadamente 10 segundos después de que arrancaras iperf,


cuando los servidores hayan terminado de recibir todo el tráfico.

Interrumpo las captura de trafico en r1 y los informes de los servidores iperf con ctrl+c.
A continuación analiza los resultados obtenidos:
1. Explica las estadísticas que muestran los servidores.
El ancho de banda disminuyo para pc1 y tubo mas perdidas de paquete porque se agrego disciplina
de entrada para pc1 a 1Mbit de velocidad de igual manera a pc2 se le agrego disciplina de entrada
de 2Mbit de velocidad, es por eso que en el reporte informa ancho de banda de 1.96Mbits/seg

2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

A como se ve en en la grafica se comprueba el ancho de banda asignada para pc1 de 1Mbit y para
pc2 de 2Mbit con ráfaga de 10 k.
3.Disciplinas de colas para el tráfico de salida
3.1.Token Bucket Filter (TBF)
Mantén la configuración del tráfico de entrada en r1 que has realizado en el apartado anterior
en el script tc-ingress.sh.
• Define en r1 para su interfaz eth1 una disciplina TBF de salida con ancho de banda 1.5
Mbit, latencia 10 ms y tamaño de cubeta 10k y guarda la configuración en un nuevo script
tc-egress-tbf.sh.

Creo el script tc-egress-tbf.sh

Guardo el archivo,le doy permiso y ejecuto el script.

• Inicia una captura de tráfico en la interfaz eth1 de r1.


• Arranca dos clientes y 2 servidores tal y como lo hiciste en el apartado 1.2.

Inicio los servidores iperf en pc3 y pc4.

Inicio los iperf en modo cliente en pc2 y pc3.

• Interrumpe la captura aproximadamente 10 segundos después de que arrancaras iperf.

Interrumpo la captura en r1.


A continuación analiza los resultados obtenidos:

1. Explica las estadísticas que muestran los servidores.

A como se ve la tasa de transferencia y el tamaño de banda se limito por que se asigno una
disciplina de salida con un ancho de banda de 1.5Mbit,tubo mas perdidas de paquetes pc1-> pc3,
como se le agrego 10ms de latencia que es el tiempo que espera un paquete por un token entonces
aumento el jitter en pc1→pc3 y el ancho de banda lo intercambian .
2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

Cada paquete se intercambia el ancho de banda ya que se agrego latencia a la disciplina de salida
de tbf y estan a la espera que esten disponible token para en enviar rafagas cuando termina el flujo
de pc1 se libera el ancho de banda y alcanza todo el ancho de banda.

Modifica la configuración de TBF de salida para que ahora tenga una latencia de 20
segundos y realiza la misma prueba que antes 1 . Interrumpe la captura al menos cuando
hayan pasado 20 segundos desde que comenzaste a enviar tráfico desde los clientes. A
continuación analiza los resultados obtenidos:

Edito el script tc-egress-tbf.sh elimino disciplina de colas y creo la nueva.

Ejecuto el script.
Arranco los servidores iperf y la captura en r1 eth1.

Ejecuto el comando iperf en modo cliente.


Interrumpo la captura luego de 20 s.

1. Explica las estadísticas que muestran los servidores.


Muestra ancho de banda 459 kbits/sec en la variacion del retardo de los paquetes estan similares y
pc1→pc3 hay mas perdidas de paquetes por que esta limitada su velocidad
Pc4 recibio a una tasa de transferencia de 1.31 Mbytes y el anho de banda es 1.07 Mbits/sec con un
jitter 17.149 ms.
2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

Como ahora la latencia se incremento entonces pc1→pc3 espera mas tiempo para por token(burst)
para poder obtener mas ancho de banda, y cuando termina el flujo de pc1 todo el ancho de banda es
para pc2->pc3.
3.2. Prioridad (PRIO)
Mantén la configuración del tráfico de entrada en r1 que has realizado en el apartado anterior
en el script tc-ingress.sh. Borra la disciplina de cola de salida configurada en la interfaz eth1 de
r1.
La configuración TBF en el apartado 3.1 permite gestionar el ancho de banda de salida para
que no supere el valor configurado, en nuestro caso 1.5Mbit. Toma como punto de partida esta
configuración para que ahora se atienda el tráfico de salida según diferentes prioridades,
configurando una disciplina de cola con prioridad que sea hija de la disciplina TBF.
● Escribe un script en r1, tc-egress-prio.sh, para configurar TBF con los siguientes
parámetros: ancho de banda 1.5Mbit, cubeta 10k y latencia 20s. Crea una disciplina de
cola hija con prioridad de tal forma que se asignen las siguientes prioridades:
1. Prioridad 1 (más prioritario): tráfico de la dirección IP origen 11.0.0.10
2. •Prioridad 2 (prioridad intermedia): tráfico de la dirección IP origen 11.0.0.20
3. Prioridad 3 (menos prioritario): no lo vamos a definir.

Edito el script tc-egress-prio.sh.

Ejecuto el script.
● Inicia una captura de tráfico en la interfaz eth1 de r1.

● Arranca 2 servidores para recibir los dos flujos de datos tal y como se hizo en el apartado
1.2.

● Arranca dos clientes y 2 servidores tal y como lo hiciste en el apartado 1.2.


Captura de servidores iperf.

● Interrumpe la captura aproximadamente 35 segundos después de que arrancaras iperf.

Interrumpo luego de transcurrido 35 seg.

A continuación analiza los resultados obtenidos:


1. Explica las estadísticas que muestran los servidores.
Ahora muestra en el informe un acho de banda casi similar ya que hay periodad en los flujos, y en
la variacion de retardo es mas alto para pc1→pc3 ya que tenemos configurado disciplina de cola tbf
y reduce el ancho de banda.
2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

A como se mira en la grafica, tbf le da prioridad al flujo de pc1 a pesar que es de menor cantidad
que trasmite pc1 y le da todo el ancho de banda a pc1 luego que termina de transmitir pc2 ocupa
todo el ancho de banda ya que la latencia es de prioridad mayor.
3.3. Hierarchical token Bucket (HTB)
Mantén la configuración del tráfico de entrada en r1 que has realizado en el apartado anterior
en el script tc-ingress.sh. Borra la disciplina de cola de salida configurada en la interfaz eth1 de
r1.

● Escribe un script en r1, tc-egress-htb.sh, para configurar en su interfaz eth1 una disciplina
HTB de salida con ancho de banda 1.2 Mbit. Reparte el ancho de banda de esta interfaz
de salida de la siguiente forma:
1. 700 kbit para el tráfico con origen en pc1, ceil 700kbit.
2. 500 kbit para el tráfico con origen en pc2, ceil 500kbit.

Creo el script tc-egress-htb.sh con nano tc-egress-htb.sh

Ejecuto el script con ./tc-egress-htb.sh.


● Inicia una captura de tráfico en la interfaz eth1 de r1.

● Arranca 2 servidores para recibir los dos flujos de datos tal y como se hizo en el apartado
1.2.
● Arranca dos clientes y 2 servidores tal y como lo hiciste en el apartado 1.2.
Arranco los clientes iperf en pc1 y pc2.

Captura de los servidores iperf pc3 y pc4.


● Interrumpe la captura aproximadamente 35 segundos después de que arrancaras iperf.

A continuación analiza los resultados obtenidos:

1. Explica las estadísticas que muestran los servidores.


En los informe de los servidores muestra el ancho de banda asignado para el flujo de pc1 y pc2, pero
en la variacion de flujos es mas para pc2→pc4 ya que se le redujo mas el ancho de banda que a el
flujo de pc1→pc3, y como esta reducido el ancho de banda para cada prioridad si hay flujos
mayores del tamaño del ancho de banda estos los descarta la displina de htb y hubieran perdidas de
paquetes.

2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

En la grafica refleja lo 700 kbit para pc1→pc3 y 500kbit pc2→pc4, la configuracion htb es mas
rigida y mas confiable para asignar determinado ancho de banda y como el flujo es mayor del ancho
de banda hay cortes porque hay paquetes descartados en cola.
Modifica la configuración de ceil en cada uno de los flujos para que puedan utilizar
1.2Mbit.
Realiza la misma prueba que antes y analiza los resultados obtenidos:

Edito el archivo ceil con maxico caudal alcanzable de 1.2Mbit para los dos flujos.

Ejecuto iperf en modo servidor en pc3 y pc4.

Ejecuto una captura de trafico r1.eth1 .


A continuacion utilizo pc1 y pc2 en modo cliente iperf.

1. Explica las estadísticas que muestran los servidores.


En las estadisticas muestra que la comparativa de retraso de los flujos ahora es minima porque el
caudal maximo(ceil) se incremento a 1.2Mbit por eso muestra un poco mas en el ancho de banda.
2. Carga la captura en wireshark y muestra cada uno de los flujos de forma gráfica. Explica el
ancho de banda medido para cada uno de los flujos.

Los flujos a como se ve en la grafica estan algo mas estables no tienen curvas por que el caudal
máximo se incremento pero ahora cuando se corta el flujo de pc1→pc3 el flujo de pc2→pc4 alcanza
todo el caudal máximo que es 1.2Mbit.

También podría gustarte