На FreeBSD-шлюзе локальной сети был поднял IPSec-туннель до провайдера. Весь трафик в/из интернета проходит через этот туннель, о чем свидетельстует множество ESP пакетов, бегающих между крайними точками туннеля (по данным tcpdump). Правила файрвола следующие:00100 allow log ip from any to 194.87.0.50
00110 allow log ip from 194.87.0.50 to any
65535 allow ip from any to anyТ.е. по сути есть всего два правила 100 и 110, которые ведут логи пакетов с/на адрес www.ru. С некоторого компа в локальной сети (с адресом 1.2.3.4) начинаю пинговать www.ru. На шлюзе логи в /var/log/security следующие:
100 Accept ICMP:8.0 1.2.3.4 194.87.0.50 in via ng6
110 Accept ICMP:0.0 194.87.0.50 1.2.3.4 out via ng6
100 Accept ICMP:8.0 1.2.3.4 194.87.0.50 in via ng6
110 Accept ICMP:0.0 194.87.0.50 1.2.3.4 out via ng6
100 Accept ICMP:8.0 1.2.3.4 194.87.0.50 in via ng6
110 Accept ICMP:0.0 194.87.0.50 1.2.3.4 out via ng6
100 Accept ICMP:8.0 1.2.3.4 194.87.0.50 in via ng6
110 Accept ICMP:0.0 194.87.0.50 1.2.3.4 out via ng6Т.е. видно как файрвол принимает ICMP-запросы с интерфейса ng6 (pptp-интерфейс на клиента) и отправляет на этот интерфейс ICMP-ответы от www.ru. Однако файрвол не показывает как ICMP-запрос уходит со шлюза в инет и как приходит ответ. Очевидно пакет после приема с ng6 сразу же инкапсулируется в esp и отправляется по ipsec туннелю. Через файрвол проходит только исходящий esp-пакет с зашифрованными адресами источника и получателя. То же самое происходит по приходу пакета по ipsec туннелю. А можно ли как-нибудь сделать, чтобы уходящие в инет пакеты перед шифрованием и входящие из инета пакеты после дешифрования тоже проходили через файрвол? Это требуется для подсчета трафика.