Столкнулся с проблемой следующего характера:
Имеется сервер Supermicro на ATOM с двумя интерфейсами (Intel, дайвер em). Классика: один интерфейс наружу, второй вовнутрь.
Используется как фаерволл и нат для небольшой внутренней сетки. Всегда работал по инерции на ipf + ipnat, пока не был проапгрейжен до FreeBSD 10.
На 10-ке ipf + ipnat рандомно теряли пакеты, поэтому было решено перейти по пути наименьшего сопротивления на pf.
После перехода на pf имеется проблема: аплинк в интернет 10 мегабит. wget и прочие на самом сервере подтверждают.
За Натом в локалке скорость даунлоада: не выше мегабита, аплоад 10.
pf.conf:
Код: Выделить всё
ext_if="em0"
int_if="em1"
set skip on lo0
scrub in all
nat on $ext_if from 192.168.7.10/24 to any -> ($ext_if)
nat on $ext_if from 10.10.10.0/24 to any -> ($ext_if)
много rdr
block all
pass in on $int_if from any to any
pass out on $int_if from any to any
pass out on $ext_if from any to any keep state
pass in on $ext_if proto tcp from any to $ext_if port ssh
pass in inet proto icmp all icmp-type echoreq
pass in on $ext_if proto tcp from any to any port {80 22 53}
tso отрубал, чексуммы на интерфейсах тоже. Ошибок pfctl не кажет.
ICMP пакеты не теряются. А download в 10 раз меньше.
Взываю к коллективной мудрости! Спасибо заранее за советы!
Из мыслей: пересобрать ядро с яндексовыми дровами или вообще покинуть FreeBSD и уйти на Deb + Iptables.