
Код: Выделить всё
inet_if="ng0"
dml_if="ng1"
netbook_ip="10.10.10.4"
computer_ip="10.10.10.2"
dml_net="10.152.0.0/16"
set block-policy drop
scrub all no-df random-id reassemble tcp
scrub in all fragment reassemble
altq on $inet_if cbq bandwidth 1150Kb queue \
{ computer_ext_inet, server_ext_inet, netbook_ext_inet }
queue computer_ext_inet bandwidth 400Kb cbq(borrow) { computer_ext_icmp_inet, \
computer_ext_mail_inet, computer_ext_http_inet, computer_ext_other_inet }
queue computer_ext_icmp_inet bandwidth 5% priority 7 cbq(red borrow)
queue computer_ext_mail_inet bandwidth 35% priority 5 cbq(red borrow)
queue computer_ext_http_inet bandwidth 35% priority 3 cbq(red borrow)
queue computer_ext_other_inet bandwidth 25% priority 1 cbq(default red borrow
queue server_ext_inet bandwidth 350Kb cbq(borrow) { server_ext_dns_inet, \
server_ext_icmp_inet, server_ext_ssh_inet, server_ext_http_inet, \
server_ext_other_inet }
queue server_ext_dns_inet bandwidth 10% priority 6 cbq(red borrow)
queue server_ext_icmp_inet bandwidth 5% priority 7 cbq(red borrow)
queue server_ext_ssh_inet bandwidth 30% priority 5 cbq(red borrow)
queue server_ext_http_inet bandwidth 30% priority 3 cbq(red borrow)
queue server_ext_other_inet bandwidth 25% priority 1 cbq(red borrow)
queue netbook_ext_inet bandwidth 400Kb cbq(borrow) { netbook_ext_icmp_inet, \
netbook_ext_mail_inet, netbook_ext_http_inet, netbook_ext_other_inet }
queue netbook_ext_icmp_inet bandwidth 5% priority 7 cbq(red borrow)
queue netbook_ext_mail_inet bandwidth 35% priority 5 cbq(red borrow)
queue netbook_ext_http_inet bandwidth 35% priority 3 cbq(red borrow)
queue netbook_ext_other_inet bandwidth 25% priority 1 cbq(red borrow)
altq on $dml_if cbq bandwidth 1650Kb queue { computer_ext_dml, \
server_ext_dml, netbook_ext_dml }
queue computer_ext_dml bandwidth 150Kb cbq(borrow) { computer_ext_icmp_dml, \
computer_ext_http_dml, computer_ext_other_dml }
queue computer_ext_icmp_dml bandwidth 5% priority 7 cbq(default red borrow)
queue computer_ext_http_dml bandwidth 50% priority 3 cbq(red borrow)
queue computer_ext_other_dml bandwidth 45% priority 1 cbq(red borrow)
queue server_ext_dml bandwidth 200Kb cbq(borrow) { server_ext_dns_dml, \
server_ext_icmp_dml, server_ext_ssh_dml, server_ext_http_dml, \
server_ext_other_dml }
queue server_ext_dns_dml bandwidth 10% priority 6 cbq(red borrow)
queue server_ext_icmp_dml bandwidth 5% priority 7 cbq(red borrow)
queue server_ext_ssh_dml bandwidth 30% priority 5 cbq(red borrow)
queue server_ext_http_dml bandwidth 30% priority 3 cbq(red borrow)
queue server_ext_other_dml bandwidth 25% priority 1 cbq(red borrow)
queue netbook_ext_dml bandwidth 150Kb cbq(borrow) { netbook_ext_icmp_dml, \
netbook_ext_http_dml, netbook_ext_other_dml }
queue netbook_ext_icmp_dml bandwidth 5% priority 7 cbq(red borrow)
queue netbook_ext_http_dml bandwidth 50% priority 3 cbq(red borrow)
queue netbook_ext_other_dml bandwidth 45% priority 1 cbq(red borrow)
block in log quick proto tcp flags FUP/WEUAPRSF
block in log quick proto tcp flags WEUAPRSF/WEUAPRSF
block in log quick proto tcp flags SRAFU/WEUAPRSF
block in log quick proto tcp flags /WEUAPRSF
block in log quick proto tcp flags SR/SR
block in log quick proto tcp flags SF/SF
block in log quick proto tcp flags FUP/FUP
block in log quick proto tcp flags SF/SFRA
block in log quick proto tcp flags /SFRA
#block in log quick proto tcp flags SFUP/SFRAU
block in log quick proto tcp flags FPU/SFRAUP
block in log quick proto tcp flags F/SFRA
block in log quick proto tcp flags U/SFRAU
block in log quick proto tcp flags P/P
pass out quick proto tcp from $computer_ip to $dml_net port { 80, 1080, 8080 } queue computer_ext_http_dml
pass out quick proto icmp from $computer_ip to $dml_net queue computer_ext_icmp_dml
pass out quick proto { tcp, udp, icmp } from $computer_ip to $dml_net queue computer_ext_other_dml
pass out quick proto tcp from $netbook_ip to $dml_net port { 80, 1080, 8080 } queue netbook_ext_http_dml
pass out quick proto icmp from $netbook_ip to $dml_net queue netbook_ext_icmp_dml
pass out quick proto { tcp, udp, icmp } from $netbook_ip to $dml_net queue netbook_ext_other_dml
pass out quick proto udp from me to $dml_net port 53 queue server_ext_dns_dml
pass out quick proto icmp from me to $dml_net queue server_ext_icmp_dml
pass out quick proto tcp from me to $dml_net port { 80, 1080, 8080 } queue server_ext_http_dml
pass out quick proto tcp from me port 80 to $dml_net queue server_ext_http_dml
pass out quick proto tcp from me port 22 to $dml_net queue server_ext_ssh_dml
pass out quick proto { tcp, udp, icmp } from me to $dml_net queue server_ext_other_dml
pass out quick proto tcp from $computer_ip to any port { 80, 1080, 8080 } queue computer_ext_http_inet
pass out quick proto icmp from $computer_ip to any queue computer_ext_icmp_inet
pass out quick proto { tcp, udp, icmp } from $computer_ip to any queue computer_ext_other_inet
pass out quick proto tcp from $netbook_ip to any port { 80, 1080, 8080 } queue netbook_ext_http_inet
pass out quick proto icmp from $netbook_ip to any queue netbook_ext_icmp_inet
pass out quick proto { tcp, udp, icmp } from $netbook_ip to any queue netbook_ext_other_inet
pass out quick proto udp from me to any port 53 queue server_ext_dns_inet
pass out quick proto icmp from me to any queue server_ext_icmp_inet
pass out quick proto tcp from me to any port { 80, 1080, 8080 } queue server_ext_http_inet
pass out quick proto tcp from me port 80 to any queue server_ext_http_inet
pass out quick proto tcp from me port 22 to any queue server_ext_ssh_inet
pass out quick proto { tcp, udp, icmp } from me to any queue server_ext_other_inet
pass in all
pass out all