aMule Forum

Spanish => aMule Ayuda => Topic started by: kolom on December 11, 2005, 05:01:22 AM

Title: problemas con el iproute
Post by: kolom on December 11, 2005, 05:01:22 AM
Hola, soy un feliz usuario de amule, y lo primero de todo es felicitaros a todos los que estais trabajando en este magnifico programa :)

Pero me esta pasando algo que no entiendo, vamos a ver:
El otro dia se me ocurrio que podria usar el traffic control del iproute para administrar el ancho de banda de mi adsl. Quien no sepa lo que es, puede visitar esta web para enterarse:
http://linux-net.osdl.org/index.php/Iproute2

en pocas palabras, es un paquete con los comandos ip y tc que son los herederos de los tipicos ifconfig, route y tal, que permiten hacer virguerias como lo del traffic control.

Con el traffic control puedes establecer prioridades en el trafico que tu maquina transmite, y por ejemplo puedes decir que el trafico del amule es el menos prioritario, y configurar este con el maximo de subida, de este modo tu podras navegar y usar internet, i ni te enteraras de que el amule esta encendido, él siempre usara el ancho de banda que a ti te sobre. Genial, no? (me estoy refiriendo solo al trafico de subida, ya que el de bajada no lo puedes controlar)

A continuacion voy a poner aqui el xiringuito que tengo montado en casa:

|-router---internet
|-server
|-pc1
|-pc2
|-pc3

una simple LAN con 3 pcs, un servidor corriendo el amule dia y noche, y un router cutre de telefonica (40kBps/128kBps).
El server és el gateway de los pcs con lo qual todo el trafico que generamos passa por el server, y este al router, para poder asi aplicar las politicas de control de trafico.

el server tiene la siguiente politica de control de trafico:

tc qdisc del dev eth0 root
ADSL=35
LAN=125000
tc qdisc add dev eth0 root handle 1: htb default 2
  # lan
  tc class add dev eth0 parent 1: classid 1:1 htb rate $(($LAN))kbps ceil $(($LAN))kbps
  # adsl
  tc class add dev eth0 parent 1: classid 1:2 htb rate $(($ADSL))kbps ceil $(($ADSL))kbps
  tc qdisc add dev eth0 parent 1:2 handle 10: prio
    # pcs/dns 10:1
    # apache/ssh 10:2
    # amule  10:3


# lan
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src 192.168.0.0/24 match ip dst 192.168.0.0/24 f
lowid 1:1

# pcs/dns
tc filter add dev eth0 protocol ip parent 10: prio 4 u32 match ip src 192.168.0.0/24 flowid 10:1
tc filter add dev eth0 protocol ip parent 10: prio 2 u32 match ip dst 80.58.0.33 flowid 10:1
tc filter add dev eth0 protocol ip parent 10: prio 2 u32 match ip dst 80.58.32.97 flowid 10:1

# apache/ssh
tc filter add dev eth0 protocol ip parent 10: prio 2 u32 match ip sport 22 0xffff flowid 10:2
tc filter add dev eth0 protocol ip parent 10: prio 2 u32 match ip sport 80 0xffff flowid 10:2

# amule
tc filter add dev eth0 protocol ip parent 10: prio 3 u32 match ip src 192.168.0.2 flowid 10:3


bueno, voy a explicar un poco esto. Lo primero que hace es dividir el enlace en 2, separando lo que es trafico de LAN (ilimitado), y lo que es trafico a INTERNET (limitando este a un poco menos del maximo, 35, de este modo el router siempre tendra el buffer vacio y no tendre retardos). Y entonces, en el trafico a internet, establezco 3 prioridades.

1. Trafico generado por los PCs, mas las dns querys del server (pq tb es un nameserver)
2. Trafico generado por el apache y ssh del server hacia internet
3. El resto (por tanto trafico del amule)

Todo parece funcionar correctamente, pero me pasa algo muy curioso, y es que parece que igualmente estoy saturando el router. Es algo que no me explico, incluso limitando el ancho de banda de subida a muy poco (1kBps) y el amule configurado para subir digamos 50kBps, compruevo lo que estoy subiendo en el server con el iptraf, y en la admisistracion remota del router, y en ambos se ve que realmente solo estoy subiendo 1k, pero aun asi el router esta saturado!!
Para compovar que lo tengo saturado lo que hago es desde qualquier pc, pongo el gateway hacia el router directamente, y noto como cada vez cuesta mas establecer una conexion (mi maquina envia el SYN pero no recibe el ACK, algun paquete se pierde por el camino)

He provado de repetir el experimento sin usar el amule subiendo algun archivo en un servidor, pero no me pasa, por mas que intento no consigo saturar el router.

Sabe alguien lo que esta pasando aqui? que es lo que se me esta pasando por alto? llevo varios intentos para solucionar esto, pero no ecuentro la solucion.
Title: Re: problemas con el iproute
Post by: Jacobo221 on December 11, 2005, 07:19:44 AM
aMule es un clietne/servidor p2p, quiere eso decir que establece conexiones con todos los otros clientes p2p con los que se cruza. quizas no sube ni baja datos, pero los paquetes de control van como locos. SYNs, ACKs y SYN/ACKs a tutiplen. eso es segurametne lo que esta saturando tu router. limitas el trafico, pero no los paquetes de control.

no puedo ayudarte mas porque no teno mucha idea del funcoinamento de las redes (en genrel, no la tuya, sino de la redes en genreal) y emnus aun de iproute :(
Title: Re: problemas con el iproute
Post by: kolom on December 11, 2005, 03:03:13 PM
Si, esto lo pense al principio, pero en realidad al calcular el ancho de banda que estoy consumiendo ya estoy contando este tipo de packetes (SYN, ACK), ya que la herramienta iptraf muestra el ratio del trafico incluyendo las cabezeras TCP, IP.
En fin, algun dia encontrare lo que esta pasando, no hay nadie mas tozudo que yo, y hasta que no lo encuentre no voy a parar de buscar ;)
Title: Re: problemas con el iproute
Post by: Jacobo221 on December 11, 2005, 03:13:12 PM
asi se habla ! :)
y cuando lo sepas, pasa por awui para decirlo, para la proxima ;)