PDF de programación - Enrutamiento avanzado y control de tráfico en Linux

Imágen de pdf Enrutamiento avanzado y control de tráfico en Linux

Enrutamiento avanzado y control de tráfico en Linuxgráfica de visualizaciones

Actualizado el 16 de Junio del 2017 (Publicado el 15 de Abril del 2017)
651 visualizaciones desde el 15 de Abril del 2017
478,2 KB
118 paginas
Creado hace 17a (05/03/2003)
Enrutamiento avanzado y control de
tráfico en Linux
Bert Hubert

Netherlabs BV

<bert.hubert@netherlabs.nl>

Gregory Maxwell

<greg@linuxpower.cx>


Remco van Mook

<remco@virtu.nl>


Martijn van Oosterhout

<kleptog@cupid.suninternet.com>


Paul B Schroeder

<paulsch@us.ibm.com>


Jasper Spaans

<jasper@spaans.ds9a.nl>



Ricardo J. Cárdenes Medina

Una introducción bastante práctica a iproute2, el control de tráfico y un poco de
netfilter.



Tabla de contenidos


1. Dedicatoria
2. Introducción

3. Introducción a iproute2

2.1. Descargo de responsabilidad y licencia
2.2. Conocimientos previos
2.3. Qué puede hacer Linux por usted
2.4. Notas de mantenimiento
2.5. Acceso, CVS y envío de actualizaciones
2.6. Lista de correo
2.7. Disposición de este documento

3.1. ¿Por qué iproute2?
3.2. revisión de iproute2
3.3. Prerequisitos
3.4. Explorar la configuración actual
3.4.1. ip nos muestra nuestros enlaces
3.4.2. ip nos muestra nuestras direcciones IP
3.4.3. ip nos muestra nuestras rutas
3.5. ARP

6. Túneles IPv6 con Cisco o la 6bone

6.1. Túneles IPv6

7. IPsec: IP segura sobre Internet
8. Enrutado multicast
9. Disciplinas de colas (qdiscs) para gestión del ancho de banda

9.1. Las colas y disciplinas de cola explicadas
9.2. Disciplinas de cola simples, sin clases
9.2.1. pfifo_fast
9.2.2. Token Bucket Filter
9.2.3. Stochastic Fairness Queueing
9.3. Consejos sobre en qué momento usar qué cola
9.4. Terminología
9.5. Disciplinas de cola con clases
9.5.1. El flujo dentro de las qdisc con clases y sus clases
9.5.2. La familia qdisc: raíces, controladores, hermanos y padres
9.5.3. La qdisc PRIO
9.5.4. La famosa qdisc CBQ

4. Reglas (base de datos de normas de rutado)

4.1. Normas de encaminamiento por origen sencillas
4.2. Encaminamiento con varios enlaces de salida/proveedores
4.2.1. Acceso dividido
4.2.2. Equilibrio de carga

5. GRE y otros túneles

5.1. Breve inciso sobre los túneles:
5.2. Túneles IP sobre IP
5.3. Túneles GRE
5.3.1. Túneles IPv4
5.3.2. Túneles IPv6
5.4. Túneles en espacio de usuario

9.5.5. Hierarchical Token Bucket
9.6. Clasificar paquetes con filtros
9.6.1. Algunos ejemplos sencillos de filtrado
9.6.2. Todas las órdenes de filtrado que necesitará normalmente
9.7. El dispositivo intermedio de encolado (IMQ)
9.7.1. Configuración de ejemplo

10. Compartir la carga sobre varias interfaces

10.1. Problemas
10.2. Otras posibilidades

11. Netfilter e iproute (marcado de paquetes)
12. Filtros avanzados para (re)clasificar paquetes

12.1. El clasificador u32
12.1.1. Selector U32
12.1.2. Selectores generales
12.1.3. Selectores específicos
12.2. El clasificador route
12.3. Filtros de control (Policing filters)
12.3.1. Formas de control
12.3.2. Acciones de sobrelímite
12.3.3. Ejemplos
12.4. Filtros de hash para filtrado masivo muy rápido

13. Parámetros de red del núcleo

13.1. Reverse Path Filtering
13.2. Configuraciones oscuras
13.2.1. ipv4 genérica
13.2.2. Configuración por dispositivo
13.2.3. Normas de vecinos (Neighbor policy)
13.2.4. Configuración de encaminamiento

14. Disciplinas de cola avanzadas y poco conocidas

14.1. bfifo/pfifo
14.1.1. Parámetros y uso
14.2. Algoritmo Clark-Shenker-Zhang (CSZ)
14.3. DSMARK
14.3.1. Introducción
14.3.2. ¿Con qué se relaciona Dsmark?
14.3.3. Principios de los Servicios Diferenciados
14.3.4. Trabajar con Dsmark
14.3.5. Cómo trabaja SCH_DSMARK.
14.3.6. Filtro TC_INDEX
14.4. Qdisc de entrada (Ingress)
14.4.1. Parámetros y uso
14.5. Random Early Detection (RED)
14.6. Generic Random Early Detection
14.7. Emulación VC/ATM
14.8. Weighted Round Robin (WRR)

15. Recetario

15.1. Llevar varios sitios con diferentes SLA
15.2. Proteger la máquina frente a inundaciones SYN
15.3. Limitar la tasa de ICMP para prevenir dDoS
15.4. Priorizado de tráfico interactivo

15.5. Caché transparente de web usando netfilter, iproute2, ipchains y squid
15.5.1. Diagrama de flujo del tráfico tras la implementación
15.6. Sortear los problemas de Path MTU Discovery con configuraciones de
MTU por ruta
15.6.1. Solución
15.7. Sortear los problemas de Path MTU Discovery con MSS Clamping (para
usuarios de ADSL, cable, PPPoE y PPtP)
15.8. El acondicionador de tráfico definitivo: baja latencia, envíos y descargas
rápidos
15.8.1. Por qué no funciona bien por defecto
15.8.2. El script (CBQ)
15.8.3. El script (HTB)
15.9. Limitar la tasa a una única máquina o máscara de red

16. Hacer bridges y pseudo-bridges con Proxy ARP

16.1. Estado del bridging e iptables
16.2. Bridging y ajustes (shaping)
16.3. Pseudo-bridges con Proxy-ARP
16.3.1. ARP y Proxy-ARP
16.3.2. Implementándolo

17. Encaminamiento dinámico - OSPF y BGP
18. Otras posibilidades
19. Further reading
20. Acknowledgements




Capítulo 1. Dedicatoria

Este documento está dedicado a un montón de personas, y es mi intención devolverles
algo. Una lista de unos pocos:

• Rusty Russell
• Alexey N. Kuznetsov
• Los buenos chicos de Google
• El personal de Casema Internet


Capítulo 2. Introducción

Bienvenido, gentil lector.

Con este documento espero iluminarte en cómo hacer más con el enrutamiento de Linux
2.2/2.4. Aunque la mayoría de los usuarios lo desconozca, están usando herramientas
que permiten hacer cosas espectaculares. Ordenes tales como route e ifconfig en
realidad son envolturas realmente delgadas alrededor de la poderosa infraestructura de
iproute2.

Espero que este Cómo sea tan legible como los de Rusty Russell, famoso (entre otras
cosas) por netfilter.

Siempre puede localizarnos escribiendo al equipo del HOWTO (hágalo en inglés). Sin
embargo, le pedimos que considere enviar el mensaje a la lista de correo (vea la sección
correspondiente) si tiene dudas que no estén relacionadas directamente con este
documento. No somos un servicio de atención gratuita, aunque a menudo respondamos
a las preguntas que nos hacen en la lista.

Antes de que se pierda en este Cómo, si lo único que desea es hacer un control de
tráfico sencillo, sáltese todo lo demás y vaya directo al capítulo Other possibilities, y lea
sobre CBQ.init.



2.1. Descargo de responsabilidad y
licencia

Este documento se distribuye con la esperanza de que sea útil, pero SIN NINGUN TIPO
DE GARANTIA; incluso sin las garantías implícitas MERCANTILES o DE
ADECUACION PARA UN PROPOSITO PARTICULAR.

En breve, si su backbone STM-64 se desconfigura y empieza a repartir pornografía a
sus clientes más estimados, no es culpa nuestra. Lo sentimos.

Copyright (c) 2002 by bert hubert, Gregory Maxwell, Martijn van Oosterhout, Remco
van Mook, Paul B. Schroeder and others. This material may be distributed only subject
to the terms and conditions set forth in the Open Publication License, v1.0 or later (the
latest version is presently available at http://www.opencontent.org/openpub/).

Copie y distribuya (vendiéndolo o regalándolo) este documento en cualquier formato.
Le pedimos que envíe correcciones y comentarios al mantenedor del documento.

También le pedimos que si publica este Cómo en papel, envíe algunas muetras a los
autores para "propósitos de revisión" :-)




2.2. Conocimientos previos

Tal como implica el título, este es un Cómo "Avanzado". Aunque no es ciencia espacial
de ninguna manera, se asumen ciertos conocimientos previos.

Aquí hay algunas referencias que pueden ayudarle a aprender algo más:

El Cómo de conceptos de redes de Rusty Russell. También dispone de una versión en
castellano.

Muy buena introducción, que explica lo que es una red, y cómo se conecta con
otras.

Redes en Linux Cómo (Previamente Net-3 Como)

Gran material, aunque un poco exhaustivo. Le enseña un montón de cosas que
ya deben estar configuradas si es capaz de conectar a Internet. Debería estar en
/usr/doc/HOWTO/NET3-4-HOWTO.txt pero también lo puede encontrar en línea
(y en castellano aquí).

2.3. Qué puede hacer Linux por usted

Una pequeña lista de cosas posibles:

• Mejorar el ancho de banda de ciertos computadores
• Mejorar el ancho de banda HACIA ciertos computadores
• Ayudarle a compartir su ancho de banda de forma justa
• Proteger su red ante ataques DoS
• Proteger a Internet de sus clientes
• Multiplexar varios servidores como uno solo, para equilibrio de carga o

disponibilidad mejorada

• Restringir el acceso a sus computadores
• Limitar el acceso de sus usuarios a otras máquinas
• Hacer enrutamiento basado en el id de los usarios (¡sí!), dirección MAC,
dirección IP de origen, puerto, tipo de servicio, hora del día o contenido

Actualmente, no mucha gente usa estas capacidades avanzadas. Esto sucede por varias
razones. Mientras que la documentación existente es exahustiva, no es muy práctica. El
control de tráfico está casi sin documentar.



2.4. Notas de mantenimiento

Hay varias cosas que habría que resaltar sobre este documento. Aunque que lo he
escrito en su mayoría, realmente no quería que fuese así. Creo mucho en el Open
Source, de manera que le animo a que me envíe sus impresiones, actualizaciones,
parches, etc. No dude en informarme de fallos de ortografía o errores por antigüedad.
(Nota: lo siguiente sólo tiene sentido en el documento original) Si mi inglés parece algo
acartonado, por favor, tenga en cuenta que no soy un hablante nativo. Siéntase libre de
enviarme sugerencias.

Si cree que está mejor cualificado para mantener una sección, o piensa que puede crear
y mantener nuevas secciones, sea bienvenido. El SGML de este Cómo está disponible
vía CVS, y me gustaría que trabajase más gente en él.

Como ayuda para esto, podrá encontrar varias notas FIXME. ¡Los parches siempre
vienen bien! Cuando se encuentre con un FIXME, debería saber que está en
  • Links de descarga
http://lwp-l.com/pdf2943

Comentarios de: Enrutamiento avanzado y control de tráfico en Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad