Linozh Опубликовано 12 июня, 2009 · Жалоба Добрый день. Втрорые сутки мучаюсь с ipfw и все безрезультатно. Задача поделить канал. Добавил в /etc/rc.conf следующее: firewall_enable="YES" firewall_script="/etc/ipfw.rules" firewall_logging="yes" dummynet_enable="yes" В /etc/ipfw.rules прописал: ipfw -f flush ipfw -f pipe flush ipfw -f queue flush ipfw table 1 add 192.168.1.2 #User1 ipfw table 1 add 192.168.1.7 #User2 ipfw pipe 102 config mask src-ip 0x000000ff bw 64Kbit/s queue 50 ipfw add pipe 102 all from "table(1)" to any via re0 ipfw pipe 103 config mask dst-ip 0x000000ff bw 64Kbit/s queue 50 ipfw add pipe 103 all from any to "table(1)" via re0 Канал 300Kbit/s (правда реально не бывает больше 220). По тестам http://www.speedtest.net/ показывает 215Kbit/s входящая и 15Kbit исходящая. При попытке что-либо скачать используется весь доступный канал. В чем может быть проблема? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
t0ly Опубликовано 12 июня, 2009 · Жалоба попробуй поменять ipfw add pipe 102 all from "table(1)" to any via re0 ipfw add pipe 103 all from any to "table(1)" via re0 на ipfw add pipe 102 all from "table(1)" to any in ipfw add pipe 103 all from any to "table(1)" out Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 12 июня, 2009 · Жалоба Попробовал. Совсем перестал пользователей в инет пускать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 12 июня, 2009 (изменено) · Жалоба Проблема в том, что нужно правильно указывать направление. Должно быть так: ipfw add pipe 102 ip from table(1) to any out via re0 ipfw add pipe 103 ip from any to table(1) in via re0 где re0 -- интерфейс, смотрящий во внешнюю сеть. Кстати говоря, какая задача решается? Поделить канал поровну? Тогда проще сделать один pipe на все 300 Кбит с динамическими queue. Для этих целей также можно использовать ALTQ. Изменено 12 июня, 2009 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 12 июня, 2009 (изменено) · Жалоба Я дома пытаюсь откатать схему для использования ее в рабочей сети (Поэтому всего 2 пользователя и такой маленький канал). Смысл в следующем. Есть сервер у которого шлюз в интернет маршрутизатор Cisco (на циске работает NAT). На сервере одна сетевая карта re0. Я хочу с помощью ipfw поделить канал. Это вообще реально или я вообще зря трачу время?ОС: FreeBSD 7.1 Изменено 12 июня, 2009 пользователем Linozh Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 12 июня, 2009 · Жалоба # ipfw pipe show 00102: 64.000 Kbit/s 0 ms 50 sl. 2 queues (64 buckets) droptail mask: 0x00 0x000000ff/0x0000 -> 0x00000000/0x0000 BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp 4 ip 0.0.0.2/0 0.0.0.0/0 1930 685384 0 0 0 60 ip 0.0.0.254/0 0.0.0.0/0 62 8764 1 100 0 00103: 64.000 Kbit/s 0 ms 50 sl. 1 queues (64 buckets) droptail mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000 BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp 62 ip 0.0.0.0/0 0.0.0.254/0 2 244 0 0 0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LuckySB Опубликовано 12 июня, 2009 · Жалоба Мда.... src-ip 0x000000ff - это полный писец. man ipfw до полного просветления. Раздел TRAFFIC SHAPER (DUMMYNET) CONFIGURATION NATа нету у тебя на этой машине ? re0 это внешний интерфейс ? ipfw table 1 add 192.168.1.2 #User1 ipfw table 1 add 192.168.1.7 #User2 ipfw pipe 102 config bw 64Kbit/s ipfw queue 102 config pipe 102 src-ip mask 0xffffffff ipfw pipe 103 config bw 64Kbit/s ipfw queue 103 config pipe 103 dst-ip mask 0xffffffff ipfw add queue 102 ip from "table(1)" to any out xmit re0 ipfw add queue 103 all from any to "table(1)" in recv re0 впрочем dummynet - это прошлый век.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 12 июня, 2009 (изменено) · Жалоба На этой машине один интерфейс re0. На ней указан шлюз по умолчанию 192.168.0.254 (адрес маршрутизатора Cisco, на котором работает NAT) ...впрочем dummynet - это прошлый век.... Может тогда подскажете замену? Изменено 12 июня, 2009 пользователем Linozh Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LuckySB Опубликовано 12 июня, 2009 · Жалоба Может тогда подскажете замену?<br /> Все зависит от задачи и требуемой мощности. У тебя странная задача с равномерным распределением канала ;) Проблемы начинаються с ростом загрузки.... Вот рядом хорошая тема про тюнинг dummynet http://forum.nag.ru/forum/index.php?showtopic=49336 Хотя судя по твоим ошибкам тебе надо сначала плотно в теме разобраться, а потом тюнинговать ))) У меня задача - ограничить каждого юзера, так что я использую ng_car, устанавливаемый через mpd4. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 14 июня, 2009 · Жалоба Опишу задачу несколько иначе. Есть сеть, шлюз в интернет - маршрутизатор Cisco (на маршрутизаторе работает NAT). Канал 4Мбит/с. Задача: раздавать интернет разным группам пользователей с разной скоростью.Есть незадействованый сервер с одной сетевой картой (можно поставить еще если будет необходимо). Подскажите пожалуйста пример для решения поставленой задачи. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 14 июня, 2009 · Жалоба Опишу задачу несколько иначе. Есть сеть, шлюз в интернет - маршрутизатор Cisco (на маршрутизаторе работает NAT). Канал 4Мбит/с. Задача: раздавать интернет разным группам пользователей с разной скоростью.Есть незадействованый сервер с одной сетевой картой (можно поставить еще если будет необходимо). Подскажите пожалуйста пример для решения поставленой задачи. По две трубы на группу, и никаких проблем. На кой там динамика ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 14 июня, 2009 (изменено) · Жалоба LuckySB Ваш пример не заработал и его пришлось немного переделать. Сделал так: ipfw -f flush ipfw -f pipe flush ipfw -f queue flush ipfw table 1 add 192.168.1.2 #User1 ipfw table 1 add 192.168.1.7 #User2 ipfw pipe 102 config bw 64Kbit/s ipfw queue 102 config mask src-ip 0xffffffff pipe 102 ipfw pipe 103 config bw 64Kbit/s ipfw queue 103 config mask dst-ip 0xffffffff pipe 103 ipfw add queue 102 ip from "table(1)" to any out xmit re0 ipfw add queue 103 all from any to "table(1)" in recv re0 Теперь исходящую режет отлично получается 59Kbit/s по тестам http://www.speedtest.net/ Как теперь добиться чтобы и входящую тоже ограничивал? Значение net.inet.ip.fw.one_pass нужно менять на ноль? Заранее спасибо. Изменено 14 июня, 2009 пользователем Linozh Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 14 июня, 2009 · Жалоба Решил таки эту задачу. Но пришлось разориться еще на одну сетевую карту. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 14 июня, 2009 · Жалоба Ажно целый доллар стоит... голодать теперь придется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Linozh Опубликовано 15 июня, 2009 · Жалоба Ажно целый доллар стоит... голодать теперь придется. Даже 2 :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lucky SB Опубликовано 15 июня, 2009 · Жалоба По две трубы на группу, и никаких проблем. На кой там динамика ? У меня в одной небольшой трубе tcp-потоки не распределялись поровну. Ситуация был а - кто раньше встал - тот и качает. А с динамическими очередями все красиво и мгновенно делиться . Решил таки эту задачу. Но пришлось разориться еще на одну сетевую карту. Т.е. эта машина у тебя сбоку стояла ? мдааа. Учи матчасть про роутинг Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...