The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
Проблема приоритизации трафика, на мой взгляд, весьма актуальна.
Интернет-канала много не бывает и на всех пользователей и сервисов локальной
зачастую не хватает. Поэтому для нормальной работы Интернета требуется
грамотное распределения полосы с учетом потребностей каждого из участников.
Единственный раз, когда мне не понадобился QoS - это гарантированный
провайдером канал в 20 Мбит/с в мир и 100Мбит/с - национальный. Но такое
удовольствие не из дешевых, поэтому зачастую народ довольствуется ADSL-каналом
с заявленной скоростью к клиенту до 5-10 Мбит/с.

Хочу заметить, что данная статья не предназначенная для новичков в сетевом
администрировании в целом и в PF в частности. Читателю необходимо иметь
минимальные навыки работы с сетями (понимать устройство пакета, знать что такое
ТСР-флаги и т.д.), а также с пакетным фильтром PF. Не лишним будет прочесть
официальный FAQ и man'ы. В основном цель этой статьи поделиться опытом,
выслушать замечания и, возможно, улучшить свой вариант.

И так, постановка задачи: организовать доступ к сети Интернет. Грамотно
распределить как входящий так и исходящий трафик с разделением канала для
клиентов локальной сети и сервисов, запущенных на самом роутере (например,
FTP-сервер, SIP-сервер и т.д.). В качестве роутера выступает сервер с ОС
FreeBSD 9 c пакетным фильром PF.
Протокол FTP будет использоваться только в пассивном режиме, что немного упростит конфигурацию.

Для решения поставленной задачи необходимо пересобрать ядро и включить в него
поддержку PF и ALTQ. Для задач, не требующих ALTQ, пересобирать ядро не
обязательно. Можно просто подгрузить PF как модуль.

Добавляем в файл конфигурации следующие строки и пересобираем ядро. Описывать
каждую опцию не буду. В man 4 altq все есть.

   options HZ=1000

   device pf
   device pflog
   options ALTQ
   options ALTQ_CBQ
   options ALTQ_RED
   options ALTQ_RIO
   options ALTQ_HFSC
   options ALTQ_CDNR
   options ALTQ_PRIQ
   #options ALTQ_NOPCC #for SMP CPU

Лично я для боевого сервера пересобираю не только ядро системы, но и мир. Как
это сделать, хорошо описано в Хендбуке и /usr/src/Makefile.

Для автоматического запуска PF при старте системы добавляем в /etc/rc.conf строки:

   pf_enable="YES"
   pflog_enable="YES"

Далее, собственно, сам конфигурационный файл пакетного фильтра. Возьмем самую
простую реализацию роутера: один внутренний сетевой интерфейс и один внешний.
Интернет канал подключен через ADSL-модем, работающий в режиме моста, т.е.
подключение pppoe организовано средствами штатного ppp-клиента.

Скорость от провайдера - 5 Мбит/c, к провайдеру - 850 Кбит/c. 
На роутере запущен HTTP-прокси для прозрачного перенаправления WWW-трафика
пользователей сети. Это сделано с целью блокировать метод CONNECT и
принудительно направить другие виды трафика (например, торрент) в другие
очереди с другим приоритетом. Я использую легковесный, но "шустрый" 3proxy
(3proxy.ru). Кому важен кэш - используйте Squid или Apache Traffic Server.

Также перенаправляются все ДНС-запросы на сервер ДНС-провайдера. Это сделано с
целью блокировки фишинговых и других зловредных сайтов, сайтов для взрослых,
аплоадеры, соц. сети и т.д. и т.п. Некоторые компании так же предоставляет
блокировку рекламных баннеров.

Весь исходящий трафик я разбил на следующие очереди:

 - ДНС-запросы - очередь u_dns

 - ТСР АСК-пакеты - очередь u_ack

 - трафик с высоким приоритетом - очередь u_hipri

 - трафик с нормальным приоритетом - очередь u_pri

 - трафик с низким приоритетом - очередь u_lowpri

 - весь остальной трафик - очередь u_other

 - стандартная очередь - очередь u_std, одна очередь должна быть с опцией default, в которую попадает трафик, который не попадает ни под какое другое правило. В нашем случае это показатель правильности назначения очередей в правилах фильтрации. В эту очередь ничего не должно попадать.

Аналогичное деление трафика, идущего к клиенту локальной сети, только вместо
u_* используется d_* обозначение.

Трафик классифицируется как относительно сервиса/протокола (HTTP, FTP, Torrent)
так и относительно пользователя, т.е. трафик от/к компьютера, например,
бухгалтера может быть весь помечен как с высоким приоритетом, независимо от
того Торрент это или FTP.
Данные, являющиеся ДНС-запросам и ТСР АСК-пакетами, для всех пользователей
имеют свой высокий неизменный приоритет. Например, весь трафик от/к компьютера,
относящегося к группе с низким приоритетом, будет обрабатываться с низким
приоритетом, кроме ДНС и ТСР АСК.

Определяем макросы, что бы меньше текста в основной части конфигурационного файла.

   mst="modulate state"
   str="source-track rule"
   ext_if="tun0"
   int_if="rl0"

Таблица, в которую включены компьютеры трафик  к/от которых весь будет
считаться с высоким приоритетом.

   table <pc_hipri> persist {10.11.1.2}

Аналогично для ПК с нормальным приоритетом.

   table <pc_pri> persist {10.13.1.2 10.13.1.10 10.13.1.13 10.13.1.14 10.13.1.15}

Таблица с адресами, доступ к которым блокируется.

   table <ban> persist file "/etc/pf.ban"

Таблица, с адресами клиентов, которым можно доверять.

   table <trust> persist {123.10.456.0/24 193.196.125.0/24}

IP-адрес системного администратора.

   table <me> persist {210.211.13.84}

IP-адреса SIP-провайдеров

   table <sip_peers> persist {212.15.65.122 75.16.127.118}

Конфигурируем опции пакетного фильтра, изменяющие его поведение. В нашем случае:

- не производится проверка на интерфейсе обратной петли;

- выставляем оптимизацию правил в basic;

- устанавливаем привязку состояний соединения (т.н. стейтов) к каждому интерфейсу;

- устанавливаем максимальное кол-во состояний. Если сетевых интерфейсов большое
кол-во или большое кол-во клиентов в сети, возможно, потребуется
скорректировать это значение в большую сторону.

   set skip on lo0
   set ruleset-optimization basic
   set state-policy if-bound
   set limit states 20000

Нормализация трафика (т.н. скрабинг). Срабинг позволяет значительно повысить
безопасность файервола. В нашем случае выполняется нормализация трафика на
внешнем интерфейсе, генерируется случайная последовательность в поле
идентификации IP-пакета, устанавливается величина TTL=128, производится
"дефрагментация" IP-пакетов, а также нормализация TCP соединений.

   scrub on $ext_if all random-id no-df min-ttl 128 fragment reassemble reassemble tcp


ALTQ.

Приоритизировать будем на всех физических сетевых интерфейсах. На внешнем -
исходящий трафик, на внутреннем - входящий.
Выбор дисциплины - очень важный момент. Возможные варианты: priq, cbq, hfsc. 

Я использую hfsc, т.к. важной чертой этого планировщика есть именно
гарантирование полосы для конкретного пользователя/сервиса. Работа планировщика
для нашего конкретного случая построена следующим образом: если в описании
очереди указан дополнительный параметр realtime, то ей будет отдана указанная
(realtime) полоса независимо ни от чего. Величина трафика свыше realtime будет
рассчитываться исходя из величины bandwidth. Причем  bandwidth - не абсолютный
параметр, скорее относительный.

Исходя из величин bandwidth каждой очереди рассчитывается величина трафика
свыше realtime для каждой очереди пока не будет достигнут параметр upperlimit,
который жестко ограничивает полосу. Приоритеты в планировщике hfsc не используются.

Помимо всех прочих параметров, hfsc имеет параметр qlimit - кол-во слотов,
доступных очереди для сохранения исходящих пакетов, когда вся доступная полоса
исчерпана. И только когда все слоты будут заняты, пакеты будут отбрасываться,
что заставит клиента снижать скорость. Мы не будем использовать RED или ECN,
вместо этого увеличим значение qlimit.

Назначаем очередь на внешнем интерфейсе. Величина bandwidth должна быть 96% от
предоставляемой вышестоящим роутером. Здесь же перечисляем все дочерние очереди.

   altq on $ext_if hfsc bandwidth 800Kb queue {u_std,u_ack,u_dns,u_hipri,u_pri,u_lowpri,u_other}

Очередь по-умолчанию. Будет потреблять 25 кбит/с независимо ни от чего.
Величина bandwidth 1Kb означает, что если канал будет полностью занят любой
другой очередью или всеми, то очередь u_std практически ничего не получит свыше
25 кбит/с.
    
   queue u_std bandwidth 1Kb qlimit 50 hfsc (default realtime 25Kb)

Очередь u_ack - это ТСР АСК-пакеты, которые будут отправляться удаленному хосту
с которого происходит загрузка по протоколу ТСР. Важно, что бы эти пакеты
проходили без задержек. Для максимальной скорости от провайдеоа 4 Мбит/с
требуется гарантированный канал в обратную сторону в размере 125 кбит/с.
    
   queue u_ack bandwidth 1Kb qlimit 200 hfsc (realtime 125Kb)

ДНС-запросы. Гарантированной полосы в 25 кбит/с вполне достаточно. Больше не
нужно, поэтому bandwidth 1Kb
    
   queue u_dns bandwidth 1Kb qlimit 50 hfsc (realtime 25Kb)

Очередь с высоким приоритетом
    
   queue u_hipri bandwidth 300Kb qlimit 250 hfsc (realtime 200Kb)

Очередь с обычным приоритетом

   queue u_pri bandwidth 300Kb qlimit 400 hfsc (realtime 150Kb)

Очередь с низким приоритетом

   queue u_lowpri bandwidth 100Kb qlimit 100 hfsc (realtime 75Kb)

Очередь для всего остального трафика ТСР и UDP.

   queue u_other bandwidth 97Kb qlimit 50 hfsc (realtime 25Kb)

Назначаем очереди на внутреннем интерфейсе - приоритизируем входящий трафик.
Провайдер отдает 5 Мбит/с, поэтому устанавливаем очередь inetq в размере 96%.
Так же на внутреннем интерфейсе запущен ряд служб, например, локальный FTP,
поэтому важно "не смешать" локальный трафик с Интернет-трафиком. Так как
сетевая карточка 100Mbit, то выставляем значение bandwidth в 100Mb. Назначаем
две очереди: одна - локальный трафик, вторая Интернет-трафик с дочерними очередями.

   altq on $int_if hfsc bandwidth 100Mb queue {etherq, inetq}

Очередь для локального трафика. В эту очередь будут попадать все пакеты, идущие
от внутреннего сетевого интерфейса к пользователям локальной сети. Параметр
upperlimit определяет максимальное значения для данной очереди. Заметьте, в эту
очередь не будут попадать ответы, например, от WWW-сервера из сети Интернет.
Эта очередь исключительно для локального трафика.

   queue etherq bandwidth 95Mb hfsc (upperlimit 95Mb)

Очередь для Интернет-трафика. В эту очередь будут попадать пакеты, идущие с
сети Интернет. Имеет дочерние очереди по аналогии с внешним интерфейсом.

   queue inetq bandwidth 4800Kb hfsc (upperlimit 4800Kb) {d_std,d_ack,d_dns,d_hipri,d_pri,d_lowpri,d_other}
   queue d_std bandwidth 1Kb qlimit 50 hfsc (default realtime 25Kb)
   queue d_ack bandwidth 1Kb qlimit 50 hfsc (realtime 50Kb)
   queue d_dns bandwidth 1Kb qlimit 50 hfsc (realtime 25Kb)
   queue d_hipri bandwidth 1297Kb qlimit 500 hfsc (realtime 1000Kb)
   queue d_pri bandwidth 2000Kb qlimit 500 hfsc (realtime 2000Kb)
   queue d_lowpri bandwidth 1000Kb qlimit 500 hfsc (realtime 500Kb)
   queue d_other bandwidth 500Kb qlimit 500 hfsc (realtime 240Kb)

Правила трансляции локальных адресов (NAT).

Транслируются адреса, где источник - IP-адрес из любой подсети внутреннего
интерфейса, а адрес назначения - любой, кроме IP-адресов из всех подсетей,
подключенных к роутеру. Это могут быть как физические так и VPN-интерфейсы
(tun, gif).
($ext_if) - в круглых скобках, т.к. IP-адрес внешнего интерфейса назначается динамически.

($int_if:network) и (self) в круглых скобках что бы в выводе pfctl -sn не было
подстановки реальных адресов и сетей. Это удобно, когда у вас на внутреннем
интерфейсе несколько алиасов и, соответственно, подсетей (как в моем случае).

   nat on $ext_if inet from ($int_if:network) to !(self) -> ($ext_if) port 1024:65535

Пользователей из группы pc_hipri и pc_pri пускаем в обход прокси. Я пускаю их
напрямую, т.к. эти пользователи не нуждаются в контроле, а также специфическое
ПО не работает в режиме прозрачного проксирования.

   no rdr on $int_if inet proto tcp from {<pc_hipri> <pc_pri>} to !(self) port 80

Правило редиректа, перенаправляющие все ДНС-запросы локальных пользователей на
внешний ДНС-сервер. Это может быть Google или, лучше, ДНС-сервер компании,
предоставляющей фильтрацию трафика посредством ДНС.

   rdr on $int_if inet proto {tcp udp} from ($int_if:network) to !(self) port 53 -> 193.58.251.251 port 53

Редирект на прокси-сервер.

   rdr on $int_if inet proto tcp from ($int_if:network) to !(self) port 80 -> 127.0.0.1 port 31280

Редирект на удаленный рабочий стол виндовой машины в локальной сети из сети Интернет.

   rdr on $ext_if inet proto tcp from any to ($ext_if) port 3389 -> 10.11.1.2 port 3389

Правила фильтрации трафика. Правила будем группировать в такой
последовательности: действие, интерфейс, направление, протокол, адрес
источника, порт источника, адрес назначения, порт назначения.

Антиспуфинг.

   antispoof quick for {$int_if lo0} inet

Блокируем не маршрутизируемые адреса.

   block in quick inet from no-route to any

Блокируем броадкасты.

   block in quick on $ext_if inet from any to 255.255.255.255

Блокируем IP-адреса, содержащиеся в таблице ban. Опция return возвращает TCP
RST, что закрывает сразу соединение без таймаута. Полезно, когда блокируются
адреса рекламных сетей, что позволяет браузеру нормально загружать странички
без ожидания загрузки блокируемого контента.

   block return out quick on $ext_if inet from any to <ban>

Эти 2 правила определяют тип файервола: запрещено все, кроме явно разрешенного.

   block in all
   block out all

Собственно разрешающие правила. 
Расположены в определенной последовательности, что важно с точки зрения
производительности, а также ожидаемого эффекта.

Внутренний интерфейс.
Разрешаем ТСР-пакеты к интерфейсу обратной петли, на котором "слушает" прокси-
сервер для организации прозрачного проксирования. Назначаем очереди. Мы не
можем приоритизировать входящий трафик, только исходящий. В d_pri будут
попадать пакеты, которые являются ответом от сервера к клиенту, таким образом
мы регулируем скорость скачивания.

   pass in log quick on $int_if inet proto tcp from ($int_if:network) to 127.0.0.1 port 31280 queue (d_pri, d_ack)

Далее 3 правила, которые разрешают ТСР соединения на определенные порты на не
локальные IP-адреса. Назначаются соответствующие очереди. Тегирование
необходимо что бы потом на внешнем интерфейсе мы могли "отделить" его от
остального трафика и направить в нужную очередь. Заметьте, опция quick не
используется, поэтому эти правила нужно расположить в правильной
последовательности: от менее ограничивающего к более, потому как без опции
quick последнее совпавшее правило выигрывает, а не первое совпавшее.

Опция quick не используется т.к. при совпадении пакет будет назначен в очередь
и пропущен и не дойдет до тех правил, которые описывают разрешения и
приоритеты, основанные не на протоколах, а на адресах источника/назначения (в
нашем случае это компьютеры из группы pc_hipri и pc_pri). Т.к. протокол ТСР, то
так же добавляем очередь для ТСР АСК-пакетов. В качестве адреса назначения в
правилах фигурирует !(self:network). Это значит, что только пакеты, не
предназначенные ни к одному IP-адресу сетевых интерфейсов или IP-адресу из
подсетей, подключенных к роутеру, будут разрешаться и, соответственно,
тегироваться. Это, например, не даст подключиться к внешнему IP из локальной сети.

   pass in log on $int_if inet proto tcp from ($int_if:network) to !(self:network) \\
		$mst queue (d_other d_ack) tag INET_OTHER

   pass in log on $int_if inet proto tcp from ($int_if:network) to !(self:network) \\
		port {20 21 25 110 143 5190 8080 081} $mst queue (d_lowpri d_ack) tag INET_LOWPRI

   pass in log on $int_if inet proto tcp from ($int_if:network) to !(self:network) \\
		port 443 $mst queue (d_pri d_ack) tag INET_PRI

Далее 2 правила, которые будут срабатывать как для всех пользователей так и для
тех, кто принадлежит к т.н. VIP-группе (pc_hipri и pc_pri). Поэтому тут
используем опцию quick.

   pass in log quick on $int_if inet proto tcp from ($int_if:network) to !(self:network) \\
		port {22 3389} $mst queue (d_hipri d_ack) tag INET_HIPRI

   pass in log quick on $int_if inet proto tcp from ($int_if:network) to !(self:network) \\
		port 53 $mst queue (d_dns d_ack) tag INET_DNS

Следующие 2 правила, по-аналогии с TCP, описывают разрешения и очереди для
протокола UDP. Так же их тегируем. Второе правило с опцией quick, т.к. оно
должно срабатывать для всех категорий пользователей.

   pass in log on $int_if inet proto udp from ($int_if:network) to !(self:network) queue d_other tag INET_OTHER

   pass in log quick on $int_if inet proto udp from ($int_if:network) to !(self:network) \\
		port {53 123} queue d_dns tag INET_DNS

Правило, разрешающее ICMP.

   pass in log on $int_if inet proto icmp from ($int_if:network) to !(self:network) queue d_lowpri tag INET_LOWPRI

Следующие правила, разрешающие трафик от клиентов, с высоким и нормальным
приоритетом. Весь трафик будет считаться очень высоким (hipri) или высоким
(pri) приоритетом (кроме ДНС и ТСР АСК). Здесь мы не указываем протокол, но
указываем modulate state, который применяется только для ТСР. Это не будет
ошибкой, PF достаточно "умный" и он подставит modulate state для протокола ТСР,
и keep state - для всех остальных протоколов.

   pass in log quick on $int_if inet from <pc_hipri> to !(self:network) $mst queue (d_hipri, d_ack) tag INET_HIPRI

   pass in log quick on $int_if inet from <pc_pri> to !(self:network) $mst queue (d_pri, d_ack) tag INET_PRI

Разрешаем локальный Ethernet к внутреннему интерфейсу роутера.

   pass in quick on $int_if inet from ($int_if:network) to ($int_if) queue etherq

Теперь опишем разрешающие правила с внутреннего интерфейса роутера в локальную
сеть. Если у вас нет редиректа с Интернета в локальную сеть или нет никаких
серверов/клиентов, запущенных на самом роутере и требующих доступ в локальную
сеть, то эти правила можно не добавлять.
Первое правило разрешает трафик с Интернета к указанному IP в локальной сети и
назначает очень высокий приоритет входящего трафика. Это третье правило (первое
- rdr, второе - разрешающее на внешнем интерфейсе) для редиректа (проброса)
порта в локальную сеть.

   pass out quick on $int_if inet proto tcp from !(self) to 10.11.1.2 port 3389 queue (d_hipri d_ack)

Правило, разрешающее трафик от внутреннего сетевого интерфейса роутера в
локальную сеть. Не важно какой протокол. Весь направляется в очередь etherq.

   pass out quick on $int_if inet from ($int_if) to ($int_if:network) queue etherq


Внешний интерфейс. Разрешающие правила для входящего трафика. Важно, для
каждого входящего правило указывать максимальное кол-во стейтов, которые может
создать правило. Это предотвратит исчерпывания всего лимита стейтов одним
правилом в случае DoS атаки.
Последующие 6 правил разрешают входящие ТСР-подключения к определенным портам
роутера, а также назначаются соответствующие очереди. Эти очереди будут
приоритизировать не входящий трафик, а исходящий. Так же стоит обратить
внимание на первые два правила, которые разрешают доступ к FTP серверу на
роутере. Передача команд по 21-му порту будет направляться в очередь с большим
приоритетом (u_pri), а данные - с меньшим (u_lowpri).

   pass in quick on $ext_if inet proto tcp from <trust> to ($ext_if) port 21 $mst (max 100) queue (u_pri u_ack)

   pass in quick on $ext_if inet proto tcp from <trust> to ($ext_if) port >=49152 $mst (max 100) queue (u_lowpri u_ack)

   pass in quick on $ext_if inet proto tcp from <me> to ($ext_if) port 22 $mst (max 10) queue (u_hipri u_ack)

   pass in quick on $ext_if inet proto tcp from <me> to ($ext_if) port 80 $mst (max 100) queue (u_pri u_ack)

   pass in quick on $ext_if inet proto tcp from <me> to ($ext_if) port 5900 $mst (max 10) queue (u_hipri u_ack)

Правило, разрешающее входящее подключение с сети Интернет (конкретно с адреса
администратора), но не к интерфейсам роутера (внешнему в том числе), а к
компьютеру в локальной сети к порту RDP.

   pass in quick on $ext_if inet proto tcp from <me> to !(self) port 3389 $mst (max 10) queue (u_hipri u_ack)

Следующее правило разрешает подключение с любого адреса сети Интернет к
VNC-репитеру. В целях безопасности включен трекинг источника (source-track).

   pass in quick on $ext_if inet proto tcp from any to ($ext_if) port 5500 $mst \\
		(max 10,$str, max-src-nodes 2, max-src-states 3, max-src-conn-rate 3/60) \\
		queue (u_hipri u_ack)


Следующие 2 правила разрешают подключения к определенным портам по протоколу UDP.

   pass in quick on $ext_if inet proto udp from any to ($ext_if) port 1194 (max 20) queue u_pri

   pass in quick on $ext_if inet proto udp from <sip_peers> to ($ext_if) port 5060 (max 20) queue u_hipri

Разрешаем пинг к внешнему интерфейсу.

   pass in quick on $ext_if inet proto icmp from any to ($ext_if) icmp-type echoreq (max 100) queue u_other

Внешний интерфейс. Разрешающие правила для исходящего трафика.
Следующие 5 правил разрешают исходящий трафик с внешнего интерфейса, который
был помечен на внутреннем интерфейсе. Это исключительно данные, которые
передаются в сеть Интернет от клиентов в локальной сети.

   pass out quick on $ext_if inet from ($ext_if) to any $mst queue (u_dns u_ack) tagged INET_DNS

   pass out quick on $ext_if inet from ($ext_if) to any $mst queue (u_hipri u_ack) tagged INET_HIPRI

   pass out quick on $ext_if inet from ($ext_if) to any $mst queue (u_pri u_ack) tagged INET_PRI

   pass out quick on $ext_if inet from ($ext_if) to any $mst queue (u_lowpri u_ack) tagged INET_LOWPRI

   pass out quick on $ext_if inet from ($ext_if) to any $mst queue (u_other u_ack) tagged INET_OTHER

И последние правила, разрешающие исходящие соединения с внешнего интерфейса.
Это будет трафик непосредственно самого роутера. В целом приоритет этого
трафика выше чем от клиентов в локальной сети.

   pass out quick on $ext_if inet proto tcp from ($ext_if) to any port 53 $mst queue (u_dns u_ack)
		
   pass out quick on $ext_if inet proto tcp from ($ext_if) to any $mst queue (u_pri u_ack)

   pass out quick on $ext_if inet proto udp from ($ext_if) to any port {53 123} queue u_dns
	
   pass out quick on $ext_if inet proto udp from ($ext_if) to <sip_peers> port 5060 queue u_hipri

   pass out quick on $ext_if inet proto udp from ($ext_if) to any queue u_pri

   pass out quick on $ext_if inet proto icmp from ($ext_if) to any $mst queue u_lowpri

Есть один важный момент, на котором остановлюсь подробнее. Второе правило будет
разрешать ТСР-соединения с роутера и в том числе на 80 порт. Под это правило
так же подпадают пакеты, отправленные с прокси-сервера, трафик, который
фактически является HTTP-трафиком  клиентов из локальной сети. Т.к. в нашем
случае приоритеты этих видов трафика равны (очередь u_pri), то все хорошо. Но
если планируется назначить очереди разные (например, HTTP от локальных клиентов
- очередь u_lowpri, а с внешнего интерфейса роутера - u_pri), тогда следует
указать в правиле для прокси-сервера опцию user uid и поместить его над
правилом для внешнего интерфейса роутера. Например, прокси запущен с правами
пользователя nobody:

   pass out quick on $ext_if inet proto tcp from ($ext_if) to any user nobody $mst queue (u_lowpri u_ack)

   pass out quick on $ext_if inet proto tcp from ($ext_if) to any $mst queue (u_pri u_ack)

Соответственно, правило, разрешающее доступ к прокси из локалной сети тоже
немного измениться: необходимо поменять очередь с d_pri на d_lowpri.

   pass in log quick on $int_if inet proto tcp from ($int_if:network) to 127.0.0.1 port 31280 queue (d_lowpri, d_ack)

Стоить отметить о наличии бага, который проявляется при использованием опции
user. Об этом описано в секции BUGS на странице руководства pf.conf. Лично у
меня этот баг не проявлялся. Все же старайтесь опцию user не использовать.

Отладка. Отличительной способностью PF есть его протоколирование, статистика и
мониторинг состояния в реальном времени что значительно облегчает
конфигурирование файервола, особенно для сложных сетевых топологий.
 
Просмотр загруженных очередей:

   pfctl -sq

Что бы в реальном времени наблюдать загрузку очередей выполните команду:

   pfctl -vvsq

Так же рекомендую установить из портов программу pftop, которая по аналогии с
утилитой top выводит различную статистику PF в реальном времени.
 
09.04.2012 , Автор: artemrts
Ключи: freebsd, router, pf, altq, traffic, bandwidth, queue / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Пакетные фильтры и фаерволы / Пакетный фильтр в FreeBSD: ipfw, IP-Filter

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, bga83, 14:27, 09/04/2012 [ответить] [смотреть все]
  • +/
    пропускная способность такого решения упрется в цифру 150-180 Мбит/сек. Больше pf просто не в состоянии обработать. Связано с тем, что он работает только в дин поток, в отличие от ipfw.

    Касаемо непосредственно правил: наличие в правилах quick крайне нежелательно и можно отнести к ошибке автора, хотя с чисто формальной точки зрения все будет работать. К тому же есть подозрение, что не совсем корректно идет заворачивание трафика в очереди(надо более детально разбираться, но поверхностный анализ говорит именно об этом). По умолчанию все правила pf имеют keep state, а это значит, что обратные пакеты будут попадать под тоже самое правило и значит проходить те же очереди, что не является корректным.

     
     
  • 2.2, artemrts, 18:47, 09/04/2012 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    1 То что PF работает в один поток - не есть проблема до 800 Мбит с на недороги... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.24, ragus, 03:11, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    можно пример недорогой интеловской гигабитки А то как бы 82576 стоит не так у... весь текст скрыт [показать]
     
  • 2.4, mma, 05:46, 10/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ерунда, все упрется в железо проц и сетевухи а не в ядро и софт Это почему Все... весь текст скрыт [показать] [показать ветку]
     
  • 2.21, Andrew Kolchoogin, 00:51, 12/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Нет, не будет проходить, и это FAQ ALTQ появляется в ядре путём патча сетевых д... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, unscrubber2, 07:29, 10/04/2012 [ответить] [смотреть все]  
  • +/
    >Связано с тем, что он работает только
    > в один поток, в отличие от ipfw.

    возможно это проблема если адаптеров несколько (при нагруженном хостинге vds например, виртуализации)

    > это, похоже, девиз FreeBSD

    PF был портирован с OpenBSD, наезд не засчитан.
    да и вообще, я использую и linux и freebsd, можно не придираться а просто использовать то что в определенных условиях и задачах лучше/удобней работает.
    сборка мира сама по себе и коллекция портов стоят того чтобы познакомится/использовать freebsd.


    ! про SMP - скоро (с релизом 6 OpenBSD версии, щас бета есть) можно будет желающим использовать NPF (много общего вижу по возможностям и синтаксису с PF, смhttp://netbsd.gw.com/cgi-bin/man-cgi?npf.conf++NetBSD-current), http://www.opennet.ru/opennews/art.shtml?num=27955 , мне лично больше всего конечно интерпретатор байткода и прочие новшества нравятся.

     
     
  • 2.6, artemrts, 09:41, 10/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    gt оверквотинг удален А вот это уже интересно Я так понял планируется NPF п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, artemrts, 09:43, 10/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален У вас опечатка Им имелось вввиду NetBSD ... весь текст скрыт [показать]
     
     
  • 4.8, unscrubber2, 13:21, 10/04/2012 [^] [ответить] [смотреть все]  
  • +/
    да опечатался, по ссылкам же видно что о нетбсд речь)

    оверквотинг удался)

     
  • 1.9, Аноним, 01:40, 11/04/2012 [ответить] [смотреть все]  
  • –1 +/
    И вот для этого предлагается ставить здоровый гроб с бсдой Да с этим тплинк 100... весь текст скрыт [показать]
     
     
  • 2.10, Alexander Sheiko, 03:28, 11/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Сейчас есть множество решений на Intel Atom, что куда функциональней китайских п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, artemrts, 09:57, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Я использую FreeBSD 9, там pf45 в нем еще не реализован упомянутый вами синтакс... весь текст скрыт [показать]
     
     
  • 4.17, Alexander Sheiko, 16:49, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    В пассивном тоже полезно, если открыты только определённые разрешённые порты PF... весь текст скрыт [показать]
     
     
  • 5.19, artemrts, 18:15, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Может быть при драконовской конфигурации, когда открыто пол-десятка портов Но... весь текст скрыт [показать]
     
     
  • 6.20, Alexander Sheiko, 20:21, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Я на пятом опёнке раскидываю так code ps ax 124 grep ftp 21897 Is ... весь текст скрыт [показать]
     
  • 3.13, Аноним, 14:14, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Только они куда крупнее и прожорливее и не конфигурируются на 100 ремотно как п... весь текст скрыт [показать]
     
     
  • 4.18, Alexander Sheiko, 16:56, 11/04/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Да ну - 15-25 Вт максимум при 100 загрузке двухъядерного Атома Клава и монитор... весь текст скрыт [показать]
     
     
  • 5.80, Аноним, 16:52, 14/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    А упомянутое спасибо если 5 ваттов в максимуме жрет, если в юсб понацеплять винч... весь текст скрыт [показать]
     
  • 3.23, ragus, 03:09, 12/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    а не затруднит вас подтвердить ваши слова ссылками на предложения с ценниками и ... весь текст скрыт [показать]
     
     
  • 4.53, Alexander Sheiko, 22:47, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Выбирайте http hotline ua computer materinskie-platy 7284-29309 ... весь текст скрыт [показать]
     
     
  • 5.54, Alexander Sheiko, 22:58, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Разумеется - в формате mini-ITX Вот такое, к примеру http hotline ua compute... весь текст скрыт [показать]
     
     
  • 6.81, Аноним, 16:54, 14/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Вот незадача то оно стоит как _три_ тплинка являющихся законченной системой в ... весь текст скрыт [показать]
     
  • 5.56, ragus, 23:33, 12/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    по ссылке какие-то комплектующие для PC 1 блок питания 2 корпус 3 память 4 на ... весь текст скрыт [показать]
     
     
  • 6.58, Alexander Sheiko, 00:47, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    На любой выбор Удобнее всего взять жёсткий диск - будет ещё бесплатное хранилищ... весь текст скрыт [показать]
     
     
  • 7.59, ragus, 01:09, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    вы ценник законенного решения назовите ценник растёт я напоминаю про интегр... весь текст скрыт [показать]
     
     
  • 8.61, Alexander Sheiko, 02:15, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Стоимость системника дешёвого офисного ПК для секретутки Вот в этом и его плю... весь текст скрыт [показать]
     
     
  • 9.68, ragus, 15:27, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    т е 200 где-то за эти деньги можно взять routerboard с 5-6 гигабитными интерф... весь текст скрыт [показать]
     
     
  • 10.71, artemrts, 19:01, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    не те задачи, что бы роутермамку брать Опыт, уважаемый, опыт Ага, и вы раска... весь текст скрыт [показать]
     
     
  • 11.74, ragus, 20:07, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    да, всего два админа за счёт экономии на количестве админов зарплаты выше я же... весь текст скрыт [показать]
     
     
  • 12.76, artemrts, 21:14, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Я ценю свое время и не хочу его тратить на прочтение ваших бредней Ну без обид ... весь текст скрыт [показать]
     
  • 12.107, alex.h, 15:11, 22/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Ради правды, у указанного класса железок две беды, вторая БП - который сначала г... весь текст скрыт [показать]
     
  • 10.77, Alexander Sheiko, 21:18, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Да - десятком таких коробок в ящике, ждущих свою очередь на списание Живут до 2... весь текст скрыт [показать]
     
     
  • 11.78, ragus, 23:24, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    модель какая ок, я уточню ситуацию компания занимается логистикой офисы - эт... весь текст скрыт [показать]
     
  • 7.60, ragus, 01:42, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    да, ещё у dir-620 на борту 802 11n wifi адаптер ... весь текст скрыт [показать]
     
     
  • 8.63, artemrts, 07:43, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Это когда роутер у бухгалтера под тумбочкой - Лично у меня он в серверной и э... весь текст скрыт [показать]
     
     
  • 9.66, ragus, 14:16, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    и что, по всему офису только провода и чем плох этот роутер в корпоративном се... весь текст скрыт [показать]
     
     
  • 10.69, artemrts, 18:46, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Причем тут провода, там где роутеру место от туда сигнал... весь текст скрыт [показать]
     
     
  • 11.72, ragus, 19:11, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    ну приносили нам их на тесты 4VAP а сейчас умеют почти все более-менее приличны... весь текст скрыт [показать]
     
     
  • 12.75, artemrts, 21:09, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Сказки и чепуха Так суппорт удаленных филиадов не делаю... весь текст скрыт [показать]
     
     
  • 13.79, ragus, 23:27, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален да чёрт с ним с саппортом лучше ответьте на мой вопрос ... весь текст скрыт [показать]
     
  • 7.82, Аноним, 17:22, 14/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Денег опять же стоят Во первых, диск можно и к роутеру прицепить если много не ... весь текст скрыт [показать]
     
  • 2.11, artemrts, 09:48, 11/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Дело в том, что такой гроб имеет больше возможностей Например, на этом сервер... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Аноним, 14:22, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Да ничего он не имеет В каждую первую железку за тыщщу льется тот же опенврт и ... весь текст скрыт [показать]
     
     
  • 4.15, iZEN, 15:20, 11/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Что за бред Железки за тыщу рублей умеют максимум 70 kpps А этот гроб перев... весь текст скрыт [показать]
     
     
  • 5.22, ragus, 03:07, 12/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Изя, вы как всегда мимо кассы 1 для 1mpps надо гигабитный порт 2 для 100 мбит... весь текст скрыт [показать]
     
     
  • 6.26, iZEN, 07:41, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    За Изю когда-нибудь ты ответишь А здесь что Вот именно За 1000 рублей не к... весь текст скрыт [показать]
     
     
  • 7.27, ragus, 08:45, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    зачем 1GE порты при трафике до 100мбит автор писал про медленные adsl-линки 16... весь текст скрыт [показать]
     
     
  • 8.28, artemrts, 09:40, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Да вы про src conf ничего не слышали Для сервера многое из базовой системы не н... весь текст скрыт [показать]
     
     
  • 9.31, ragus, 09:57, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    слышал и использую и что атому до вашего целерона как до луны пешком а про вр... весь текст скрыт [показать]
     
     
  • 10.36, artemrts, 13:08, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Молодой человек Эти полтора часа не проведенные за конс... весь текст скрыт [показать]
     
     
  • 11.42, ragus, 13:27, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    вы ночью просто так работаете а где тесты, обкатка итп ... весь текст скрыт [показать]
     
  • 10.62, Alexander Sheiko, 02:26, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    У меня есть нетбук на 455 атоме, он работает прилично быстрее МОЕГО целерона см... весь текст скрыт [показать]
     
  • 10.65, artemrts, 07:58, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    lol Я о том, который Willamette - ... весь текст скрыт [показать]
     
  • 8.30, artemrts, 09:46, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    У вас какое-то странное представление об однопоточности pf Однопоточный - не зн... весь текст скрыт [показать]
     
     
  • 9.33, ragus, 10:02, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    спасибо, кэп dummynet вполне себе однопоточный и на него не жалуются может, с ... весь текст скрыт [показать]
     
  • 7.100, Аноним, 20:49, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    А ты когда-нибудь ответишь за свои килобайты ламерского бреда Это хуже Поэтому... весь текст скрыт [показать]
     
  • 6.51, Аноним, 16:23, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Бред даже коментировать лениво это connection tracking не костыль с его лин... весь текст скрыт [показать]
     
     
  • 7.57, ragus, 23:40, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    когда сказать нечего - лучше молчать анонимные эксперты на марше в conntrack х... весь текст скрыт [показать]
     
     
  • 8.108, alex.h, 15:56, 22/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Вроде бы тут раньше уже как-то обсуждали аппаратную акселерацию NAT, получалось ... весь текст скрыт [показать]
     
  • 5.83, Аноним, 17:36, 14/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Да вообще-то и больше умеют - 400МГц проц переварит и поболее, имхо Как раз под... весь текст скрыт [показать]
     
     
  • 6.85, iZEN, 22:12, 14/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Кто сказал атом В моём лексиконе такого слова нет Берём обычный 35-45 ваттны... весь текст скрыт [показать]
     
     
  • 7.86, ragus, 02:57, 15/04/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    изя, то, о чём ты тут пытаешься лечить - это делается на 82575 82576 и выше, кот... весь текст скрыт [показать]
     
     
  • 8.87, artemrts, 10:35, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален ... весь текст скрыт [показать]
     
  • 8.88, artemrts, 10:40, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Абсолютно не верно Вы пробовали Атлон на 10Гбитных карт... весь текст скрыт [показать]
     
     
  • 9.90, ragus, 15:55, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    а вы сами пробовали у него маленький кэш и относительно невысокая производит... весь текст скрыт [показать]
     
     
  • 10.92, artemrts, 23:42, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Так не надо переводить сбалансированнсоть системы в баксовый вклад каждого компо... весь текст скрыт [показать]
     
     
  • 11.94, ragus, 03:31, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    скажите, лично вы роутили 10 гигабит на PC для описанной вами в статье задаче ... весь текст скрыт [показать]
     
     
  • 12.96, artemrts, 10:36, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Непонятный ответ на мои утверждения о непонимании вами сбалансированной системы ... весь текст скрыт [показать]
     
  • 9.91, ragus, 16:03, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    и давайте всё-таки вы ответите на мой вопрос про voip.


     
     
  • 10.93, artemrts, 23:44, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    А разве я вам не ответил ранее ... весь текст скрыт [показать]
     
     
  • 11.95, ragus, 03:40, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    в том и дело, что нет задача проста астериск на внешней площадке, 2 офиса N1 ... весь текст скрыт [показать]
     
     
  • 12.97, artemrts, 11:09, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    А в чем проблема-то SIP IAX телефоны в своем влане Далее, все понятно ... весь текст скрыт [показать]
     
     
  • 13.98, ragus, 14:39, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    а в случае софт-телефонов ну а voice vlan - это выход, да только к чему тогда ... весь текст скрыт [показать]
     
     
  • 14.99, artemrts, 15:15, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Ну здесь да Определенные сложности есть Вообще потихон... весь текст скрыт [показать]
     
  • 14.105, artemrts, 21:57, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Вопрос в догонку А как вы решаете это с помощью Linux n... весь текст скрыт [показать]
     
     
  • 15.106, ragus, 08:23, 17/04/2012 [^] [ответить] [смотреть все]  
  • +/
    элементарно создание классов не привожу, это банально modprobe nf_conntrack_si... весь текст скрыт [показать]
     
  • 9.102, Аноним, 21:01, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Для чего А слабо L7 filtering Ну ладно, хотя-бы QoS более-менее нормальный Пр... весь текст скрыт [показать]
     
  • 7.101, Аноним, 20:58, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    И получем здоровый жручий гроб с кучей вентилей норовящих забиться пылью, что ос... весь текст скрыт [показать]
     
  • 5.109, alex.h, 00:23, 23/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Вот плохо даже не то, что Вами тут написано, а то, что не написано В то время, ... весь текст скрыт [показать]
     
  • 2.16, artemrts, 15:57, 11/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ну это в этом случай такие скорости А сколько есть провайдеров, предоставляющих... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, ragus, 03:14, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    1 форвардить сотню мегабит на современных SoC не проблема даже софтварно 2 проб... весь текст скрыт [показать]
     
  • 1.29, ragus, 09:45, 12/04/2012 [ответить] [смотреть все]  
  • +1 +/
    2 вопроса к автору:

    1)какова судьба торрент-трафика и как вы его класифицируете?
    2)какова судьба https-трафика? как я понимаю, его ждёт судьба торрентов?

     
     
  • 2.32, artemrts, 10:01, 12/04/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    После таких вопросов я могу сделать вывод, что читали статью через строчку, соот... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.34, ragus, 10:04, 12/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    я то читал внимательно вы пишете и я в упор не вижу классификацию по протокол... весь текст скрыт [показать]
     
     
  • 4.35, artemrts, 13:05, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Еще раз внимательно читайте Трафик для сип пиров попадаеет в _hipri, торрент в... весь текст скрыт [показать]
     
     
  • 5.37, ragus, 13:16, 12/04/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    в _hipri у вас попадёт только sip, но никак не rtp rtp у вас попадёт в _other и... весь текст скрыт [показать]
     
     
  • 6.39, artemrts, 13:23, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Блин ну яж говорю через строчку читаете pass in log on int_if inet proto tc... весь текст скрыт [показать]
     
     
  • 7.41, ragus, 13:26, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален и где тут RTP мы же с вами профессионалы давайте доста... весь текст скрыт [показать]
     
     
  • 8.43, artemrts, 13:33, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Вот 2 правила, описывающие исходящее с внешнего интерфей... весь текст скрыт [показать]
     
     
  • 9.45, ragus, 13:47, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    ок, сигнализация ушла u_hipri ок, весь исходящий udp ушёл в u_pri и оно будет ра... весь текст скрыт [показать]
     
     
  • 10.47, artemrts, 14:00, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Хорошо, согласен в RTP-трафике указывать адрес не нужно ... весь текст скрыт [показать]
     
     
  • 11.48, ragus, 14:04, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    1 работать будет только при canreinvite no 2 сломается при выносе астериска на о... весь текст скрыт [показать]
     
     
  • 12.49, artemrts, 14:22, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Вы еще на Астере 1 4 Пора оперировать directmedia Абсолютно ничего не сломаетс... весь текст скрыт [показать]
     
     
  • 13.50, ragus, 15:04, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    а можно подробнее, как вы его настроите заранее неизвестно какие порты будут ис... весь текст скрыт [показать]
     
     
  • 14.52, artemrts, 18:05, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Допустим корпоративный отдельный Aster впринципе так и нужно делать, кроме него... весь текст скрыт [показать]
     
     
  • 15.55, ragus, 23:22, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    вообще, держать на роутере какие-либо сервисы - моветон а с directmedia yes в... весь текст скрыт [показать]
     
     
  • 16.64, artemrts, 07:51, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Мне на ум приходит мысл, что вы просто не разобрались в... весь текст скрыт [показать]
     
     
  • 17.67, ragus, 15:17, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    ага, с учётом того, что я пользовался pf ом ещё с момента его портирования во fr... весь текст скрыт [показать]
     
     
  • 18.70, artemrts, 18:50, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Это не аргумент Я в опенке еще ipf видел, кстати потом по инерции им еще на Фре... весь текст скрыт [показать]
     
     
  • 19.73, ragus, 19:48, 13/04/2012 [^] [ответить] [смотреть все]  
  • +/
    и какое это отношение имеет к call flow я рулил биллингом на 38млн абонентов, ... весь текст скрыт [показать]
     
  • 16.112, Dmitriy, 15:01, 29/10/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален И как же вы с помощью ipfw payload будете разглядывать ... весь текст скрыт [показать]
     
  • 14.84, Аноним, 17:40, 14/04/2012 [^] [ответить] [смотреть все]  
  • +/
    > всего udp-трафика.

    uTP будет рад :)

     
     
  • 15.89, artemrts, 11:32, 15/04/2012 [^] [ответить] [смотреть все]  
  • +/
    И что вам этот uTP На 100 мегабитах роутер его не ощущает Для магистрального к... весь текст скрыт [показать]
     
     
  • 16.103, Аноним, 21:04, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Да ну Этот чудный протоколец умеет ломовой PPS устраивать на радость софтороуте... весь текст скрыт [показать]
     
  • 6.111, Аноним, 20:25, 27/10/2012 [^] [ответить] [смотреть все]  
  • +/
    А больше на ЛОХА похож
     
  • 4.38, artemrts, 13:19, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Смотрите Трафик весь идет с высоким приоритетом hipri ... весь текст скрыт [показать]
     
     
  • 5.40, ragus, 13:23, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    вы туда направляете только сигнализацию, но никак не пакетики с голосом всё чт... весь текст скрыт [показать]
     
     
  • 6.44, artemrts, 13:37, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Совершенно ошибочное мнение У меня процент ТСР трафика торрента не более 20 Мо... весь текст скрыт [показать]
     
     
  • 7.46, ragus, 13:49, 12/04/2012 [^] [ответить] [смотреть все]  
  • +/
    а как вы отличаете торрент от не торрента и в таком случае по вашим же прави... весь текст скрыт [показать]
     
  • 6.104, Аноним, 21:06, 16/04/2012 [^] [ответить] [смотреть все]  
  • +/
    Во первых, не все провы, а только мелкотравчатые мелкие локалки с черти-чем вмес... весь текст скрыт [показать]
     
     
  • 7.110, XoRe, 23:16, 07/05/2012 [^] [ответить] [смотреть все]  
  • +/
    >> торрент - это tcp. utp провайдеры режут достаточно успешно.
    > Во первых, не все провы, а только мелкотравчатые мелкие локалки с черти-чем
    > вместо роутеров.

    Ага.
    Qwerty (Москва) и Beeline (там же).

    > Во вторых, оно первым делом сносит роутеры у хомяков, что способствует росту
    > их мощности :)

    Роутеры у хомяков часто вполне осиляют, конечно, если канал не сильно большой.

    > В третьих, в бсдах он не то чтобы тривиально режется :)

    В бсдах как раз есть очень эффективный механизм в виде ng_bpf, который позволяет L7 фильтрацию.
    Конкретно для uTP:
    http://vurd.name/2011/09/03/%D0%B1%D0%BB%D0%BE&

     
  • 1.113, Андрей, 09:04, 18/07/2013 [ответить] [смотреть все]  
  • +/
    Подскажите пожалуйста, как правильно прописать ограничение по скорости при ширине канала в 15-20 Мегабит?
    Заранее благодарен.
     
     
  • 2.114, artemrts, 10:15, 18/07/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Подскажите пожалуйста, как правильно прописать ограничение по скорости при ширине канала
    > в 15-20 Мегабит?
    > Заранее благодарен.

    А разве в статье об этом не сказано?

    Назначаем очередь на внешнем интерфейсе. Величина bandwidth должна быть 96% от предоставляемой вышестоящим роутером. Здесь же перечисляем все дочерние очереди.

       altq on $ext_if hfsc bandwidth 800Kb queue ...

     
  • 1.115, Андрей, 16:29, 23/07/2013 [ответить] [смотреть все]  
  • +/
    Пробовал, но при загрузке правил вылетает вот такие ошибки
    pfctl: the sum of the child bandwidth higher than parent "root_bce1"
    pfctl: linkshare sc exceeds parent's sc
    /etc/pf.conf:65: errors in queue definition
    parent inetq not found for d_std
    /etc/pf.conf:66: errors in queue definition
    parent inetq not found for d_ack
    /etc/pf.conf:67: errors in queue definition
    parent inetq not found for d_dns
    /etc/pf.conf:68: errors in queue definition
    parent inetq not found for d_hipri
    /etc/pf.conf:69: errors in queue definition
    parent inetq not found for d_pri
    /etc/pf.conf:70: errors in queue definition
    parent inetq not found for d_lowpri
    /etc/pf.conf:71: errors in queue definition
    parent inetq not found for d_other
    /etc/pf.conf:72: errors in queue definition
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:




      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList