photon Опубликовано 4 апреля, 2012 (изменено) · Жалоба и почему кстати блокируется все что не в шейпе? Потому что это планировалось для простой конфигурации, где все можно сделать только средствами tc. Кстати говоря, если шейпить в IPoE нужно только адреса из одной подсети /16, то лучше использовать filter_method = flow в sc.conf. Чтобы все IP не блокировались по умолчанию для filter_method = u32, надо удалить из скрипта такой код: # block all other traffic $TC->( "filter add dev $dev parent 1:0 protocol ip pref $pref_default ". 'u32 match u32 0 0 at 0 police mtu 1 action drop' ); кому дать добро на проход у нас правила в иптайбл пишутся. А почему не в таблицу ipset? Изменено 4 апреля, 2012 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 5 апреля, 2012 · Жалоба А почему не в таблицу ipset? как то пошло от инструкции к биллингу (УТМ) пока устраивало все и проблем не возникало. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 6 апреля, 2012 (изменено) · Жалоба Блокирование каждого IP -- как минимум одно правило. Если число заблокированных превысит несколько сотен, то это уже может привести к заметным тормозам при обходе правил, и появляется смысл пользоваться ipset. UTM в свое время мне запомнился идиотскими скомпилированными в бинарники Perl-скриптами и глючным интерфейсом на Java. Я думаю, такое могли написать только полные идиоты. Изменено 6 апреля, 2012 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 6 апреля, 2012 · Жалоба Все может быть, боремся костылями :) правил на блокировку у нас нет, все что не разрешено блокируется, т.е. у нас по умолчанию все заблочено и только разрешающие правила. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 15 апреля, 2012 · Жалоба немного прооптимизировались, запихнули все разрешенные ИП в ipset в iptables осталось только 2 правила от них. из скрипта удалил блокировку "всего остального" по ИПОЕ планируем раздавать адреса из 172.20.хх.хх Кстати, если из скрипта убрал блокировку "всего остального" надо тогда добавлять адрес самого сервера и внешнего? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 15 апреля, 2012 · Жалоба Кстати, если из скрипта убрал блокировку "всего остального" надо тогда добавлять адрес самого сервера и внешнего? Не надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 18 апреля, 2012 · Жалоба что то опять перестало работать. База вроде как уже создана, делаю: # sc dbadd 10.10.10.6 1Mbit# sc sync # sc load RTNETLINK answers: File exists Command failed (null):1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 18 апреля, 2012 · Жалоба Вы неправильно поняли смысл команд. Команда load делает полную загрузку всех правил, включая создание корневых дисциплин, хэш-фильтров и классов для всех IP-адресов из базы. Ее нужно выполнять один раз при старте шейпера. После того, как правила загружены, нужно делать синхронизацию с базой (команда sync), которая меняет только краевые классы и фильтры. Кроме того, скрипт не обязательно должен иметь собственную локальную базу, как прописано в настройках по умолчанию. Можно изменить конфигурационный файл и читать прямо из SQL-базы биллинга, которая крутится на отдельной машине. # один раз во время загрузки или после полного удаления всех правил командой sc stop sc load (или sc start) # в базу биллинга внесены изменения сторонними программами или с помощью sc sc dbadd 10.10.10.6 1Mibit sc dbchange 10.10.10.1 2Mibit ... # периодически запускается на шейпере для синхронизации с базой sc sync Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 18 апреля, 2012 · Жалоба спасибо за разъяснение :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 21 апреля, 2012 (изменено) · Жалоба делаю так. sc start в базу был до этого добавлен адрес 10.10.10.6 1024Kbit ограничение сработало, правда скорость варьировалась в районе 80-90кб/с иногда прыгает до 100/110кб 14:31:10 (88.06 KB/s) - `MPlayer-1.0-alt16.pre5.M24.1.src.rpm' сохранён [5526656/5526656] качал с яндекса делаю sc del 10.10.10.6 ограничение снимается скорость поднимается до положенных 10мб/с дальше делаю sc sync и ограничение возвращается обратно. Т.е. должно было обновить базу и удалить из нее адрес 10.10.10.6 а он его от туда опять только прочитал? делаю sc add 172.20.3.1 1024Kbit правило срабатывает, по яндекс мерке показывает на ход 998кбит на выход без ограничения. опять делаю sc sync это правило удаляется и возвращается 10.10.10.6 только Что то я опять не допонял :( Изменено 21 апреля, 2012 пользователем Cramac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Gunner Опубликовано 21 апреля, 2012 · Жалоба про скорость надо курить параметр бурст. синх просто правила строит в зависимости от того что занесено в базу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 21 апреля, 2012 · Жалоба а add/del разве не добавляет и удаляет из базы? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 22 апреля, 2012 (изменено) · Жалоба а add/del разве не добавляет и удаляет из базы? add/del работают с правилами. dbadd/dbdel -- с базой. Чтобы команды add/del вносили изменения одновременно и в правила, и в базу, нужно использовать ключ -j или поставить в конфиге joint = 1. Изменено 22 апреля, 2012 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Cramac Опубликовано 22 апреля, 2012 · Жалоба еще раз спасибо. А как быть со скоростью? проверял правда на 1мбите только (яндекс мерилка показывает около 990) а скачка варьируется 70-80кб/с Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 22 апреля, 2012 · Жалоба Нужно использовать другие единицы, которые пишутся через i: kibit (1024 bit) и mibit (1024 kibit) и вместо kbit (1000 bit) и mbit (1000 kbit). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sx-sqlx Опубликовано 30 июня, 2012 · Жалоба При запуске фейлится.Не пойму почему... sudo sc start Can't exec "/usr/local/sbin/tc": Нет такого файла или каталога at /usr/local/sbin/sc line 898. sc: unable to create pipe for /usr/local/sbin/tc at /usr/local/sbin/sc line 645 main::log_croak('unable to create pipe for /usr/local/sbin/tc') called at /usr/local/sbin/sc line 898 main::tc_batch_start() called at /usr/local/sbin/sc line 521 main::__ANON__() called at /usr/local/sbin/sc line 1909 main::cmd_load() called at /usr/local/sbin/sc line 404 main::main('start') called at /usr/local/sbin/sc line 370 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 30 июня, 2012 · Жалоба дык вроде же даже по русски пишет Can't exec "/usr/local/sbin/tc": Нет такого файла или каталога Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sx-sqlx Опубликовано 30 июня, 2012 · Жалоба Т.е. просто cp /sbin/tc. /usr/local/sbin/tc? Думаю не совсем в этом трабл. Хоть в perle я не силен,меня смущает больше вот это main::tc_batch_start() called at /usr/local/sbin/sc line 521 main::__ANON__() called at /usr/local/sbin/sc line 1909 main::cmd_load() called at /usr/local/sbin/sc line 404 main::main('start') called at /usr/local/sbin/sc line 370 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sx-sqlx Опубликовано 30 июня, 2012 (изменено) · Жалоба Блин,собственно так и произошло Порядок действий был такой: sudo cp /sbin/tc /usr/local/sbin/tc sudo sc start После этого инет грохнулся.(Сижу под виндой на работе).При чем с шлюза пинги не проходили.=( Сейчас попробую включить запись в syslog,посмотрим что выйдет. ... syslog молчит. Изменено 30 июня, 2012 пользователем sx-sqlx Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 30 июня, 2012 · Жалоба Думаю не совсем в этом трабл.Хоть в perle я не силен,меня смущает больше вот это В программировании не силен, но на скоко я понимаю в медицине, оно тебе показало стек вызовов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 30 июня, 2012 · Жалоба После этого инет грохнулся. Манул читали? Бидэ создали? Мясо ипы/дапазоны нарезали? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sx-sqlx Опубликовано 30 июня, 2012 (изменено) · Жалоба Да,конечно читал.Как всегда в первую очередь. # sc dbcreate # sc dbadd 172.16.0.1 10Mibit # sc dbadd 172.16.0.2 20Mibit Мясо ипы/дапазоны нарезали? Вот об этом можно поподробнее?Что имеется в виду?Изначально все ипы заблочены?Если так,то по сути всегда должен быть создал default класс/очередь/фильтр для тех кто не относится ни к одному классу,или я не прав? Диапазоны указывал только в конфиге 192.168.1.0/24 И еще заранее 1 вопрос: Iptables у меня уже настроен был до этого,подхватит ли тулза его конфиг? И что мне нужно будет добавить?Раскомментировать #iptables /usr/local/sbin/iptables в sc.conf?Или еще что то? Изменено 30 июня, 2012 пользователем sx-sqlx Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 30 июня, 2012 · Жалоба Судя по сообщениям об ошибках, нужно просто указать правильный путь до tc. Iptables у меня уже настроен был до этого,подхватит ли тулза его конфиг? Нет, другие правила iptables не подхватятся. iptables для шейпера по большому счету не нужен. Если используется filter_method = u32, все делается средствами tc. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sx-sqlx Опубликовано 30 июня, 2012 · Жалоба А все ипы по дефолту не заблочены случайно? Судя по сообщениям об ошибках, нужно просто указать правильный путь до tc. Это я уже исправил,теперь просто когда стартую sc обрубается инетернет =( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 1 июля, 2012 (изменено) · Жалоба А все ипы по дефолту не заблочены случайно? Да, блокируются все IP, для которых не созданы правила, т.е. если их не было в базе на момент выполнения команд load или sync. Изменено 1 июля, 2012 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...