Здравствуйте!
Имеется FreeBSD 5.3+pf
fxp0 - 10.0.0.1 - внутренняя сеть
10.0.0.254 - VPN-сервер, к которому я цепляюсь при помощи mpd
ng0 - мой интернетовский интерфейс
В pf следующие правила:
$ext_if=ng0
$int_if=fxp0
block in log all
pass in on lo0 all
pass out on lo0 all
pass out on $ext_if proto { tcp, udp, icmp } all keep state
pass out on $int_if proto { tcp, udp, icmp, gre } all keep state
В принципе всё работает как надо, пинги ходят, ssh работает, но стоит мне пойти куда-нибудь по http в логе появляется следующее:
1. 253962 rule 0/0(match): block in on fxp1: IP 10.0.0.254 > 10.0.0.1: call 5459 seq 825 gre-ppp-payload
000006 rule 0/0(match): block in on fxp1: IP 10.0.0.254 > 10.0.0.1: gre
3. 479372 rule 0/0(match): block in on fxp1: IP 10.0.0.254 > 10.0.0.1: call 5459 seq 826 gre-ppp-payload
000006 rule 0/0(match): block in on fxp1: IP 10.0.0.254 > 10.0.0.1: gre
Проблема решается добавлением правила
pass in on $int_if proto gre from 10.4.0.254 to $int_if
Вопрос в следующем: почему не работает мой keep state?
Спасибо!