Post by Alejandro VargasPost by Luciano RueteEn realidad no es una limitación de htb-gen sino del kernel de
Linux. La limitación viene dada porque las classful qdisc[1] solo
funcionan con tráfico saliente y no con tráfico entrante.
Bueno, eso es lógico ya que el tráfico entrante cuando entra es
porque ya llegó. Pero hay maneras de controlarlo con imq por
ejemplo.
Post by Luciano Ruete1)invertir a proposito los valores de iface_up e iface_down en la
conf de las ips que corresponden a servidores.
2)implementando "yet another parameter" en htb-gen-rates.conf que
determine si la ip es un server o un cliente(es decir si hace
falta invertir el sentido de los puertos o no).
Lo que yo veo en todos estos frontends para configurar tc, es que
al final se vuelven tan complicados como escribir las reglas de TC
a mano. Lo que está haciendo falta es algo más descriptivo. O sea,
algo donde planteés la situación que tenés y qué querés hacer y el
tengo un servidor web en tal dirección, un usuario con tal
prioridad en tal parte, y quiero que el bit torrent tenga tal ancho
de banda. Si hay que invertir cosas, porque la dirección del
servidor web corresponde con la del equipo que hace de router, que
sea el frontend el que se encargue de hacerlo.
Bueno, el primer paso entonces es enunciar descriptivamente los
requisitos.
Veamos los requisitos para un servidor hogareño como el mío, que
también es servidor de algunas cosas para afuera y de varias más para
adentro.
En lo que sigue, todo lo que está entre <> puede ser sustituido por
otros valores.
Reglas para el tráfico que no se enruta a través de esta máquina, sino
que es recibido o transmitido por esta máquina:
0) El tráfico originado en una máquina accesible a través de <eth0> y
terminado en esta máquina, así como el tráfico originado en esta
máquina y terminado en una máquina accesible a través de <eth0> no
está sujeto a restricciones ni priorización. (Vista desde la red
interna, esta máquina está tan libre de restricciones como entre sí
lo están las demás máquinas de la red interna).
1) El tráfico originado en una máquina accesible a través de <ppp0> y
terminado en esta máquina, así como el tráfico originado en esta
máquina y terminado en una máquina accesible a través de <ppp0> se
clasifica en 2 categorías: prioritario y chatarra.
- Es prioritario el tráfico de paquetes menores a 100 bytes
(No queremos molestar a TCP cagándole sus ACKs, etc.)
- Es prioritario el tráfico ICMP
(No queremos cagarle nada al protocolo de control de Internet)
- Es prioritario el tráfico UDP
(El DNS tiene que andar bien)
- Es prioritario el tráfico TCP perteneciente o relacionado a
conexiones originadas en esta máquina y dirigidas a los puertos
<ssh, ftp, http, smtp, pop3, pop3s, imaps, imaps, xmpp, xmpps>. Esta
lista es igual a la que se menciona en la regla 2.
(Además de router es ciudadano de primera de nuestra red)
- Es prioritario el tráfico TCP perteneciente o relacionado a
conexiones destinadas a esta máquina y dirigidas a los puertos
<ssh, ftp, http, smtp, pop3, imap, pop3s e imaps>. Esta lista
debe poder ser configurada diferentemente a la del punto anterior.
(Esta máquina es un servidor además de router)
- El resto del tráfico es chatarra
(Si no puedo nombrarlo, evidentemente no me importa y es chatarra,
hasta tanto no se termine de universalizar el uso de HTTP como capa
de transporte, y tengamos que irnos a capa 7 para distinguir lo
importante de la chatarra)
1.1) El tráfico chatarra tendrá garantizado un ancho de banda mínimo
de <10%> de la capacidad del enlace <ppp0>.
El tráfico prioritario tendrá disponible entre el <100%> y el <90%>
del ancho de banda del enlace <ppp0>, según lo que deje libre el
tráfico chatarra.
1.2.1) El ancho de banda chatarra originado o destinado a este host
comparte ancho de banda con el tráfico chatarra enrutado a través de
este host originado o destinado a un host accesible a través de
<eth0>.
1.2.2) El ancho de banda prioritario originado o destinado a este host
comparte ancho de banda con el tráfico prioritario enrutado a través
de este host originado o destinado a un host accesible a través de
<eth0>, pero a diferencia del tráfico chatarra, se debe garantizar
una distribución equitativa del ancho de banda para tráfico
prioritario entre este host y cada uno de los hosts accesibles a
través de <eth0> que estén activamente cursando tráfico prioritario.
Reglas para el tráfico que se enruta a través de esta máquina:
2) El tráfico originado en una máquina accesible a través de <ppp0> y
terminado en una máquina accesible a través de <eth0>, así como el
tráfico originado en una máquina accesible a través de <eth0> y
terminado en una máquina accesible a través de <ppp0> se clasifica en
2 categorías: prioritario y chatarra.
- Es prioritario el tráfico de paquetes menores a 100 bytes
(No queremos molestar a TCP cagándole sus ACKs, etc.)
- Es prioritario el tráfico ICMP
(No queremos cagarle nada al protocolo de control de Internet)
- Es prioritario el tráfico UDP
(Los jueguitos tienen que andar bien, así como el DNS)
- Es prioritario el tráfico TCP perteneciente o relacionado a
conexiones dirigidas a los puertos <ssh, ftp, http, smtp, pop3,
pop3s, imap, imaps, xmpp y xmpps>.
- El resto del tráfico es chatarra.
Ejemplos de los efectos que esas reglas se supone que causan:
- Si dejo bittorrent corriendo en el servidor/router:
- no repercute negativamente en la experiencia de usuario al usar
la web, el mail, la mensajería instantánea, etc. desde la red
interna.
- un aptitude upgrade en el servidor baja a velocidad decente.
- puedo usar mi webmail y mostrar mis fotos a través de mi servidor
web estando en el trabajo o en la casa de un familiar o amigo.
- puedo hacer ssh a mi máquina sin que la latencia sea inmunda.
- El MTA de mi servidor no se pone pastoso para enviar o recibir
mensajes por estar alguien usando redes p2p en mi red o en mi
servidor.
- Si me pongo a bajar cosas por HTTP o FTP en mi máquina, marc sólo me
putea por quitarle la mitad del ancho de banda a su máquina, y no
más.
- Si me pongo a bajar descontroladamente en el servidor y en 2 de las
máquinas de la red interna, cada una de esas 3 puede gozar de
aproximadamente 1/3 del ancho de banda del enlace.
- Si pongo una cuarta máquina máquina a bajar, se reacomoda todo y
las cuatro disfrutan de 1/4 del ancho de banda del enlace a
Internet.
- Si viene un amigo y enchufa su notebook y se pone también a
bajar a lo, recibe 1/5 del ancho de banda del enlace, y la
restricción no se puede eludir colocándose él una dirección IP
diferente de la que le asignó mi servidor DHCP.
Quién es el valiente que responde con las reglas que implementan ese
comportamiento?
(generadas a mano o con htb-gen)
--
Herr Groucho
ID Jabber: ***@lugmen.org.ar
Señal distintiva: LU5MJR - 144,550 MHz FM.
Clave pública GPG: hkp://pks.lugmen.org.ar
Fingerprint GPG: B7BD 0FC7 D9A2 66F3 4EFC 45EE 7DE2 3932 597B 6354