> Hi, thanks for your reply. I am still NOT be able to get it done ( i.e -
> downloading @ 80 Kbps without borrowing for the student . Pls see below.
>


> >
> > and wrote my rules. But, I still can NOT allocate 80Kbps for the student,
> > while downloading. it goes up whole a lot.  here are my rules. ( em0  is
> > ext_if and em1 is int_if )
> >
> >
> > # enable queueing on the external interface to control traffic going to
> > # the Internet. use the priq scheduler to control only priorities. set
> > # the bandwidth to 485Kbps to get the best performance out of the TCP
> > # ACK queue.
> >
> > altq on em0 priq bandwidth 485Kb queue { std_out, ssh_im_out, dns_out, \
> >         tcp_ack_out }
>
>  altq on em0 cbq bandwidth 485Kb queue { std_out, ssh_im_out, dns_out, \
>         tcp_ack_out }
>
>     it should be like below. ( I added tcp_student_out )

     ltq on em0 cbq bandwidth 485Kb queue { std_out, ssh_im_out, dns_out, \
        tcp_ack_out, tcp_student_out }


queue std_out bandwidth 300Kb cbq(default borrow)
>  queue ssh_im_out bandwidth 50Kb cbq(red)
>  queue dns_out bandwidth 25Kb cbq(borrow)
>  queue tcp_ack_out bandwidth 30Kb priority 6 cbq(borrow red)
>  queue tcp_student_out bandwidth 80Kb cbq(red)
>
> >
> > # define the parameters for the child queues.
> > # std_out      - the standard queue. any filter rule below that does not
> > #                explicitly specify a queue will have its traffic added
> > #                to this queue.
> > # ssh_im_out   - interactive SSH and various instant message traffic.
> > # dns_out      - DNS queries.
> > # tcp_ack_out  - TCP ACK packets with no data payload.
> >
> >
> > # enable queueing on the internal interface to control traffic coming in
> > # from the Internet. use the cbq scheduler to control bandwidth. max
> > # bandwidth is 2Mbps.
> >
>  altq on em1 cbq bandwidth 2Mb queue { std_in, ssh_im_in, dns_in,
> student_in
>  }
>
>
> >
> > # define the parameters for the child queues.
> > # std_in      - the standard queue. any filter rule below that does not
> > #               explicitly specify a queue will have its traffic added
> > #               to this queue.
> > # ssh_im_in   - interactive SSH and various instant message traffic.
> > # dns_in      - DNS replies.
> > # student_in  - bandwidth reserved for  the workstation.
> > #
> >
> > queue std_in     bandwidth 1.6Mb cbq(default)
> > queue ssh_im_in  bandwidth 200Kb priority 4
> > queue dns_in     bandwidth 120Kb priority 5
> > queue student_in bandwidth 80Kb cbq
> >
>  queue std_in     bandwidth 1.6Mb cbq(default borrow)
>  queue ssh_im_in  bandwidth 200Kb priority 4
>  queue dns_in     bandwidth 120Kb priority 5
>  queue student_in bandwidth 80Kb cbq
>
> added as given above.

>
> >
> > clienttcpports="{ 21, 80, 8080, 443 }"
> > clientudpports="{ 53 }"
> >
> >
> > # FTP-Proxy
> > anchor "ftp-proxy/*"
> > pass in quick on $int_if proto tcp from $lan_net to any port 21 \
> >     flags S/SA keep state rdr-to 127.0.0.1 port 8021
> >
> > # Squid Redirect
> > pass in quick on $int_if proto tcp from $lan_net to any port { 80 8080 }
> \
> >     flags S/SA keep state rdr-to 127.0.0.1 port 3128
> #----------
>
>  pass in quick on $int_if proto tcp from $student_pc to any port 21 \
>     flags S/SA keep state rdr-to 127.0.0.1 port 8021 queue student_in
>
>  pass in quick on $int_if proto tcp from $student_pc to any port { 80 8080
> } \
>     flags S/SA keep state rdr-to 127.0.0.1 port 3128 queue student_in
>
>  pass in quick on $int_if proto tcp from $lan_net to any port 21 \
>     flags S/SA keep state rdr-to 127.0.0.1 port 8021
>
>  pass in quick on $int_if proto tcp from $lan_net to any port { 80 8080 } \
>     flags S/SA keep state rdr-to 127.0.0.1 port 3128
>
> added as given above

>
>
>
>
> >
> > # filter rules
> > block in log
> > block out log
> > #pass out log keep state
> >
> > antispoof quick for { lo $int_if ext_if }
> >
> >
> > pass in log on $int_if inet proto udp from $lan_net to !$int_if \
> >   port $clientudpports keep state
>
>
>   pass in log on $int_if inet proto tcp from $student_pc to !$int_if \
>     port $https flags S/SA keep state queue student_in
>
> > pass in log on $int_if inet proto tcp from $lan_net to !$int_if \
> >   port $https flags S/SA keep state
> >
> >
> > pass out log on $ext_if inet proto udp from $ext_if to any \
> >   port $clientudpports keep state queue dns_out
> >
> > pass out log on $ext_if inet proto tcp from  $ext_if to any \
> >   port $clienttcpports flags S/SA modulate state queue(std_out,
> tcp_ack_out)
> >
> >
> >
> > ###pass out on $int_if proto udp from port $clientudpports to $student_pc
> \
> >      ###   queue dns_in     --delete
> >
> > ###pass out on $int_if proto tcp from port $clienttcpports to $student_pc
> \
> >      ###   queue student_in   -delete
> >
>
      I understood the above 2 rules


> block out on $int_if
>

I think this is NOT needed. since I have default block the above

block in log
block out log

>
> if a rule "pass in on $int_if" with "keep state" it will pass back to
> $student_pc
>
>      Yeah, I understand.


Hope to hear from you.



-- 
Thank you
Indunil Jayasooriya

Reply via email to