PDA

Показать полную графическую версию : [решено] Ограничить канал на интернет


Vygov
16-08-2007, 12:34
Приветствую!
Есть сервак с FreeBSD 4.10 R.-P4, на котором стоит шлюз. Есть рабочие станции, которые выходят в интернет через этот шлюз.
Подскажите, пожалуйста, как каждому юзеру назначить определенную скорость, с которой он может выходить в инет.

Vygov
16-08-2007, 13:00
Понял, курю 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 вполне надежен?

Dm1try
16-08-2007, 18:01
Ядро собранно с опцией DUMMYNET ?

Igor_I
16-08-2007, 18:09
ipfw show
ipfw pipe show
1 с 2 не перепутал?
Ядро пересобрал?
Если каждому, то надо вроде бы использовать маску. В смысле, что не прописывать сотни правил на каждую машину, а сразу определить общее поведение.

Vygov
17-08-2007, 09:36
Ядро собранно с опцией 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

Если каждому, то надо вроде бы использовать маску. В смысле, что не прописывать сотни правил на каждую машину, а сразу определить общее поведение. >>>
Я пока хочу попробовать на одной машине, маску потом сделать не проблема.

Igor_I
17-08-2007, 21:03
Лично я все время путаюсь вход-выход :) если убрать 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

Igor_I
18-08-2007, 08:40
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.

Vygov
21-08-2007, 14:18
Лично я все время путаюсь вход-выход если убрать 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

Igor_I
21-08-2007, 19:44
По нулям? Практически все пакеты уходят через верхние правила.
Если поставить нужные правила после divert?

Vygov
22-08-2007, 10:03
Верно, сработало! Респект!

Вот только бы еще понять, почему правила не сработали внизу.

Igor_I
22-08-2007, 19:49
Потому что правила проверяются сверху вниз, как только находится соответствие пакета правилу, проверка прекращается.

Vygov
23-08-2007, 08:48
Понял. Еще раз спасибо.

Igor_I
24-08-2007, 19:40
mar!!
За что!?




© OSzone.net 2001-2012