Os módulos iptables módulos , connlimit e length podem ser usados para identificar downloads. Aqui a configuração é usada:
#Mark downloads
$IPT -t mangle -N BULKCONN
#Small packet is probably interactive or flow control
$IPT -t mangle -A BULKCONN -m length --length 0:500 -j RETURN
#Small packet connections: multi purpose (don't harm since not maxed out)
$IPT -t mangle -A BULKCONN -m connbytes --connbytes 0:250 --connbytes-dir both --connbytes-mode avgpkt -j RETURN
#After one megabyte a connection is considered a download
$IPT -t mangle -A BULKCONN -m connbytes --connbytes 1048576: --connbytes-dir both --connbytes-mode bytes -j MARK --set-mark 6
$IPT -t mangle -A BULKCONN -j RETURN
$IPT -t mangle -A PREROUTING -i eth1 -j BULKCONN
Eu uso disciplinas de enfileiramento para priorizar downloads e outros tipos de tráfego.
Sobre o envio por meio de outro link: não estou pronto para responder, mas seria feito com o iproute2 (supondo que você esteja falando de outro link de IP). No entanto, ele só funcionará downstream, já que você não pode controlar onde o tráfego upstream chega até você.