Господа, есть нетривиальная задача. На интерфейсе, который смотрит в локальную сеть, учитывать трафик через pflow и одновременно раскладывать его по очередям.
Уже неделю экспериментирую - безрезультатно. Получается либо pflow, либо altq
vlan2 - смотрит в сторону провайдера. vlan621 - в сторону локальной сети.
Конфиг предельно прост:
Код: Выделить всё
TRANSLATION RULES:
nat on vlan2 inet proto tcp from 10.51.109.40/29 to any -> x.x.84.226
nat on vlan2 inet proto udp from 10.51.109.40/29 to any -> x.x.84.226
nat on vlan2 inet proto icmp from 10.51.109.40/29 to any -> x.x.84.226
FILTER RULES:
block drop in all
pass in quick on vlan2 proto tcp from any to (vlan2) port = ssh flags S/SA keep state (if-bound)
pass out quick on vlan2 all flags S/SA keep state (if-bound)
pass in quick on vlan2 all no state
* pass in quick on vlan621 inet from 10.51.109.40/29 to any flags S/SA keep state (if-bound, pflow)
* pass out quick on vlan621 inet from any to 10.51.109.40/29 no state queue to_Gonta
ALTQ:
queue root_em0 on em0 bandwidth 1Gb priority 0 {DEFQ, to_Customers}
queue DEFQ on em0 bandwidth 100Mb hfsc( default )
queue to_Customers on em0 bandwidth 10Mb {to_Akim, to_Gonta}
queue to_Akim on em0 bandwidth 512Kb hfsc( upperlimit 512Kb )
queue to_Gonta on em0 bandwidth 512Kb hfsc( upperlimit 512Kb )
Первое правило (трафик из локалки) создает state, ответный трафик проверяется по state, и во второе правило не попадает. Убрав keep state из первого правила, получаем работу очереди, но при этом теряем возможность учитывать трафик через pflow.
Вопрос: как совместить pflow и очереди на одном интерфейсе? И можно ли их совместить вообще?