On 28.04.2015 12:03, Golub Mikhail wrote:
>> А можете ещё сделать bpf_mask=3 для входящих пакетов? Для каждого
>> входящего пакета тогда будет по две записи.

Да. Жаль что в BPF пакет отправляется до pfil, не видно отнатился он или
нет... :)
Предлагаю перейти к отладке с помощью dtrace :)

# kldload dtraceall
# cat > ./ipsec.d
#!/usr/sbin/dtrace -s

fbt::ipsec_filter:entry
{
        self->mbuf = (struct mbuf **)arg0;
        m = *(struct mbuf **)arg0;
        ip = (struct ip *)m->m_data;
        printf("%s->%s", inet_ntoa(&ip->ip_src.s_addr),
                inet_ntoa(&ip->ip_dst.s_addr));
}

fbt::ipsec_filter:return
/arg1 != 0/
{
        printf("%d", (int)arg1);
}

fbt::ipsec_filter:return
/arg1 == 0/
{
        m = *(struct mbuf **)(self->mbuf);
        ip = (struct ip *)m->m_data;
        printf("%s->%s", inet_ntoa(&ip->ip_src.s_addr),
                inet_ntoa(&ip->ip_dst.s_addr));
}
^D

# chmod +x ipsec.d
# ./ipsec.d

-- 
WBR, Andrey V. Elsukov

Attachment: signature.asc
Description: OpenPGP digital signature

Ответить