Показать полную графическую версию : [решено] Ограничить канал на интернет
Приветствую!
Есть сервак с FreeBSD 4.10 R.-P4, на котором стоит шлюз. Есть рабочие станции, которые выходят в интернет через этот шлюз.
Подскажите, пожалуйста, как каждому юзеру назначить определенную скорость, с которой он может выходить в инет.
Понял, курю IPFW. Сразу вопрос. Решил потестить ширину канала на машине с адресом 192.168.111.9. Настраиваю пока все с ходу, не записывая в ipfw.rules, чтобы в случае какой-нибудь непонятки слетело все после перезагрузки.
Реальная ширина канала 256Kbit/s.
Последовательность команд:
ipfw add pipe 1 tcp from 192.168.111.9 to any out
ipfw add pipe 1 tcp from 192.168.111.9 to any in
ipfw pipe 1 config bw 32Kbit/s
ipfw pipe 2 config bw 32Kbit/s
Тестирую скорость, но инет так и продолжает шпарить с 256Kbit/s.
В чем я допустил ошибку?
P.S. А нештатные средства есть какие-нибудь или встроенный firewall вполне надежен?
Ядро собранно с опцией DUMMYNET ?
ipfw show
ipfw pipe show
1 с 2 не перепутал?
Ядро пересобрал?
Если каждому, то надо вроде бы использовать маску. В смысле, что не прописывать сотни правил на каждую машину, а сразу определить общее поведение.
Ядро собранно с опцией DUMMYNET ?
Да.
ipfw show
ipfw pipe show
1 с 2 не перепутал?
Ядро пересобрал? >>>
Все правила присутствуют, 1 с 2 не перепутал, просто здесь написал неправильно, по ipfw pipe show выдает:
00001: 32.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
00002: 32.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
Все в порядке. Ядро не пересобирал, потому что в конфиге ядра прописано:
options DUMMYNET
options IPFIREWALL
Если каждому, то надо вроде бы использовать маску. В смысле, что не прописывать сотни правил на каждую машину, а сразу определить общее поведение. >>>
Я пока хочу попробовать на одной машине, маску потом сделать не проблема.
Лично я все время путаюсь вход-выход :) если убрать in-out
и сделать
ipfw pipe 1 config bw 32Kbit/s
ipfw pipe 2 config bw 32Kbit/s
ipfw add pipe 1 tcp from 192.168.111.9 to any
ipfw add pipe 2 tcp from any to 192.168.111.9
00001: 32.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
00002: 32.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
Судя по нулям, ни одного пакета не соответствует этим правилам. Смотри ipfw show.
Лично я все время путаюсь вход-выход если убрать in-out
и сделать
ipfw pipe 1 config bw 32Kbit/s
ipfw pipe 2 config bw 32Kbit/s
ipfw add pipe 1 tcp from 192.168.111.9 to any
ipfw add pipe 2 tcp from any to 192.168.111.9 >>>
Попробовал, скорость не изменилась.
Судя по нулям, ни одного пакета не соответствует этим правилам. Смотри ipfw show. >>>
ipfw show
00100 2482944 1069009847 divert 8668 ip from any to any via xl0
00200 1187203 219726641 allow ip from 210.40.30.6 to any out xmit xl0
00300 112140 45179018 allow ip from any to 210.40.30.6 in recv xl0
00400 1183541 804101788 allow ip from any to 192.168.111.0/24 via xl0
00500 29619 8328569 allow ip from 192.168.111.0/24 to 192.168.111.1 in recv fxp0
00600 34469 26393825 allow ip from 192.168.111.1 to 192.168.111.0/24 out xmit fxp0
00700 1091176 204047454 allow ip from 192.168.111.0/24 to any in recv fxp0
00800 1183541 804101788 allow ip from any to 192.168.111.0/24 out xmit fxp0
00900 114484 104630922 allow ip from any to any via lo0
01000 0 0 deny ip from any to 127.0.0.0/8
01100 0 0 deny ip from 127.0.0.0/8 to any
01200 0 0 pipe 1 tcp from 192.168.111.9 to any
01300 0 0 pipe 2 tcp from any to 192.168.111.9
65535 5351 1754264 deny ip from any to any
По нулям? Практически все пакеты уходят через верхние правила.
Если поставить нужные правила после divert?
Верно, сработало! Респект!
Вот только бы еще понять, почему правила не сработали внизу.
Потому что правила проверяются сверху вниз, как только находится соответствие пакета правилу, проверка прекращается.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.