Forums:
Hola Amigos! Creo este tema para poder encontrarle definitivamente una solucion al prolbema que tenemos mucho de nosotros :) , mas especificamente con la segmentacion de subida con HTB-GEN.
Pongo algunos datos para que puedan ayudarnos:
En mi caso utilizo:
SQUID 2.6 de modo transparente por el puerto 8080.
HTB-GEN 8
Shorewall 4
Si en Shorewall cologo la siguiente regla en "rules":
REDIRECT loc 8080 tcp 80
HTB-GEN no segmenta la velocidad de subida (si lo hace con la de bajada).
Si yo saco esta regla dejando sin funcionamiento a SQUID, HTB-GEN segmenta correctamente tanto la velocidad de subida como de bajada.
Lo mas facil seria dejar de utilizar SQUID como Proxy o bien utilizarlo pero no de modo transparente. Pero la cuestion es que necesito un Servidor Proxy y que sea transparente y no logro dar con la solcion para que todo funcione bien.
Bueno espero que sigan aportando ideas y podamos llegar a la solucion.
umm se me hace q se ha
umm se me hace q se ha hablado bastante del tema en el como de juandarcy, me parece q death te dio la solucion si mal nmo recuerdo, tenias q agregar unas lineas para controlar la subida el el arcivo de configuracion!! yo lo tengo funcionando en un centos con squid+iptables y funciona de maravilla para 140 users...
Ya lo dige en el COMO, hace
Ya lo dige en el COMO, hace meses atras, todo es jugando con las reglas de iptables dentro del script de htb-gen, eso es todo. Saludos
Hola! Muchisimas gracias damage,
Hola! Muchisimas gracias damage, estube jugando un poco y no hay caso no doy con la solucion, segui el COMO al pie de la letra y estube toqueteando un poco el script.
Si alguien soluciono el problema y podria informarme se lo agradeceria, sigo intentando solucionar el problema de encontrar una solucion lo voy a postear. ;)
---------------------------------
GNU/Linux|The Future Technology|
Que será lo que sucede,
Que será lo que sucede, pueden ser varias cosas, pero para no especular mira te paso partes del script de htb-gen, analizalo, quizas algo este diferente en el tuyo:
function do_iptables() {
function _do_iptables () {
function __do_iptables () {
local dir=$1 iface=$2 ip=$3 class_prio=$4 class_dfl=$5 tcp_prio_ports=$6 udp_prio_ports=$7 prio_protos=$8 prio_helpers=$9
local host_dir= ports_dir=
case "$dir" in down) host_dir=d;ports_dir=s ;; up) host_dir=s;ports_dir=d ;;esac
# iptables accept either "." & "/" chars in table naiming, is my lucky day :-) !
iptables -t mangle -N htb-gen.${iface}-${ip}
iptables -t mangle -A htb-gen.${iface} -${host_dir} ${ip} -j htb-gen.${iface}-${ip}
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -m length --length 0:100 -j MARK --set-mark ${class_prio}
local IFS=","
for proto in ${prio_protos}; do
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -p ${proto} -j MARK --set-mark ${class_prio}
done
for helper in ${prio_helpers}; do
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -m helper --helper ${helper} -j MARK --set-mark ${class_prio}
done
unset IFS
if [ "$tcp_prio_ports" != 0 ]; then
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -p tcp -m multiport --${ports_dir}ports $tcp_prio_ports -j MARK --set-mark ${class_prio}
fi
if [ "$udp_prio_ports" != 0 ]; then
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -p udp -m multiport --${ports_dir}ports $udp_prio_ports -j MARK --set-mark ${class_prio}
fi
iptables -t mangle -A htb-gen.${iface}-${ip} -m mark --mark 0 -j MARK --set-mark ${class_dfl}
iptables -t mangle -A htb-gen.${iface}-${ip} -j ACCEPT
# Make extra tables, cleaner & target match faster
for ((if=0;if<${#ifaces[@]};if++)); do
iptables -t mangle -N htb-gen.${ifaces[if]}
iptables -t mangle -A FORWARD -o ${ifaces[if]} -j htb-gen.${ifaces[if]}
iptables -t mangle -A OUTPUT -o ${ifaces[if]} -j htb-gen.${ifaces[if]}
for ((n=0;n<${#ip[@]};n++)); do
test "${enabled[n]}" == "0" && continue
if [[ ${ifaces[if]} == ${iface_down[n]} ]];then
__do_iptables "down" ${ifaces[if]} ${ip[n]} ${class_prio[n]} ${class_dfl[n]} ${tcp_prio_ports[n]} ${udp_prio_ports[n]} ${prio_protos[n]} ${prio_helpers[n]}
fi
if [[ ${ifaces[if]} == ${iface_up[n]} ]];then
__do_iptables "up" ${ifaces[if]} ${ip[n]} ${class_prio[n]} ${class_dfl[n]} ${tcp_prio_ports[n]} ${udp_prio_ports[n]} ${prio_protos[n]} ${prio_helpers[n]}
fi
done
done
}
#function begins here!
if [[ "$1" == "stdout" ]] ;then
iptables () { echo iptables "$@"; }
_do_iptables
else
#delete old htb-gen entries(chains)
for ((if=0;if<${#ifaces[@]};if++)); do
$iptables_command -t mangle -D FORWARD -o ${ifaces[if]} -j htb-gen.${ifaces[if]} 2>/dev/null
$iptables_command -t mangle -D OUTPUT -o ${ifaces[if]} -j htb-gen.${ifaces[if]} 2>/dev/null
La versión posteada es de la 0.9b1.
Algo adicional, mira que esto sea lo que te de de resultado al listar la cadena mangle hacia una ip especifica:
srvlinux:/etc/htb-gen# iptables -nL -t mangle |grep 192.168.0.100
htb-gen.eth0-192.168.0.100 all -- 192.168.0.100 0.0.0.0/0
Chain htb-gen.eth0-192.168.0.100 (1 references)
htb-gen.eth1-192.168.0.100 all -- 0.0.0.0/0 192.168.0.100
Chain htb-gen.eth1-192.168.0.100 (1 references)
Saludos
Hola damage, Realmente estoy desorientado!.
Hola damage, Realmente estoy desorientado!. Estaba utilizando la version 8, ahora instale la version 0.9b1, funciona exactamente igual a la 8.
Esto es lo que me sale luego de hacer:
xxxx#iptables -nL -t mangle |grep 10.0.0.2
htb-gen.eth0-10.0.0.2 all -- 10.0.0.2 0.0.0.0/0
Chain htb-gen.eth0-10.0.0.2 (1 references)
htb-gen.eth1-192.168.0.100 all -- 0.0.0.0/0 10.0.0.2
Chain htb-gen.eth1-10.0.0.2 (1 references)
Y el script lo tengo tal cual lo tenes vos.
---------------------------------
GNU/Linux|The Future Technology|
Pues si todo esta igual,
Pues si todo esta igual, deberia funcar sin problemas, has probado bajando el shorewall y solo ejecutar el enmascaramiento y el Redirect al 8080 + port_forwarding, para ver si no es algo relacionado con el shorewall?, de ahi no se me ocurre más.