como ponerle MARK al trafico saliente de proxy squid con iptables para usarse con cbq.

Forums: 

estoy usando cbq para establecer ancho de banda a ciertos ip, con lo que es descarga va muy bien lo que establezco en cbq lo establece al ip
uso iptables en la tabla mangle para marcar los paquetes de salida y entrada todo en orden mi problema radica al usar squid, establezco una regla para cada ip en la tabla OUTPUT y la descarga va excelente con squid el problema viene al hacer upload usando squid, no doy con la regla adecuada para marcar el paquete ya que quien sube el archivo de prueba es el proxy no mi pc y no se como establecer la marca a ese paquete ya tengo varios dias de estar analizando mis parametros pero me doy por vencido necesito un apoyo ya mi cabeza se bloqueo.

estas son mis reglas que van perfectas.

esto es para cualquier paquete que salga a travez del nat
tanto lo que entra como lo que sale. funciona perfecto seguramente puedo mejorarlo con sus ideas.

-A FORWARD -d 192.168.30.12 -p tcp -m tcp --sport 1:65535 -j MARK --set-mark 0x62
-A FORWARD -d 192.168.30.12 -p udp -m udp --sport 1:65535 -j MARK --set-mark 0x62
-A FORWARD -s 192.168.30.12 -p tcp -m tcp --dport 1:65535 -j MARK --set-mark 0x62
-A FORWARD -s 192.168.30.12 -p udp -m udp --dport 1:65535 -j MARK --set-mark 0x62

aqui va la regla para todo lo que me entrega el proxy para mis usuarios que usan el proxy squid
funciona perfecto

-A OUTPUT -d 192.168.30.12 -p tcp -m tcp --sport 3128 -j MARK --set-mark 0x62

cuando no uso el proxy la salida y entrada van de la mano le especifique a ese ip 512kb de bajada (LO QUE ME ENTREGA EL SERVER viendolo del lado que linux es mi router en otras palabras linux me sube a 512kb a mi ip 192.168.30.12 todo va excelente).
cuando subo un paquete usando mi pc sale a 128kb va perfecto las reglas forward estan bien.

cuando uso el proxy transparante o uso el proxy especificandolo en el navegador, ya que en las reglas de iptables yo programe mi ip para que pueda brincar el prerouting hacia squid entonces puedo usarlo programando el navegador, ahi viene mi problema la regla OUTPUT me trabaja bien para las descargas hacia mi ip de mi estacion, pero por mucho que le he dado vueltas no logro dar con la regla de subida para squid, necesito sugerencias o alguien que haya tenido este reto y lo resolviera agradeceria una pista o algun ejemplo yo me encargo de analizarlo, lo unico que quisiera es verlo trabajando para poder jugar con su configuracion y entenderle. si me salgo de squid va excelente pero cuando hago la prueba con squid ahi se va fuera de control las subidas,
pense que era en las INPUT pero si veo bien tambien trabajan los OUTPUT ya que yo subo hacia mi servidor luego el servidor sube hacia la ip publica no se como hacerlas trabajar juntas o talvez sea mas sencillo que lo que digo pero no me lo puedo dibujar mas no encuentro la regla ideal para este problema.
cualquier sugerencia es bien venida.

las pruebas las realizo en www.speedtest.net

No more

Imagen de damage

No more tears

####################
# VARIABLES ########
####################
# COMANDOS
IPTABLES="/sbin/iptables -t mangle"
TC=/sbin/tc
CBQ=/sbin/cbq

# INTERFACES
WAN="0/0"
DEVWAN="eth0"
DEVLAN="eth1"

# VELOCIDAD DE INTERFACES DE RED
ETH0_BW="100Mbit"
ETH1_BW="100Mbit"

# PUERTOS
PROXY_PORT="8080"
SMTP_PORT="25"
POP3_PORT="110"

####################
# PRIORIDADES ######
####################
NORMAL="5"
ALTA="2"
BAJA="8"

##########
# INICIO #
##########
$CBQ stop
$IPTABLES -F
$IPTABLES -X

$TC qdisc add dev $DEVWAN root handle 1: cbq bandwidth $ETH0_BW avpkt 1000 cell 8
$TC qdisc add dev $DEVLAN root handle 2: cbq bandwidth $ETH1_BW avpkt 1000 cell 8

####################
# CLIENTES #########
####################
####################
# PRIORIDADES ######
####################
NORMAL="5"
ALTA="2"
BAJA="8"

##########
# INICIO #
##########
$CBQ stop
$IPTABLES -F
$IPTABLES -X

$TC qdisc add dev $DEVWAN root handle 1: cbq bandwidth $ETH0_BW avpkt 1000 cell 8
$TC qdisc add dev $DEVLAN root handle 2: cbq bandwidth $ETH1_BW avpkt 1000 cell 8

####################
# CLIENTES #########
####################

###==> BW 1 INCLUIR IPS o SUBREDES QUE COMPARTIRAN UN MISMO ANCHO DE BANDA

BWLAN1="56Kbit"
NETWORKS_BW1="198.200.100.129"
for NET in $NETWORKS_BW1; do
$IPTABLES -A PREROUTING -s $NET -d $WAN -i $DEVLAN -j MARK --set-mark 1
$IPTABLES -A FORWARD -s $WAN -d $NET -i $DEVWAN -o $DEVLAN -j MARK --set-mark 2
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $PROXY_PORT -o $DEVLAN -j MARK --set-mark 2
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $SMTP_PORT -o $DEVLAN -j MARK --set-mark 2
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $POP3_PORT -o $DEVLAN -j MARK --set-mark 2
done

$TC class add dev $DEVWAN parent 1:0 classid 1:1 est 1sec 2sec cbq bandwidth $ETH0_BW rate $BWLAN1 allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC class add dev $DEVLAN parent 2:0 classid 2:1 est 1sec 2sec cbq bandwidth $ETH1_BW rate $BWLAN1 allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC filter add dev $DEVWAN protocol ip handle 1 fw classid 1:1
$TC filter add dev $DEVLAN protocol ip handle 2 fw classid 2:1

###==> BW 2 INCLUIR IPS o SUBREDES QUE COMPARTIRAN UN MISMO ANCHO DE BANDA

BWLAN2="198Kbit"
NETWORKS_BW2="201.218.40.152"
for NET in $NETWORKS_BW2; do
$IPTABLES -A PREROUTING -s $NET -d $WAN -i $DEVLAN -j MARK --set-mark 3
$IPTABLES -A FORWARD -s $WAN -d $NET -i $DEVWAN -o $DEVLAN -j MARK --set-mark 4
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $PROXY_PORT -o $DEVLAN -j MARK --set-mark 4
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $SMTP_PORT -o $DEVLAN -j MARK --set-mark 4
$IPTABLES -A OUTPUT -d $NET -p tcp --sport $POP3_PORT -o $DEVLAN -j MARK --set-mark 4
done

$TC class add dev $DEVWAN parent 1:0 classid 1:2 est 1sec 2sec cbq bandwidth $ETH0_BW rate $BWLAN2 allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC class add dev $DEVLAN parent 2:0 classid 2:2 est 1sec 2sec cbq bandwidth $ETH1_BW rate $BWLAN2 allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC filter add dev $DEVWAN protocol ip handle 3 fw classid 1:2
$TC filter add dev $DEVLAN protocol ip handle 4 fw classid 2:2

Con eso controlas todo, subida y descargas.
Este script me lo dio Raza hace fuuuuu

Keep The Fire Burning.....
Stryper 1988

Que raro juandarcy, ya que

Imagen de damage

Que raro juandarcy, ya que la linea del preouting es la que se encarga de controlar la subida, te comento que este script yo lo tengo actualmente en un server que tiene casi 200 clientes conectados en el y ni unproblema se me ah presentado, mira tus reglas del firewall por si las moscas.

Keep The Fire Burning.....
Stryper 1988

uh

Ese problema se debe al redireccionamiento del squid cuando trabaja en modo transparente

yo no encontre la soluccion asi ke desahabilite los proxy y lo monte en otro pc por ahi en squid explikan algo de como hacerlo

si man porque ya le di vueltas

Imagen de juandarcy2000

con el htb-gen que puso damage esta bueno me gusta por la funcion de garantizar el ancho de banda eso la da mil aplicaciones mas para cuando en una red tienen equipos de VoIp para garantizarles ancho de banda aun cuando topen la red, pero relacionado a squid que va con htb-gen con cbq siempre sale veloz, damage seria interesante que probaras bajar el ancho de banda a 30 kb de subida con squid a ver si va ya que sin el proxy salen a como se programo a su velocidad subida y bajada pero con el proxy solo bajada sirve la subida topa el ancho de banda de subida, aun sigo buscando como markar los pquetes salientes al usar el squid. ahi les comento si encuentro algo.

TE comento que si lo he

Imagen de damage

TE comento que si lo he realizado es mas a muchas clientes pequeños les doy 64K de bajada y 32 de subida y segementa tanto el CBQ como el HTB en eso no hay problema, mira bien tus reglas de mangle y nat, yo tengo de nat solo el redireccionamiento al 8080 y enmascaramiento, osea lo común, si recuerdo alguna vez que la subida no controlaba en el htb-gen pero eso lo solucione jugando con las reglas del mangle en /usr/bin/htb-gen, prueba adicionando una linea de POSTROUTING a la subida.

Keep The Fire Burning.....
Stryper 1988

Solucionado mi problema, para

Imagen de nino1511

Solucionado mi problema, para los que tenian o tienen el mismo inconveniente con cbq que no limita la subida aquí va.

#esto es lo normal que siempre va
$IPTABLES -A PREROUTING -s 192.168.0.10 -d $WAN -i $DEVLAN -j MARK --set-mark 2319
$IPTABLES -A FORWARD -s $WAN -d 192.168.0.10 -i $DEVWAN -o $DEVLAN -j MARK --set-mark 2320
$IPTABLES -A OUTPUT -d 192.168.0.10 -p tcp --sport $PROXY_PORT -o $DEVLAN -j MARK --set-mark 2320

#AHORA EL PROBLEMA ESTA EN LA SALIDA EL OUTPUT, Y TAMBIEN EL FORWARD CUANDO SE TIENE POR #EJEMPLO UNA CAMARA IP CON IP PUBLICA LA SUBIDA SE TE TREPA. AGREGAR ESTO:
$IPTABLES -A FORWARD -s 192.168.0.10 -d $IPPUBLICA -p tcp -j MARK --set-mark 2320
$IPTABLES -A OUTPUT -s 192.168.0.10 -d $IPPUBLICA -p tcp -j MARK --set-mark 2320
# PARA LO DEL SQUID
$IPTABLES -A FORWARD -s 192.168.0.10 -d $WAN -p tcp -j MARK --set-mark 2320
$IPTABLES -A OUTPUT -s 192.168.0.10 -d $WAN -p tcp -j MARK --set-mark 2320

$TC class add dev $DEVWAN parent 1:0 classid 1:401 est 1sec 2sec cbq bandwidth $ETH0_BW rate 64Kbit allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC class add dev $DEVLAN parent 2:0 classid 2:401 est 1sec 2sec cbq bandwidth $ETH1_BW rate 64kbit allot 1514 cell 8 weight 1 prio $NORMAL maxburst 20 avpkt 1000 bounded
$TC filter add dev $DEVWAN protocol ip handle 2319 fw classid 1:401
$TC filter add dev $DEVLAN protocol ip handle 2320 fw classid 2:401

La solución esta en que no debes especificar el proxy_port o --sport no especificarlo ahí esta la falla.

Saludos espero que se solucione sus problemas si es que lo tienen yo lo solucione de coincidencia.

Vamos Ecuador, si se puede

Páginas