Автор Тема: pf и ограничение полосы юзерам.  (Прочитано 4006 раз)

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

Оффлайн defiler

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Уфа
пока в общем, дальше перейдем к конкретике, если дойдет. Имеем машинку с фряхой и pf на борту. Нужно иметь возможность запиливать юзерам входящую полосу. Т.е. от провайдера до шлюза имеем полосу в 5Mbps, нужно юзерам раздавать кому-то конкретно не более 50Kbps, кому-то не более 1Mbps... идея в чем: очереди работают, но работают они на исходящий траффик, и оно, в принципе, верно. Схема работы: Юзер отправляет запрос шлюзу для выхода на внешку, траффик натится, уходит. Вот на этом моменте мы можем запилить исходящий траффик от юзера до шлюза - огранизовав очередь на локальном интерфейсе и pf с этой же скоростью будет отдавать пакетики наружу...
т.е. конструкция
pass out on $ext_if from $allow_usr to any queue high
- работать не будет, т.к. траффик уже будет завернут NAT'ом и обезличен.
Для этого при использовании ALTQ+NAT нужно применять вышеизложенную конструкцию, т.е. очереди организуем на Внешнем интерфейсе, а применяем их на локальном, т.е.
pass in on $int_if proto tcp from $allow_usr to any queue ( high ) modulate state

а как быть с входящим траффиком? да, я могу, конечно, запиливать скорость от шлюза до юзера по внутреннему интерфейсу, но на сам шлюз траффик будет приходить занимая "всю" полосу. как вот тут? или я что-то недопонимаю?

Оффлайн defiler

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Уфа
pf и ограничение полосы юзерам.
« Ответ #1 : 22 июня 2012, 08:56:49 »
К сожалению, вчера не смог добраться до pf, только что опоробол. Последние новости с полей: Все работает Шейпится траффик нормально. Сильно глубоко не копал, но отпишу сейчас что и как.
1. Шейпить мы можем ТОЛЬКО ИСХОДЯЩИЙ траффик. Что это значит? Чтобы ограничить скорость скорость ЗАКАЧИВАНИЯ (upload) в интернет от пользователя, мы должны ограничивать ВХОДЯЩУЮ скорость от пользователя на ЛОКАЛЬНЫЙ интерфейс шлюза, но очередь создавать на ВНЕШНЕМ интерфейсе шлюза, т.е.
создаем очередь на внешнем интерфейсе
altq on $wan cbq bandwidth 1000Kb queue {low}
queue low bandwidth 50% priority 2 cbq ( default )
далее ловим траффик от нужного пользователя на локальном интерфейсе и применяем к нему очередь
pass in on $lan from 10.0.0.2 to any queue (low) modulate state

2. Далее пилим скорость скачивания (download).
Создаем очередь на ЛОКАЛЬНОМ интерфейсе, потому как мы опять таки пилим скорость ИСХОДЯЩУЮ от шлюза до клиента.
altq on $lan cbq bandwidth 5000Kb queue {llow}
queue llow bandwidth 90% priority 2 cbq ( default )

и создаем правило
pass in on $lan from $lan:network to $lan queue (llow) modulate state

Все это опробовано, скорость замерена на вышестоящем шлюзе. Шейпится нормально. Но тут есть другая проблема: если данный шлюз является не только шлюзом, но еще и, скажем, файлопомойкой, то тут вы столкнетесь с проблемой, а именно: локальный траффик тоже будет шейпится. В моем случае данный вопрос не стоит, но! Решение есть: теггировать траффик. Кому интересно - вот отличная статья

Оффлайн myst

  • Постоялец
  • ***
  • Сообщений: 372
  • Рейтинг: 8
  • Пол: Мужской
    • mistiq.master@gmail.com
    • mistiq.master
    • Просмотр профиля
  • Откуда: Владивосток
pf и ограничение полосы юзерам.
« Ответ #2 : 24 июня 2012, 05:24:26 »
1. Шейпить мы можем ТОЛЬКО ИСХОДЯЩИЙ траффик. Что это значит?
Именно то и означает. Шейпить можно только ИСХОДЯЩИЙ трафик.

Предположим есть 2 сети (А и Б) отделенные шлюзом с интерфейсом 10 мегабит:
Хост А запрашивает какие либо данные у хоста Б. Хост Б обладая интерфейсом 10 мегабит отдает эти данные со скоростью 10 мегабит. Интерфейс шлюза утилизирован на 100%. И какие бы политики шейпинга там не приминялись, они не отменят факта утилизации входящего интерфейса.  И хотя для протокола TCP существуют всякие припарки типа RFC 5681/RFC 2581/RFC 879 итд, на деле, они мало эффективны. Что же касаемо UDP то и того нету...

Посему шейпить имеет смысл только генерируемый нами трафик читай исходящий. С входящим полуится только полисить да и то с сомнительной степенью эффективностью.
Вобщем подытоживая: Шейпинг на входящих интерфейсах работать не будет никогда.
« Последнее редактирование: 24 июня 2012, 05:29:51 от myst »
٩(●̮̮̃•̃)۶

Оффлайн defiler

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Уфа
pf и ограничение полосы юзерам.
« Ответ #3 : 26 июня 2012, 14:14:08 »
Вобщем подытоживая: Шейпинг на входящих интерфейсах работать не будет никогда.

Я же написал - измерения сделаны на вышестоящем роутере, все нормально шейпится. Тот же керио умеет шейпить траффик для юзеров... я поэтому в начале и спрашивал, все молчали... я был того же мнения, что входящий траффик по сути нельзя запилить, но выходит как-то так, что он запилен...
« Последнее редактирование: 26 июня 2012, 14:48:11 от defiler »

Оффлайн myst

  • Постоялец
  • ***
  • Сообщений: 372
  • Рейтинг: 8
  • Пол: Мужской
    • mistiq.master@gmail.com
    • mistiq.master
    • Просмотр профиля
  • Откуда: Владивосток
pf и ограничение полосы юзерам.
« Ответ #4 : 03 июля 2012, 01:53:05 »
Вобщем подытоживая: Шейпинг на входящих интерфейсах работать не будет никогда.

Я же написал - измерения сделаны на вышестоящем роутере, все нормально шейпится. Тот же керио умеет шейпить траффик для юзеров... я поэтому в начале и спрашивал, все молчали... я был того же мнения, что входящий траффик по сути нельзя запилить, но выходит как-то так, что он запилен...
Ответь на вопрос какой трафик запилен, входящий или ИСХОДЯЩИЙ? Затем долго думай что такое шейпер и чем он отличается от полисера.
Ещё раз, курсивом: Шейпер никогда, нигде не работает с входящим трафиком. Это идеологически и технически невозможно. Входящий трафик можно только полисить. Распечатай и повесь на стену.
« Последнее редактирование: 03 июля 2012, 01:58:34 от myst »
٩(●̮̮̃•̃)۶

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
pf и ограничение полосы юзерам.
« Ответ #5 : 03 июля 2012, 03:14:19 »
Для ознакомления
http://www.cisco.com/en/US/tech/tk543/tk545/technologies_tech_note09186a00800a3a25.shtml
Касаемо шейпинга входящего, у джунов есть вот такая дока
http://www.juniper.net/techpubs/en_US/junos12.1/topics/reference/configuration-statement/input-shaping-rate-edit-cos-logical.html
или я что-то неправильно понимаю?
« Последнее редактирование: 03 июля 2012, 03:21:45 от FessAectan »
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн defiler

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Уфа
pf и ограничение полосы юзерам.
« Ответ #6 : 06 июля 2012, 11:20:12 »
Ещё раз, курсивом: Шейпер никогда, нигде не работает с входящим трафиком. Это идеологически и технически невозможно. Входящий трафик можно только полисить. Распечатай и повесь на стену.

ладно-ладно, не ругайся. я просто не знал понятия полисинг. теперь знаю. признателен!