6. Control de ancho de banda

El siguiente ejemplo presenta como puede configurarse un servidor NAT para controlar ancho de banda de diversos computadores de la red interna. La conexión de la red interna es a 100MB, mientras que la conexión a Internet es de 300KB. De todos los computadores de la red interna el ancho de banda se limita sólo a 4 computadores, cada uno máximo 30KB. Los demás comparten el resto del ancho de banda.

table <interna> {192.168.2.2, 192.168.2.1, 192.168.1.1, 192.168.1.8, 192.168.1.21, 192.168.1.23, 192.168.1.30, 192.168.1.31, 192.168.1.37, 192.168.1.40, 192.168.1.41, 192.168.1.42, 192.168.1.43, 192.168.1.95, 192.168.1.70}

set loginterface $int_if
set fingerprints "/etc/pf.os"

altq on $int_if bandwidth 100Mb cbq queue { dflt_in, uext1_in, uext2_in, uext3_in, uext4_in}
altq on $ext_if bandwidth 300Kb cbq queue { dflt_out }

queue dflt_in cbq(default) bandwidth 80%
queue dflt_out cbq(default)

queue uext1_in bandwidth 30Kb
queue uext2_in bandwidth 30Kb
queue uext3_in bandwidth 30Kb
queue uext4_in bandwidth 30Kb

uext1="192.168.1.70" 
uext2="192.168.1.23" 
uext3="192.168.1.95"
uext4="192.168.1.30"

match out on $ext_if from <interna> to any nat-to ($ext_if)

pass  out on $int_if from any to $uext1 queue uext1_in
pass  out on $int_if from any to $uext2 queue uext2_in
pass  out on $int_if from any to $uext3 queue uext3_in
pass  out on $int_if from any to $uext4 queue uext4_in

6.1. Referencias y lecturas recomendadas

Las siguientes páginas man: pf(4), pfctl(4).

Guía del usuario de PF [PF].