Pfsense 2.0 traffic shaper вопросы
-
Схема прохождения трафика в PF (как я ее понял).
Здесь узлы NAT, Filter, Queue Tagging на конкретных интерфейсах показаны условно. На самом деле список правил один общий.
-
Набросал схему прохождения трафика в PF (как я ее понял).
Не соответствует http://homepage.mac.com/quension/pf/flow.png. Главное несоответствие в контексте шейпера - очереди ALTQ работают на выходе из PF (т.е при выходе из очереди пакет уже никак не обрабатывается PF). Как я понимаю структуру пфсенса (во freebsd вариантов больше), с выхода очереди пакет попадает на IPFW (если необходимо) и далее на отправку транспортным протоколом интерфейса.
В контексте фильтра свойство in имеет пакет принятый роутером через этот интерфейс, а out - покидающий роутер через этот интерфейс. Акцентирую: принятый/покидающий роутер.По-моему путь пакета сквозь роутер на картинке упрощённо должен выглядеть так:
int LAN -> in filter -> processing -> out filter -> shaper queue -> int WAN -
Набросал схему прохождения трафика в PF (как я ее понял).
Не соответствует http://homepage.mac.com/quension/pf/flow.png. Главное несоответствие в контексте шейпера - очереди ALTQ работают на выходе из PF (т.е при выходе из очереди пакет уже никак не обрабатывается PF). Как я понимаю структуру пфсенса (во freebsd вариантов больше), с выхода очереди пакет попадает на IPFW (если необходимо) и далее на отправку транспортным протоколом интерфейса.
В контексте фильтра свойство in имеет пакет принятый роутером через этот интерфейс, а out - покидающий роутер через этот интерфейс. Акцентирую: принятый/покидающий роутер.In/Out применимы в контексте интерфейса, а не роутера. Пакет пришел на интерфейс (IN) и покинул его (Out). Далее системой роутится на другой интерфейс, на котором тоже пришел (In) / ушел (Out).
-
In/Out применимы в контексте интерфейса, а не роутера. Пакет пришел на интерфейс (IN) и покинул его (Out). Далее системой роутится на другой интерфейс, на котором тоже пришел (In) / ушел (Out).
Вот в этом и основной затык в понимании любых фильтров. Что значит "пакет покинул интерфейс"? Вот если вразумительно ответить себе на этот вопрос придёт и понимание.
-
Набросал схему прохождения трафика в PF (как я ее понял).
Не соответствует http://homepage.mac.com/quension/pf/flow.png. Главное несоответствие в контексте шейпера - очереди ALTQ работают на выходе из PF (т.е при выходе из очереди пакет уже никак не обрабатывается PF). Как я понимаю структуру пфсенса (во freebsd вариантов больше), с выхода очереди пакет попадает на IPFW (если необходимо) и далее на отправку транспортным протоколом интерфейса.
В контексте фильтра свойство in имеет пакет принятый роутером через этот интерфейс, а out - покидающий роутер через этот интерфейс. Акцентирую: принятый/покидающий роутер.По-моему путь пакета сквозь роутер на картинке упрощённо должен выглядеть так:
int LAN -> in filter -> processing -> out filter -> shaper queue -> int WANМммм примерно понял нестыковку: Queue tagging - есть "маркировка" пакетов для ALTQ.
Сам процесс шейпинга происходит при покидании пакетом роутера.
Заменил рисунок - пните если опять не то. -
Заменил рисунок - пните если опять не то.
Да вот тоже затрудняюсь сказать на сколько можно упросить картинку, отражающую логику прохождения пакета, чтобы не потерять достоверность и ещё больше не запутать потенциального изучающего.
Мне кажется важным указывать на картинке контекст в котором рассматривается путь прохождения пакета. Ведь если рассматривать PF в целом, то из исходной картинки вообще ничего не выкинуть. А если рассматривать шейпер PfSense, то придётся добавлять обработку Layer7, которая осуществляется не с помощью нативных средств PF.Мне представляется важным:
- Показ некоторой обработки пакета, например в виде "облака", даже если эта обработка не важна в рассматриваемом контексте. Как пример - маршрутизация в контексте шейпера, дабы не создавалось впечатление прямой кишки.
- "Пути", которые проходит пакет при приёме и передаче логически разные. Неплохо бы это подчёркивать на схеме.
- Очереди ALTQ на разных интерфейсах независимы. Изображение ALTQ одним блоком может вызвать ощущение корреляции между очередями на разных интерфейсах.
Я вот думаю неплохо бы попытаться изобразить полную схему обработки трафика Пфсенсом, да что-то пока стрёмно. Туда ведь и IPv6 надо добавлять и протоколы маршрутизации.
PS (offtop):
Пробовал тут накатить IPv6 ветку на домашний пфсенс. У меня провайдер даёт нативную поддержку IPv6. Пока ничего хорошего не получилось. -
У меня стояла задача блоками изобразить простую логику обработки пакета, чтобы было видно и понятно когда и какой этап проходит. Более продвинутым и оригинальная схема поможет. ALTQ отображена как функциональный блок без внутренней детализации - здесь еще есть вариант подумать над ней.
-
да я в принципе и так понял :) недавно разбирался с iptables…
думаю по топикам моим видно что не совсем начинающий :) но всего знать не возможно...
как сказал у меня знакомый - если человек умеет фаер нормально писать с консоли - то особых проблем в понимании нету :) -
да я в принципе и так понял :) недавно разбирался с iptables…
думаю по топикам моим видно что не совсем начинающий :) но всего знать не возможно...
как сказал у меня знакомый - если человек умеет фаер нормально писать с консоли - то особых проблем в понимании нету :)Ну ты понял, а другие? Хочется чтобы раз взглянул и понял саму идею, а не лазить днями по первоисточникам и искать смысл.
-
я ж не спорю :)
да и нет уверенности что на 100% понял :) -
я ж не спорю :)
да и нет уверенности что на 100% понял :)Там кстати неточности и неправильности. Создан отдельный топик - по мере понимания кладу все туда. Если есть комменты/замечания, в личку или сюда.
-
топик видел, спасибо
я подписался :) и заглядываю периодически.
пока пригрузили работой, посему - только читаю и думаю.тестить буду со вторника..
с наступающими! и Вам желаю отдохнуть! -
Как так сделать чтоб исходящий тарфик HTTP (к примеру кто т upload ит фото на радикал) ходил по одной очереди
а остальной трафик HTTP ходил по другой ?Это возможно ?
Вот что я сделал (но мне кажится что сёрфинг замедляется при этом :( )
m_Other HTTP inbound это для входящего трафика (закачки сёрфинг)
m_Other HTTP outbound для аплоада.
-
Возможно, если настроите правилами файрвола.
-
Всё супер тока вот с фаерволом в шейпере как то трудновато.
можно ещё раз кто врубил какой принцип работы фаераКак я понял
Абсолютно все общие правила должны быть вверху(тоесть если нада ловить p2p и прочий тяжёлый трафик)
а там http pop3 (всё что улаживается в небольшой диапозон портов и ip адрессов)
должны быть снизу с пометкой quick -
Всё супер тока вот с фаерволом в шейпере как то трудновато.
можно ещё раз кто врубил какой принцип работы фаераКак я понял
Абсолютно все общие правила должны быть вверху(тоесть если нада ловить p2p и прочий тяжёлый трафик)
а там http pop3 (всё что улаживается в небольшой диапозон портов и ip адрессов)
должны быть снизу с пометкой quickбез quick
так как quick - сразу применяет правило, а не просто "метит" для шейпера, т.е. если вы сделаете quick, а в правилах на интерфейсе - запретите, то запрет не сработает. -
тоесть фаервол (флоатинг) сначало все правила просмотрит и какое последние нашёл то и срабатывает ?
-
смотри. если правила в Floating Rules без quick см. http://forum.pfsense.org/index.php/topic,33870.msg176410.html#msg176410
то они помечаются в порядке прохождения, а далее - идут по правилам на интерфейсах,
пример: пометилось все первым правилом, в очередь. например р2р, далее идет вниз по правилам, если находится более "точное" - например подходящее под порт - помечается уже им, если до конца правил уже нет вхождений - то переходит на правила интерфейсов, а там либо разрешен траф либо запрещен…
если же поставить quick - то сразу пакет будет пройден по правилу (deny\allow....) и не пройдет далее., следовательно если первое правило с очередью р2р сделать quick - то весь траф будет только по этой очереди. -
значит правила проходят с верху в низ и помечает только самое точно из них (без пометки quick)
-
и что даёт вот эта минюшка ?