Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [FAQ] Ограничение скорости для клиентов на Ubuntu-Server (htb.init)  (Прочитано 259915 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Решено.
Насчёт кеша - я был прав. В скрипте htb есть строчка:
HTB_CACHE=${HTB_CACHE:-/var/cache/htb.init}
Вот там и лежат настройки. Смысл? Хз...
Факт в том, что после удаления /var/cache/htb.init и последующего запуска скрипта всё стало на свои места :coolsmiley:

Оффлайн Dimiurg

  • Новичок
  • *
  • Сообщений: 30
  • ХАЦ
    • Просмотр профиля
интернет у меня ppp0
клиенты ppp1, ppp2  и т.д.
как мне создать правило чтоб скорость между ними динамически делилась? ведь колучается у каждого клиента свое устройство со своей айпишкой и для htb правила мы создаем по устройствам   :o
Acer Eee PC 1201HA

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
интернет у меня ppp0
клиенты ppp1, ppp2  и т.д.
как мне создать правило чтоб скорость между ними динамически делилась? ведь колучается у каждого клиента свое устройство со своей айпишкой и для htb правила мы создаем по устройствам   :o
Смотреть в сторону IMQ.
http://www.linuximq.net/
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Mixasik

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Есть канал: Местный 50Мбит, заграница 30.
Надо отдельно настроить htb.init чтобы по отдельности резать заграничный трафик для клиентов и местный. Местный и заграничный маркируются через mark iptables.
Есть какие идеи?

Даже так, надо одному клиенту дать гарантированую скорость на загран, а остальным оставшийся канал, А местный вапше заризать ненадо.

Чего никто незнает как такое реализовать? :o

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Чего никто незнает как такое реализовать? :o

А в чём проблема? Пару страниц назад всё описано. Вот ещё по этому вопросу - http://sudouser.com/nastrojka-ogranicheniya-i-raspredeleniya-kanala-htb-shaper.html

Оффлайн Mixasik

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля

А в чём проблема? Пару страниц назад всё описано. Вот ещё по этому вопросу - http://sudouser.com/nastrojka-ogranicheniya-i-raspredeleniya-kanala-htb-shaper.html

Еслиб внимателние прочитал, то проблема в том что в одном канале, 2 разные скорости, на месный интернет и отдельный на заграницу, скорости в которых разные. И резать их таким образом как описано выше, нет возможности, так как режица конкретно канал.

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Местный и заграничный маркируются через mark iptables.

Так и выставь отдельные правила для отдельных маркеров. К примеру для пользователя 1 создаёшь два файла: eth0-2:110 и eth0-2:111. Один для месного ограничения, второй - для заграницы. Естественно, и маркироваться соответствующие пакеты должны по-разному.

интернет у меня ppp0
клиенты ppp1, ppp2  и т.д.
как мне создать правило чтоб скорость между ними динамически делилась? ведь колучается у каждого клиента свое устройство со своей айпишкой и для htb правила мы создаем по устройствам   :o

Что-то, не совсем понятно... Я так понял, у тебя ppp1, ppp2  и т.д. - виртуальные интерфейсы. Тогда htb правила создавай на физический интерфейс, на котором висят виртуальные. Правда, маркировать пакеты придётся...

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Mixasik местный и заграничный через один внешний интерфей ходи?

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 104
  • Administrator
    • Просмотр профиля
TrEK, интерестную тему ты поднял :coolsmiley:. Сам прошел через все эти проблемы, описанные тобой в этом посте. Поэтому позволю себе подвести промежуточные итоги... В процессе обсуждения этой темы возникли вопросы следующего характера:
  • Как огранизовать нарезку канала для определенного диапазона IP-адресов при использовании NAT или Squid?
  • Какие дисциплины лучше использовать для распределения канала?
  • Как ограничить скорость для VPN-клиентов?
  • Есть ли удобный модуль настройки traffic shaping и iptables через Web-интерфейс?
  • Возможно ли огранизовать синхронный канал?
  Начну с последнего... Возможно! И делается только по средствам утилит tc и iptables, т.к. не в CBQ.init и не в HTB.init такой возможности не имеется (во всяком случае я ее не нашел :-\). Теперь по порядку. Отмечу, что изучаемые усердно TrEK'ом политики являются ничем иным, как скриптами, генерирующими набор правил для tc и написаны лишь для того, чтобы упростить работу с данной утилитой. Соответственно, при использовании NAT'а, логичнее всего использовать эти скрипты в связке с Internet sharing'ом на определенные IP-адреса, чтобы не возникало вопросов с остатками канала ;). Для большей уверенности в собственной защищенности почитайте эту статью. Вот статья, которая мне помогла в решении первого и, самое главное, последнего вопроса. В случае со Squid'ом, логичнее всего использовать описанный выше метод. Но в таком случае не возможно реализовать синхронный канал! Мои эксперименты по заварачиванию исходящего трафика в трубы сквида закончились неудачей (если кому удавался сей фокус, отпишитесь плз).
  Ответом на второй вопрос послужит эта статья. Я лишь могу отметить, что дисциплина обработки очереди CBQ является более сложной в настройке и требует глубоких знаний от системного администратора. Но позоволяет производить более тонкую настройку распределения разных видов трафика, т.е. резать скорость по разным портам (грубо говоря... :)). HTB проще и не требует классификации по виду трафика, хотя обе дисциплины настраиваются практически аналогично...
  Для VPN-клиентов также приминимы описанные выше дисциплины. Отличие состоит лишь в том, что при создании конфигурационных файлов, лежащих в /etc/sysconfig/htb для HTB необходимо назвать их в соответствии с поднятым VPN-сервером интерфейсом. Например: рррХ, рррХ-2.root, pppX-2:05.default, pppX-2:06.lanload, pppX-2:07.client и т.д. Для real-админов можно сразу настроить tc, как написано тут.
  Есть несколько вариантов:
  • Webmin и устанавлемые под него модули webmin-cbq и webmin-htb. Инструкция по установке webmin-htb тут (не забудьте угостить автора пивом ;)). Инструкцию по установке webmin-cbq потерял... Но есть один недостаток. При помощи лишь этих модулей нельзя настроить синхронный канал. придется подправить ручками конфиги, как указано в статье и вручную, но в модуле "Межсетевой экран (firewall)" вебмина добавить правила маркировки пакетов и заворачивания их в трубы. Со встроенным модулем "Прокси-сервер Squid" в вебмин "Delay Pools" настраивается в два клика.
  • WebCBQ Bandwidth Manager, который я нашел в процессе написание поста :).
  • MasterShaper, который я устанавил, запустил, но не смог применить сгенерированные им правила. Инструкция по установке в архиве с программой. Достоинства: есть возможность задания разных дисциплин, доступ по паролю, графическое отображение загрузки канала в виде графика, пошаговая компиляция правил для tc с возможностью коррекции (не плохо, как для ОпенСорс ;)). Недостатки: нет возможности создавать каналы более чем на двух интерфейсах (входящий/исходящий), в инструкции нет указаний с какими правами должен работать мастер (мне не удавалось применить правила. У кого получилось, отпишитесь плз). Вот типичная настройка для использования данной софтины.
« Последнее редактирование: 08 Октября 2010, 14:16:41 от Sliver »

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
А мне CBQ понравилась. Вот как я настраивал http://cybersity.homelinux.net/index.php?option=com_content&task=view&id=596&Itemid=45

Оффлайн Mixasik

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Mixasik местный и заграничный через один внешний интерфей ходи?

Да, через один

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Ну тогда
iptables -t mangle -A FORWARD -s локальный ip  -d местрая сеть  -j MARK --set-mark 1002
iptables -t mangle -A FORWARD -s локальный ip  -d локальный ip  -j MARK --set-mark 1003

Как маркировать два ip? Например 192.168.1.2 и 192.168.1.5 чтоб для них было одно правило. Тоесть скорость отдавала например 256 кбит на двоих.

Оффлайн Stiff

  • Активист
  • *
  • Сообщений: 677
    • Просмотр профиля
Как маркировать два ip? Например 192.168.1.2 и 192.168.1.5 чтоб для них было одно правило. Тоесть скорость отдавала например 256 кбит на двоих.
Не вижу проблем. создай 2 правила по одному на кажный ip, в них укажи одинаковую метку.

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Тоесть
iptables -t mangle -A FORWARD -s 192.168.1.2 -j MARK --set-mark 1002
и
iptables -t mangle -A FORWARD -s 192.168.1.5 -j MARK --set-mark 1002
iptables на это нормально отреагирует

Оффлайн Mixasik

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Тоесть
iptables -t mangle -A FORWARD -s 192.168.1.2 -j MARK --set-mark 1002
и
iptables -t mangle -A FORWARD -s 192.168.1.5 -j MARK --set-mark 1002
iptables на это нормально отреагирует

Вполне, тольно если у тебя нат то надо использовать
iptables -t mangle -A PREROUTING -s 192.168.1.2 -j MARK --set-mark 1002

Кстати, никто несталкивался с реалмами в iproute2?

 

Страница сгенерирована за 0.055 секунд. Запросов: 22.