linux

 

Embed or link this publication

Popular Pages


p. 1

enrutamiento avanzado y control de tráfico en linux bert hubert netherlabs bv bert.hubert@netherlabs.nl thomas graf section author tgraf%suug.ch gregory maxwell autor de secciones remco van mook autor de secciones remco@virtu.nl martijn van oosterhout autor de secciones kleptog@cupid.suninternet.com paul b schroeder autor de secciones paulsch@us.ibm.com jasper spaans autor de secciones jasper@spaans.ds9a.nl pedro larroy autor de secciones piotr%member.fsf.org ricardo j cárdenes traductor al castellano ricardo%conysis.com

[close]

p. 2

enrutamiento avanzado y control de tráfico en linux por bert hubert thomas graf section author tgraf%suug.ch gregory maxwell autor de secciones remco van mook autor de secciones remco@virtu.nl martijn van oosterhout autor de secciones kleptog@cupid.suninternet.com paul b schroeder autor de secciones paulsch@us.ibm.com jasper spaans autor de secciones jasper@spaans.ds9a.nl pedro larroy autor de secciones piotr%member.fsf.org ricardo j cárdenes traductor al castellano ricardo%conysis.com una introducción bastante práctica a iproute2 el control de tráfico y un poco de netfilter historial de revisiones revisión $revision 1.44 $date 2003/12/25 23:21:27 edición en docbook revisión 1.44-es 2004/12/17 revisión de la traducción al castellano

[close]

p. 3

tabla de contenidos 1 dedicatoria 1 2 introducción 2 2.1 descargo de responsabilidad y licencia 2 2.2 conocimientos previos 2 2.3 qué puede hacer linux por usted 3 2.4 notas de mantenimiento 3 2.5 acceso cvs y envío de actualizaciones 4 2.6 lista de correo 4 2.7 disposición de este documento 5 3 introducción a iproute2 6 3.1 ¿por qué iproute2 6 3.2 revisión de iproute2 6 3.3 prerequisitos 6 3.4 explorar la configuración actual 7 3.4.1 ip nos muestra nuestros enlaces 7 3.4.2 ip nos muestra nuestras direcciones ip 7 3.4.3 ip nos muestra nuestras rutas 8 3.5 arp 9 4 reglas base de datos de normas de rutado 11 4.1 normas de encaminamiento por origen sencillas 11 4.2 encaminamiento con varios enlaces de salida/proveedores 12 4.2.1 acceso dividido 13 4.2.2 equilibrio de carga 14 5 gre y otros túneles 16 5.1 breve inciso sobre los túneles 16 5.2 túneles ip sobre ip 16 5.3 túneles gre 17 5.3.1 túneles ipv4 17 5.3.2 túneles ipv6 18 5.4 túneles en espacio de usuario 19 6 túneles ipv6 con cisco o la 6bone 20 6.1 túneles ipv6 20 7 ipsec ip segura sobre internet 24 7.1 introducción al intercambio manual de claves 24 7.2 intercambio automático de claves 28 7.2.1 teoría 29 7.2.2 ejemplo 29 7.2.3 uso de certificados x.509 para el intercambio automático de claves 32 7.3 túneles con ipsec 35 7.4 otro software ipsec 36 7.5 interoperación de ipsec con otros sistemas 37 7.5.1 windows 37 7.5.2 check point vpn-1 ng 37 iii

[close]

p. 4

8 enrutado multicast 39 9 disciplinas de colas qdiscs para gestión del ancho de banda 41 9.1 las colas y disciplinas de cola explicadas 41 9.2 disciplinas de cola simples sin clases 42 9.2.1 pfifo_fast 42 9.2.2 token bucket filter 44 9.2.3 stochastic fairness queueing 47 9.3 consejos sobre en qué momento usar qué cola 48 9.4 terminología 49 9.5 disciplinas de cola con clases 51 9.5.1 el flujo dentro de las qdisc con clases y sus clases 52 9.5.2 la familia qdisc raíces controladores hermanos y padres 52 9.5.3 la qdisc prio 53 9.5.4 la famosa qdisc cbq 56 9.5.5 hierarchical token bucket 63 9.6 clasificar paquetes con filtros 64 9.6.1 algunos ejemplos sencillos de filtrado 65 9.6.2 todas las órdenes de filtrado que necesitará normalmente 66 9.7 el dispositivo intermedio de encolado imq 67 9.7.1 configuración de ejemplo 67 10 compartir la carga sobre varias interfaces 70 10.1 problemas 71 10.2 otras posibilidades 71 11 netfilter e iproute marcado de paquetes 73 12 filtros avanzados para reclasificar paquetes 75 12.1 el clasificador u32 76 12.1.1 selector u32 76 12.1.2 selectores generales 77 12.1.3 selectores específicos 79 12.2 el clasificador route 79 12.3 filtros de control policing filters 81 12.3.1 formas de control 81 12.3.2 acciones de sobrelímite 82 12.3.3 ejemplos 82 12.4 filtros de hash para filtrado masivo muy rápido 83 12.5 filtrado de tráfico ipv6 85 12.5.1 ¿cómo es que no funcionan los filtros tc para ipv6 85 12.5.2 marcar paquetes ipv6 usando ip6tables 85 12.5.3 usar el selector u32 para filtrar paquetes ipv6 85 13 parámetros de red del núcleo 87 13.1 reverse path filtering 87 13.2 configuraciones oscuras 88 13.2.1 ipv4 genérica 88 13.2.2 configuración por dispositivo 93 13.2.3 normas de vecinos neighbor policy 94 13.2.4 configuración de encaminamiento 95 iv

[close]

p. 5

14 disciplinas de cola avanzadas y poco conocidas 97 14.1 bfifo/pfifo 97 14.1.1 parámetros y uso 97 14.2 algoritmo clark-shenker-zhang csz 97 14.3 dsmark 98 14.3.1 introducción 98 14.3.2 ¿con qué se relaciona dsmark 98 14.3.3 principios de los servicios diferenciados 98 14.3.4 trabajar con dsmark 99 14.3.5 cómo trabaja sch_dsmark 100 14.3.6 filtro tc_index 101 14.4 qdisc de entrada ingress 103 14.4.1 parámetros y uso 103 14.5 random early detection red 103 14.6 generic random early detection 104 14.7 emulación vc/atm 105 14.8 weighted round robin wrr 105 15 recetario 106 15.1 llevar varios sitios con diferentes sla1 106 15.2 proteger la máquina frente a inundaciones syn 107 15.3 limitar la tasa de icmp para prevenir ddos 108 15.4 priorizado de tráfico interactivo 109 15.5 caché transparente de web usando netfilter iproute2 ipchains y squid 110 15.5.1 diagrama de flujo del tráfico tras la implementación 114 15.6 sortear los problemas de path mtu discovery con configuraciones de mtu por ruta 114 15.6.1 solución 115 15.7 sortear los problemas de path mtu discovery con mss clamping para usuarios de adsl cable pppoe y pptp 116 15.8 el acondicionador de tráfico definitivo baja latencia envíos y descargas rápidos 117 15.8.1 por qué no funciona bien por defecto 117 15.8.2 el script cbq 119 15.8.3 el script htb 121 15.9 limitar la tasa a una única máquina o máscara de red 122 15.10 ejemplo de una solución de nat completo con qos 123 15.10.1 empecemos optimizando ese ancho de banda escaso 124 15.10.2 clasifición de paquetes 125 15.10.3 mejora de nuestra configuración 127 15.10.4 hacer todo lo anterior durante el arranque 127 16 hacer bridges y pseudo-bridges con proxy arp 129 16.1 estado del bridging e iptables 129 16.2 bridging y ajustes shaping 129 16.3 pseudo-bridges con proxy-arp 129 16.3.1 arp y proxy-arp 130 16.3.2 implementándolo 130 17 encaminamiento dinámico ospf y bgp 132 17.1 configurar ospf con zebra 132 17.1.1 prerequisitos 133 17.1.2 configuración de zebra 134 17.1.3 ejecutar zebra 135 17.2 configurar bgp4 con zebra 137 v

[close]

p. 6

17.2.1 mapa de red ejemplo 137 17.2.2 configuración ejemplo 137 17.2.3 comprobar la configuración 138 18 otras posibilidades 140 19 otras lecturas 143 20 reconocimientos 144 vi

[close]

p. 7

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 1

[close]

p. 8

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 mailto:howto@ds9a.nl 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 muestras 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 2

[close]

p. 9

capítulo 2 introducción 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 http netfilter.samba.org/unreliable-guides/networking-concepts-howto/index.html también dispone de una versión en castellano http www.insflug.org/comos/conceptos-de-redes-como/conceptos-de-redes-como.html 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 http www.linuxports.com/howto/networking y en castellano aquí http www.insflug.org/comos/redes-en-linux-como/redes-en-linux-como.html 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 3

[close]

p. 10

capítulo 2 introducción 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á entrando en territorio desconocido esto no quiere decir que no haya errores en otras partes pero tenga especial cuidado si ha comprobado que algo es válido por favor háganoslo saber para eliminar la nota de fixme sobre este cómo me voy a tomar una serie de libertades por ejemplo postulo una conexión a internet de 10mbit aunque sé muy bien que esto no es nada común 2.5 acceso cvs y envío de actualizaciones el lugar canónico de este cómo es éste http www.ds9a.nl/lartc ahora disponemos de acceso anónimo a cvs para todo el mundo esto es bueno por varias razones puede actualizar de forma sencilla a nuevas versiones de este cómo y enviar parches es fácil más aún permite a los autores trabajar en el fuente de forma independiente lo cual es bueno export cvsroot pserver:anon@outpost.ds9a.nl var/cvsroot cvs login cvs password [introduzca cvs sin comillas cvs co 2.4routing cvs server updating 2.4routing u 2.4routing/lartc.db si ha hecho cambios y quiere contribuir con ellos ejecute cvs -z3 diff -ubb y envíe el resultado a

[close]

p. 11

capítulo 2 introducción debería precisar que los autores no suelen responder preguntas que no se hagan a la lista nos gustaría que el archivo de la lista se convirtiera en algo así como una base de conocimiento si tiene una pregunta sírvase buscar antes en el archivo y sólo después envíela a la lista 2.7 disposición de este documento vamos a empezar a hacer cosas interesantes casi inmediatamente lo que también significa que inicialmente habrán partes no del todo explicadas o que no estén perfectas por favor lea superficialmente esas partes y asuma que todo se aclarará más adelante enrutar y filtrar son dos cosas distintas el filtrado está bastante bien documentado en los cómo de rusty disponibles aquí · rusty s remarkably unreliable guides http netfilter.samba.org/unreliable-guides vamos a centrarnos principalmente en las posibilidades de combinar netfilter e iproute2 5

[close]

p. 12

capítulo 3 introducción a iproute2 3.1 ¿por qué iproute2 la mayoría de las distribuciones de linux y la mayoría de los unix usan actualmente las venerables órdenes arp ifconfig y route aunque funcionan muestran cierto comportamiento inesperado apartir de linux 2.2 por ejemplo los túneles gre son parte integral del enrutado hoy día pero precisan herramientas completamente diferentes con iproute2 los túneles son una parte integral del juego de herramientas los núcleos linux 2.2 y superiores incluyen un subsistema de red completamente rediseñado este nuevo código de red proporciona a linux un rendimiento y características con poca competencia en el panorama general de los so en realiadd el nuevo código de enrutado filtrado y clasificación tiene más posibilidades que el que porporcionan muchos enrutadores y cortafuegos dedicados y productos de control de tráfico según se inventan nuevos conceptos de red la gente encuentra maneras de emplastarlos encima de la infraestructura existente en los so este continuo apilamiento de porquería ha llevado a código de red lleno de comportamientos extraños muy parecido a lo que sucede con los idiomas humanos en el pasado linux emuló la forma de sunos de gestionar muchas de estas cosas pero no era ideal esta nueva infraestructura hace posible expresar claramente características que antes estaban más allá del alcance de linux 3.2 revisión de iproute2 linux tiene un sistema sofisticado para proporcionar ancho de banda llamado traffic control este sistema soporta varios métodos de clasificación priorizado compartición y limitación tanto de tráfico entrante como saliente empezaremos con un pequeño «tour» por las posibilidades de iproute2 3.3 prerequisitos debería asegurarse de que tiene instaladas las herramientas de espacio de usuario este paquete se llama «iproute» tanto en redhat como en debian y en cualquier caso puede encontrarlo en ftp ftp.inr.ac.ru/ip-routing/iproute2-2.2.4-now-ss tar.gz también puede buscar aquí ftp ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz la última versión 6

[close]

p. 13

capítulo 3 introducción a iproute2 algunas partes de iproute precisan que active ciertas opciones del núcleo también debería saber que todas las versiones de redhat hasta la 6.2 incluida vienen con la mayoría de capacidades de control de tráfico en el núcleo de serie redhat 7.2 lo tiene todo de serie también debe asegurarse de que tiene soporte de netlink en caso de que escoja configurar su propio núcleo iproute2 lo necesita 3.4 explorar la configuración actual puede que le sorprenda ¡pero iproute2 ya está configurado las órdenes ifconfig y route actuales ya usan las llamadas a sistema avanzadas pero en su mayoría con configuraciones por defecto es decir aburridas la herramienta ip es central y le pediremos que nos muestre nuestras interfaces 3.4.1 ip nos muestra nuestros enlaces [ahu@home ahu ip link list 1 lo

[close]

p. 14

capítulo 3 introducción a iproute2 3.4.2 ip nos muestra nuestras direcciones ip [ahu@home ahu ip address show 1 lo

[close]

p. 15

capítulo 3 introducción a iproute2 bastante explícito las primeras 4 líneas indican explícitamente lo que quedó implícito con ip address show y la última línea nos dice que el resto del mundo lo podemos encontrar mediante 212.64.94.1 nuestra pasarela por defecto podemos saber que es una pasarela por la palabra «via» que nos dice que necesitamos enviar paquetes a 212.64.94.1 que ya se encargará del resto como referencia esto es lo que la vieja utilidad route nos muestra [ahu@home ahu route -n kernel ip routing table destination gateway iface 212.64.94.1 0.0.0.0 10.0.0.0 0.0.0.0 127.0.0.0 0.0.0.0 0.0.0.0 212.64.94.1 genmask 255.255.255.255 255.0.0.0 255.0.0.0 0.0.0.0 flags metric ref uh u u ug 0 0 0 0 0 0 0 0 use 0 0 0 0 ppp0 eth0 lo ppp0 3.5 arp arp es el address resolution protocol que se describe en el rfc 826 http www.faqs.org/rfcs/rfc826.html arp lo usa una máquina en red para averiguar la localización/dirección hardware de otra máquina en la misma red local las máquinas en internet se conocen generalmente por sus nombres que se corresponden a direcciones ip así es como una máquina en la red foo.com es capaz de comunicarse con otras máquinas que están en la red bar.net una dirección ip sin embargo no puede decirte la localización física de una máquina aquí es donde entra arp tomemos un ejemplo muy sencillo supongamos que tengo una red compuesta de varias máquinas dos de ellas que están en mi red son foo con dirección ip 10.0.0.1 y bar con dirección ip 10.0.0.2 ahora foo quiere hacer ping hacia bar para ver si está viva pero ¡vaya foo no tiene idea de dónde está bar de manera que cuando foo decide hacer ping hacia bar necesita realizar una consulta arp esta consulta arp es algo así como si foo gritase en la red «¡bar 10.0.0.2 ¿dónde estás?» como resultado de esto cada máquina de la red escuchará el grito de foo pero sólo bar 10.0.0.2 responderá bar enviará entonces una respuesta arp directamente a foo que viene a ser como si bar dijese «foo 10.0.0.1 estoy aquí en 00:60:94:e9:08:12» después de esta sencilla transacción que sirve para localizar a su amigo en la red foo es capaz de comunicarse con bar hasta que olvide su caché arp dónde está bar normalmente tras 15 minutos en unix ahora veamos cómo funciona puede ver la caché/tabla arp/neighbor actual de su máquina así [root@espa041 /home/src/iputils ip neigh show 9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable 9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable como puede ver mi máquina espa041 9.3.76.41 sabe dónde encontrar a espa042 9.3.76.42 y espagate 9.3.76.1 ahora añadamos otra máquina a la caché arp [root@espa041 /home/paulsch gnome-desktop ping -c 1 espa043 ping espa043.austin.ibm.com 9.3.76.43 from 9.3.76.41 5684 bytes of data 64 bytes from 9.3.76.43 icmp_seq=0 ttl=255 time=0.9 ms espa043.austin.ibm.com ping statistics 1 packets transmitted 1 packets received 0 packet loss 9

[close]

Comments

no comments yet

YOUBLISHER
About
What Others Say
Sitemap
Impressum

PUBLISHERS
Login
Signup
Tutorials
FAQ
Support

BUSINESS
Overview
Advertising
Support

DEVELOPERS
API

LEGAL
Report a Copyright Violation
Copyright FAQ
Terms of Use
Privacy Policy