рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░ рдУрдПрд╕, рдЧрддрд┐рд╢реАрд▓ рдЧрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░ рдУрдПрд╕, рдЧрддрд┐рд╢реАрд▓ рдЧрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯред





рджреВрд╕рд░реЗ рджрд┐рди, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ: рдЧрддрд┐ рдХреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдЧрддрд┐ рдЙрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рди рдХреА рдЬрд╛рдП рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рднреА рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рдПрдХ рд╕рдВрдХреАрд░реНрдг рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде, рдХреБрдЫ "рдмрдлрд░рд┐рдВрдЧ" рд╣реЛред рдЪреИрдирд▓ред



рдзреНрдпрд╛рди рд╕реЗ рдореИрдиреБрдЕрд▓ рдХреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрдврд╝рд╛рдП рдмрд┐рдирд╛ рд░рд╛рдЙрдЯрд░ рдУрдПрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред



рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рд╡реАрдкреАрдПрди рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред



рддреЛ рдЪрд▓рд┐рдП!



рддреАрди рдкреАрдкреАрдЯреАрдкреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрддреЗ 192.168.70.10-192.168.70.12

рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ 192.168.70.1



рддреАрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ:



/ ppp secret add name="user1" service=pptp password="null" profile=default-encryption local address=192.168.70.1 remote-address=192.168.70.10 disabled=no

/ ppp secret add name="user2" service=pptp password="null" profile=default-encryption local-address=192.168.70.1 remote-address=192.168.70.11 disabled=no

/ ppp secret add name="user3" service=pptp password="null" profile=default-encryption local-address=192.168.70.1 remote-address=192.168.70.12 disabled=no









рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд╛рдо рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!



/ interface pptp-server add name="user1" user="user1" disabled=no

/ interface pptp-server add name="user2" user="user2" disabled=no

/ interface pptp-server add name="user3" user="user3" disabled=no









Mangle, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕рдореЗрдВ рдкреИрдХреЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдореИрдВ рд╡рд┐рдЪрд╛рд░ рдХреА рдкреВрд░реА рдЧрд╣рд░рд╛рдИ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдФрд░ рдкреИрдХреЗрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рддреБрд░рдВрдд рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ ред рд╣рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдо рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА! рдирдП-рдкреИрдХреЗрдЯ-рдЪрд┐рд╣реНрди рдХрд╛ рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рд╕рд░реНрд╡рд░" + "_ рдбрд╛рдЙрди" рдФрд░ "_рдЕрдк" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



/ ip firewall mangle add chain=forward src-address=192.168.70.10 dst-address=0.0.0.0/0 action=mark-packet new-packet-mark=user1_up passthrough=no disabled=no

/ ip firewall mangle add chain=forward src-address=192.168.70.11 dst-address=0.0.0.0/0 action=mark-packet new-packet-mark=user2_up passthrough=no disabled=no

/ ip firewall mangle add chain=forward src-address=192.168.70.12 dst-address=0.0.0.0/0 action=mark-packet new-packet-mark=user3_up passthrough=no disabled=no



/ ip firewall mangle add chain=forward src-address=0.0.0.0/0 dst-address=192.168.70.10 action=mark-packet new-packet-mark=user1_down passthrough=no disabled=no

/ ip firewall mangle add chain=forward src-address=0.0.0.0/0 dst-address=192.168.70.11 action=mark-packet new-packet-mark=user2_down passthrough=no disabled=no

/ ip firewall mangle add chain=forward src-address=0.0.0.0/0 dst-address=192.168.70.12 action=mark-packet new-packet-mark=user3_down passthrough=no disabled=no









рдЕрдЧрд▓рд╛ рдХрджрдо рдХрддрд╛рд░ рдореЗрдВ рдПрдХ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд╕рднреА рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрдВрдЧреЗред



/ queue tree add name="Download" parent=global-out limit-at=0 queue=hotspot-default priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no

/ queue tree add name="user1_down" parent=Download packet-mark=user1_down disabled=no

/ queue tree add name="user2_down" parent=Download packet-mark=user2_down disabled=no

/ queue tree add name="user3_down" parent=Download packet-mark=user3_down disabled=no



/ queue tree add name="Upload" parent=global-out limit-at=0 queue=hotspot-default priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no

/ queue tree add name="user1_up" parent=Upload packet-mark=user1_up disabled=no

/ queue tree add name="user2_up" parent=Upload packet-mark=user2_up disabled=no

/ queue tree add name="user3_up" parent=Upload packet-mark=user3_up disabled=no









рдЕрдВрддрд┐рдо рдЪрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рднрд╛рдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ 10-60 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдкрдиреЗ mikrotik рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЕрдВрддрд░рд╛рд▓ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ - рдмреЗрд╣рддрд░ред



рдЪрд░ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рднрд╛рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


MaxRateDownload - ()

MaxRateUpload - ()

ActiveThresholddown - ()

ActiveThresholdup - ()

ParentDownload - ()

ParentUpload - ()









:local MaxRateDownload ("2000000");

:local MaxRateUpload ("2000000");









рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЪреИрдирд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдмреНрд░реЗрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдкрд╣рд▓реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рдХреНрд░рд┐рдп рд╣реЛред



:local ActiveThresholddown ("5000");

:local ActiveThresholdup ("5000");









рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЧрдгрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░: рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбрдбрд╛рдЙрди рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ = рдореИрдХреНрд╕рд░реЗрдбрдбрд╛рдЙрдирд▓реЛрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рд╣реЗрдВрдЧреЗ! рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ * ActiveThresholdup = MaxRateUpload рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдорд╛рд░реНрдЬрд┐рди рдЫреЛрдбрд╝ рджреЗрдВред



рд▓рд┐рдкрд┐ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрд╕ рдЧрддрд┐ рдХреЛ рдорд╛рдкрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╡рд╣ ActiveThresholddown рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рд░рд┐рд╕реЗрдкреНрд╢рди рдкрд░ рдПрдХ рд╕рдХреНрд░рд┐рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ,

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХреЗ PPTP рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рддреЛ рднреА рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ ActiveThresholdup рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрд╕ рдЪрд┐рд╣реНрди рдХреЛ рдкрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕реА рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред



рдпрджрд┐ рд╕рдХреНрд░рд┐рдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╕реЗ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдж рдореЗрдВ рдЧрдгрд┐рддреАрдп рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдпрдерд╛ рдХреБрдЫ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ :)



рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ:

MaxRateDownload рдкреНрд░рддрд┐ рд░рд┐рд╕реЗрдкреНрд╢рди рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

MaxRateUpload рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



рдЗрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдКрдкрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреВ рдЯреНрд░реА рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред



рдлрд┐рд░ рдпрд╣ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдореЗрдВ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб


рд░рд╛рдЙрдЯрд░ рдУрдПрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛ рдЖрдВрддрд░рд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреБрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб 2.9.xx:


######################

:local MaxRateDownload ("2000000");

:local MaxRateUpload ("2000000");

:local ActiveThresholddown ("5000");

:local ActiveThresholdup ("5000");

:local ParentDownload ("Download");

:local ParentUpload ("Upload");

######################



######################

:local z;

:local i;

:local ii;

:local userX;

:global onlineclientsdown (0);

:global onlineclientsup (0);

:global connected (0);

######################



######################

:foreach i in=[/ppp active find] do={ :set userX [/ppp active get $i name];

:global connected ($connected+1);

/interface monitor-traffic [/interface find name=$userX] once do {:if ($received-bits-per-second>=$ActiveThresholddown) do { :set onlineclientsdown ($onlineclientsdown+1);}} };



:foreach ii in=[/ppp active find] do={ :set userX [/ppp active get $ii name];

/interface monitor-traffic [/interface find name=$userX] once do {:if ($sent-bits-per-second>=$ActiveThresholdup) do { :set onlineclientsup ($onlineclientsup+1);}} };



:if ($onlineclientsdown = 0) do {:set onlineclientsdown (1)};

:if ($onlineclientsup= 0) do {:set onlineclientsup (1)};



:local ratelimitdown ($MaxRateDownload/$onlineclientsdown)

:local ratelimitup ($MaxRateUpload/$onlineclientsup)



:foreach z in=[/ppp active find] do={ :set userX [/ppp active get $z name];

/queue tree set [/queue tree find name=($userX . "_down")] parent=$ParentDownload packet-mark=($userX . "_down") queue=hotspot-default priority=8 max-limit=$ratelimitdown



/queue tree set [/queue tree find name=($userX . "_up")] parent=$ParentUpload packet-mark=($userX . "_up") queue=hotspot-default priority=8 max-limit=$ratelimitup};

######################



######################

:local kbsmaxdown ($MaxRateDownload/1000);

:local kbsmaxup ($MaxRateUpload /1000);

:local kbsthr ($ActiveThresholddown/1000);

:local kbsdown ($ratelimitdown/1000);

:local kbsup ($ratelimitup/1000);



:log warning ("Shaper:");

:log info ("MaxRate Download : " . $MaxRateDownload . " bps /" . $kbsmaxdown . " kbs / Upload : " . $MaxRateUpload . " bps /" . $kbsmaxup . " kbs");

:log info ("Threshold: Download : " . $ActiveThresholddown . " bps /" . $kbsthr . " kbs / Upload : " . $ActiveThresholdup . " bps /" . $kbsthr . " kbs");

:log info ("Connected Users : " . $connected);

:log info ("Active Users : Download : " . $onlineclientsdown . " / Upload : " . $onlineclientsup);

:log info ("User Speed Download : " . $ratelimitdown . " bps /" . $kbsdown . " kbs / Upload : " . $ratelimitup . " bps /" . $kbsup . " kbs");

######################

# (C) Inlarion icq 429-587 Copyright!









рд╕рдВрд╕реНрдХрд░рдг 3.22 рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб:


######################

:local MaxRateDownload ("2000000");

:local MaxRateUpload ("2000000");

:local ActiveThresholddown ("5000");

:local ActiveThresholdup ("5000");

:local ParentDownload ("Download");

:local ParentUpload ("Upload");

######################



######################

:local z;

:local i;

:local ii;

:local userX;

:global onlineclientsdown (0);

:global onlineclientsup (0);

:global connected (0);

######################



######################

:foreach i in=[/ppp active find] do={ :set userX [/ppp active get $i name];

:global connected ($connected+1);

/interface monitor-traffic [/interface find name=$userX] once do {:if ($"received-bits-per-second">=$ActiveThresholddown) do { :set onlineclientsdown ($onlineclientsdown+1);}} };



:foreach ii in=[/ppp active find] do={ :set userX [/ppp active get $ii name];

/interface monitor-traffic [/interface find name=$userX] once do {:if ($"sent-bits-per-second">=$ActiveThresholdup) do { :set onlineclientsup ($onlineclientsup+1);}} };



:if ($onlineclientsdown = 0) do {:set onlineclientsdown (1)};

:if ($onlineclientsup= 0) do {:set onlineclientsup (1)};



:local ratelimitdown ($MaxRateDownload/$onlineclientsdown)

:local ratelimitup ($MaxRateUpload/$onlineclientsup)



:foreach z in=[/ppp active find] do={ :set userX [/ppp active get $z name];

/queue tree set [/queue tree find name=($userX . "_down")] parent=$ParentDownload packet-mark=($userX . "_down") queue=hotspot-default priority=8 max-limit=$ratelimitdown



/queue tree set [/queue tree find name=($userX . "_up")] parent=$ParentUpload packet-mark=($userX . "_up") queue=hotspot-default priority=8 max-limit=$ratelimitup};

######################



######################

:local kbsmaxdown ($MaxRateDownload/1000);

:local kbsmaxup ($MaxRateUpload /1000);

:local kbsthr ($ActiveThresholddown/1000);

:local kbsdown ($ratelimitdown/1000);

:local kbsup ($ratelimitup/1000);



:log warning ("Shaper:");

:log info ("MaxRate Download : " . $MaxRateDownload . " bps /" . $kbsmaxdown . " kbs / Upload : " . $MaxRateUpload . " bps /" . $kbsmaxup . " kbs");

:log info ("Threshold: Download : " . $ActiveThresholddown . " bps /" . $kbsthr . " kbs / Upload : " . $ActiveThresholdup . " bps /" . $kbsthr . " kbs");

:log info ("Connected Users : " . $connected);

:log info ("Active Users : Download : " . $onlineclientsdown . " / Upload : " . $onlineclientsup);

:log info ("User Speed Download : " . $ratelimitdown . " bps /" . $kbsdown . " kbs / Upload : " . $ratelimitup . " bps /" . $kbsup . " kbs");

######################

# (C) Inlarion icq 429-587 Copyright!









рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб 3.30 - 4.x - 5.x:


######################

:local MaxRateDownload ("2000000");

:local MaxRateUpload ("2000000");

:local ActiveThresholddown ("5000");

:local ActiveThresholdup ("5000");

:local ParentDownload ("Download");

:local ParentUpload ("Upload");

######################



######################

:local z;

:local i;

:local ii;

:local userX;

:global onlineclientsdown (0);

:global onlineclientsup (0);

:global connected (0);

######################



######################

:foreach i in=[/ppp active find] do={ :set userX [/ppp active get $i name];

:global connected ($connected+1);

/interface monitor-traffic [/interface find name=$userX] once do {:if ($"rx-bits-per-second">=$ActiveThresholddown) do { :set onlineclientsdown ($onlineclientsdown+1);}} };



:foreach ii in=[/ppp active find] do={ :set userX [/ppp active get $ii name];

/interface monitor-traffic [/interface find name=$userX] once do {:if ($"tx-bits-per-second">=$ActiveThresholdup) do { :set onlineclientsup ($onlineclientsup+1);}} };



:if ($onlineclientsdown = 0) do {:set onlineclientsdown (1)};

:if ($onlineclientsup= 0) do {:set onlineclientsup (1)};



:local ratelimitdown ($MaxRateDownload/$onlineclientsdown)

:local ratelimitup ($MaxRateUpload/$onlineclientsup)



:foreach z in=[/ppp active find] do={ :set userX [/ppp active get $z name];

/queue tree set [/queue tree find name=($userX . "_down")] parent=$ParentDownload packet-mark=($userX . "_down") queue=hotspot-default priority=8 max-limit=$ratelimitdown



/queue tree set [/queue tree find name=($userX . "_up")] parent=$ParentUpload packet-mark=($userX . "_up") queue=hotspot-default priority=8 max-limit=$ratelimitup};

######################



######################

:local kbsmaxdown ($MaxRateDownload/1000);

:local kbsmaxup ($MaxRateUpload /1000);

:local kbsthr ($ActiveThresholddown/1000);

:local kbsdown ($ratelimitdown/1000);

:local kbsup ($ratelimitup/1000);



:log warning ("Shaper:");

:log info ("MaxRate Download : " . $MaxRateDownload . " bps /" . $kbsmaxdown . " kbs / Upload : " . $MaxRateUpload . " bps /" . $kbsmaxup . " kbs");

:log info ("Threshold: Download : " . $ActiveThresholddown . " bps /" . $kbsthr . " kbs / Upload : " . $ActiveThresholdup . " bps /" . $kbsthr . " kbs");

:log info ("Connected Users : " . $connected);

:log info ("Active Users : Download : " . $onlineclientsdown . " / Upload : " . $onlineclientsup);

:log info ("User Speed Download : " . $ratelimitdown . " bps /" . $kbsdown . " kbs / Upload : " . $ratelimitup . " bps /" . $kbsup . " kbs");

######################

# (C) Inlarion icq 429-587 Copyright!








All Articles