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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Для исходящего маркировал MARK=10XX и вешал на ppp+ интерфейсы, правило:
iptables -t mangle -A FORWARD -d 192.168.1.XX -j MARK --set-mark 10XX
Тут явно трафик с локальным не пересекается. Скорость заливки на фтп не режется относительно правил исходящего.
Не понятен один нюанс относительно направления. Ведь если в правиле -d 192.168.1.XX то значит: "Пакет идет в направлении LAN" Я не ошибаюсь? Так вот эти марки висят на ppp+ и скорость на отдачу регулируется...

Вы уверены, что это правило работает? Оно может работать только в том случае, если IP модема 192.168.1.XX

Для входящего извне трафика в конфигурационных файлах пользователей я использовал RULE=192.168.1.XXX

Согласен.

Хотя в моем понимании -s 192.168.1.XX это источник...

Это источник. Точнее, это IP-адрес хоста, который отсылает пакет.

Если я создаю правило:
iptables -t mangle -A FORWARD -s 192.168.1.XX -j MARK --set-mark 20XX
И конфигурационные файлы основываю на них (марках) то не срабатывает.

И не сработает.
Если надо ограничивать транзитный траф -

iptables -t mangle -A FORWARD -d 192.168.1.XX -j MARK --set-mark 20XX

Если надо ограничивать трафик, который отдаёт шлюз -

iptables -t mangle -A OUTPUT -d 192.168.1.XX -j MARK --set-mark 20XX

Как вариант - можно промаркировать пакеты в цепочке POSTROUTING, но тогда в правилах нужно указывать не только адрес назначения, но и дополнительные условия (или источник, или порты, или протокол).

Попробуйте разобратся со схемой полтора поста назад. Её понимание отбросит много лишних вопросов.

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Ограничивать трафик со шлюза (от локального приложения) не нужно. Только транзит.
Решил поступить согласно схеме, используя цепочку "мангл форвард".
-t mangle -A FORWARD -d 192.168.1.XX в LAN
 
Маркирую в -t mangle -A FORWARD -d 192.168.1.XX пакет входящий.

Так вот. Переделал правила для eth0 (вообще убрал остальные правила для других интерфейсов, оставил только eth0) с RULE на MARK так же как до этого делал для ррр+. Используя правило -t mangle -A FORWARD -d 192.168.1.XX По идеи локальный трафик затрагиваться не должен, но результата это не дало... Шейпер не срабатывает в данном случае вовсе.
И так:
iptables -t mangle -A FORWARD -i ppp+ -o eth0 -d 192.168.1.XX -j MARK --set-mark 10XX
Тоже не ровняет входящий в LAN.
************************************************
Микро озарение! Если я использую правила в iptables для транзита а на шлюзе squid то весь внешний трафик отловить через эту цепочку не получится.
Все, тупик.
« Последнее редактирование: 06 Ноября 2011, 12:15:08 от ivsatel »

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Может и сквид виноват... Я уже сквидом не пользуюсь.
У меня рабочий вариант выглядит так
iptables -t mangle -A FORWARD -o eth1 -s ! 192.168.2.0/24 -d 192.168.2.29 -j MARK --set-mark 29
iptables -t mangle -A FORWARD -o eth1 -s ! 192.168.2.0/24 -d 192.168.2.0/24 -j RETURN
iptables -A FORWARD -p tcp -i eth1 -s 192.168.2.29 -m multiport --dport 80,8000,443,5190,25,465,110,995,5222 -j ACCEPT
iptables -A FORWARD -p tcp -o eth1 -d 192.168.2.29 -m multiport --sport 80,8000,443,5190,25,465,110,995,5222 -j ACCEPT
+ SNAT или MASQUERADE
файл /etc/sysconfig/htb/eth1-2:229.l29
BURST=50Kb
RATE=150Kbit
CEIL=1500Kbit
LEAF=sfq
PRIO=1
MARK=29

Всё работает.
« Последнее редактирование: 07 Ноября 2011, 09:47:55 от InkVisitor »

Оффлайн vovanrus

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
напишите пожалуйста простой пример ограничения входящей и исходящей скорости интернета для определенного ip и порт c помощью tc. Толкового примера не могу найти в гугле, а сам в tc не силен. Заранее спасибо!

Оффлайн _Vadim_

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Добрый День!
Есть вопросик.
Имеется домашний сервер на Ubuntu Server 10.04, два физических ethernet интерфейса, на нем NAT для выхода домашних компов/устройств в инет, файловый сервер SAMBA(только для локалки), торрент-клиент RTorrent.
  Каким способом можно настроить приоритезацию интернетовского трафика от локальных машин над интернетовским трафиком самого сервера (RTorrent-а).
Мои идеи: почитав форум пришол к выходу, что установив шейпер на интерфейс который смотрит в локалку, абсолютно ни чем мне не поможет, для зажимания RTorrent-а.
  Пропатчить ядро для поддержки IMQ, сделать перенаправление с интерфейса который смотрит на провайдера на виртуальное устройство IMQ, на него уже повесить шейпер для ужимания RTorrent-а. Будет ли этот вариант работать так как мне надо.
 Или предложите другой возможный вариант, может возможно все это дело реализовать проще.
 Может вообще есть какие то утилиты или скрыпты, которые могут автоматом менять настройки самого RTorrent-а, когда идет трафик от локальных клиентов в интернет.
Заранее спасибо за ответ!

« Последнее редактирование: 24 Ноября 2011, 14:17:58 от _Vadim_ »

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
InkVisitor
Получилось! Удалил squid

Пересоздал топологию правил, добавил eth0-2:10.lan c содержимым:

RATE=80000Kbit
LEAF=sfq
MARK=99
PRIO=2

Далее eth0-2:20.www

RATE=8900Kbit
CEIL=10000Kbit
LEAF=sfq
PRIO=1

Далее клиентов eth0-2:20:20XX:

RATE=512Kbit
CEIL=10000Kbit
LEAF=sfq
MARK=1XX
PRIO=1

Для транзитного поставил правило:
iptables -t mangle -A FORWARD -d 192.168.1.XX -j MARK --set-mark 1XX
А для FTP (локальный трафик):
iptables -t mangle -A OUTPUT -d 192.168.1.0/24 -j MARK --set-mark 99
« Последнее редактирование: 26 Ноября 2011, 11:31:27 от ivsatel »

Оффлайн _Vadim_

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Добрый День!
Есть вопросик.
Имеется домашний сервер на Ubuntu Server 10.04, два физических ethernet интерфейса, на нем NAT для выхода домашних компов/устройств в инет, файловый сервер SAMBA(только для локалки), торрент-клиент RTorrent.
  Каким способом можно настроить приоритезацию интернетовского трафика от локальных машин над интернетовским трафиком самого сервера (RTorrent-а).
Мои идеи: почитав форум пришол к выходу, что установив шейпер на интерфейс который смотрит в локалку, абсолютно ни чем мне не поможет, для зажимания RTorrent-а.
  Пропатчить ядро для поддержки IMQ, сделать перенаправление с интерфейса который смотрит на провайдера на виртуальное устройство IMQ, на него уже повесить шейпер для ужимания RTorrent-а. Будет ли этот вариант работать так как мне надо.
 Или предложите другой возможный вариант, может возможно все это дело реализовать проще.
 Может вообще есть какие то утилиты или скрыпты, которые могут автоматом менять настройки самого RTorrent-а, когда идет трафик от локальных клиентов в интернет.
Заранее спасибо за ответ!
Мне кто-то ответит или ветка уже мертвая?

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Мне кто-то ответит или ветка уже мертвая?

Ветка живая. А отсутствие ответов, кроме "мертвизны" ветки, может ещё означать незнание оных.

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Не покидает сомнение по поводу честности деления канала. На предмет включенных качалок (торрент качалок).
К примеру если один из пяти клиентов включил торрент, достанется ли остальным положенная им ширина канала?
Исходя из 10 000 / 5 = 2 000
Или я неправильно понимаю принцип действия шейпера?

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
В НТВ делится не точно, а ОТ и ДО. Насчёт торрента - проверьте и нам скажите  :coolsmiley: . Я на работе торрент вообще зарубил. Походу, НТВ просто не успевает следить за столькими подключениями...

Оффлайн byte916

  • Участник
  • *
  • Сообщений: 185
    • Просмотр профиля
Всем добрый день
Есть ли способы ограничивать трафик при превышении определенного порога скачанного(или розданного или суммарного трафика)?
Ubuntu 14.04 + MATE

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Есть ли способы ограничивать трафик при превышении определенного порога скачанного(или розданного или суммарного трафика)?
Это Биллинг http://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
В НТВ делится не точно, а ОТ и ДО. Насчёт торрента - проверьте и нам скажите  :coolsmiley: . Я на работе торрент вообще зарубил. Походу, НТВ просто не успевает следить за столькими подключениями...
Любой провайдер ограничивает количество соединений с одного ip, особенно физическому лицу. Для частичного решения проблемы в микротике ставят PCQ, который как раз и распределяет нагрузку не только по ширине канала, но и по количеству соединений.
Подробности тут
« Последнее редактирование: 27 Декабря 2011, 20:09:07 от Nesmit »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Любой провайдер ограничивает количество соединений с одного ip, особенно физическому лицу.
Ой ли?...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Ой ли?...
Уговорил, не все. Но те кто ограничивает, правы. Не зря ж в винде сделали 100 соединений =)

 

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