Нужно сделать ограничение скорости для всех пользователей серой сетки.
Канал 10Mbit/sec. Пользователей - 50 человек. По интернету лазят мало, в основном по работе и в целом ширины канала хватает. Пики кратковременны и в основном канал свободен.
И всё-же, надо сделать так, чтобы максимальная скорость для каждого была не более 3Mbit/s.
Какие правила прописать в IPFW?Попробовал:
pipe 1 config bw 3Mbit/s
add pipe 1 ip from any to 192.168.1.0/24 out
не сразу сообразил, что всех загнал в ОДИН канал три мегабита... :(Мне не в лом для каждого IP, например для 192.168.1.10, прописать например так:
pipe 10 config bw 3Mbit/s
add pipe 10 ip from any to 192.168.1.10 out
Но, что в итоге-то получится при таких правилах?
Мне не нужны гарантированные 3 мегабита на каждого, тем более что канал всего 10 мегабит... мне нужно только ограничить каждого пользователя сверху (тремя мегабитами если канал свободен или просто поделит его ширину пропорционально) и не более того. Как поделится ширина канала, если при указанных правилах по трубам подключатся одновременно например 5 пользователей?
10Mb/s / 5 человек=2Mb/s? - меня бы это устроило...
Коллеги, выручите пожалуйста!
Лирическое отступление о причинах:
Иногда стали появляться пользователи, которые без злого умысла сильно грузят канал Интернета - то видео, то обновления винды, то ещё что-то... При этом интернет у остальных пользователей просто отваливается, а у этих единоличников всё в порядке...
Шлюз не менялся несколько лет, все настройки старые. Разве что перевёл много машин с WinXP на Win7. Сделал сейчас новый шлюз на FreeBSD 10.2 + IPFW + natd.
Странно, что "раньше такого не было" - перед шлюзом все клиенты были "равны" и при перегрузках тормозило у всех одинаково, но теперь временами некоторые почему-то становятся "равнее" других. Я в тихом ауте от такого - даже не знаю на что думать...
> Сделал сейчас новый шлюз на FreeBSD 10.2 + IPFW + natd.изучайте ipfw kernel nat
natd > /dev/лес
И чем ядерный нат в данном случае поможет?
1) читаем маны и учимся гуглить, не возникало подозрений что такой вопрос уже мог возникнуть у 100500 школоло-одминов-птушников до вас?2) я сегодня добрый
ipfw pipe 1 config bw 3Mbit/s mask src-ip 0xffffffff
ipfw pipe 2 config bw 3Mbit/s mask dst-ip 0xffffffffipfw add pipe 1 all from 192.168.1.0/24 to any
ipfw add pipe 2 all from any to 192.168.1.0/243) самостоятельно изучите необходимость для вашего конкретного случая
net.inet.ip.fw.one_pass = 0
и
kern.hz=1000 (/boot/loader.conf)
>[оверквотинг удален]
> уже мог возникнуть у 100500 школоло-одминов-птушников до вас?
> 2) я сегодня добрый
> ipfw pipe 1 config bw 3Mbit/s mask src-ip 0xffffffff
> ipfw pipe 2 config bw 3Mbit/s mask dst-ip 0xffffffff
> ipfw add pipe 1 all from 192.168.1.0/24 to any
> ipfw add pipe 2 all from any to 192.168.1.0/24
> 3) самостоятельно изучите необходимость для вашего конкретного случая
> net.inet.ip.fw.one_pass = 0
> и
> kern.hz=1000 (/boot/loader.conf)
Спасибо :)
>> ipfw pipe 1 config bw 3Mbit/s mask src-ip 0xffffffff
>> ipfw pipe 2 config bw 3Mbit/s mask dst-ip 0xffffffff
>> ipfw add pipe 1 all from 192.168.1.0/24 to any
>> ipfw add pipe 2 all from any to 192.168.1.0/24Хрень какая-то получилась...
Поставил эти 4 правила, только изменил 3Mbit/s на 4Mbit/s.
Измеряю скорость на клиенте с этими правилами: 2Mbit/s внутрь и 4Mbit/s наружу
Измеряю скорость на клиенте без этих правил: 10Mbit/s в обе стороны.
Почему входящий трафик в 2 раза меньше заданного?PS: поставил во второй строке 8Mbit/s - получил требуемые 4Mbit/s для клиента... почему?
PS2: если дело в том, что net.inet.ip.fw.one_pass=0 по умолчанию и пакета дважды проходят через интерфейс, то что делать то? Я так понял, что если поставить net.inet.ip.fw.one_pass=1, то пакеты будут пролетать через трубу не глядя на ниже следующие правила фаервола? Или нет?
Можно бы и так оставить, но как-то неуютно от двойной нагрузки на интерфейс...
> Хрень какая-то получилась...маны читай, примеры смотри - сто раз не то что разжевано, а уже переварено.
4) Следующий этап - использование tablearg
дубль