Помогите разобраться с сабжем.
Нашел в инете такую подсказку (http://www.opennet.ru/openforum/vsluhfo ... 120.html#7):
Сделал скрипт, запустил. Появились три node:sudo ipfw l
00045 tee 3021 ip from any to any out xmit gif*
00047 tee 3022 ip from any to any out xmit tun*
При необходимости можно разбирать на in/out, хотя мне проще скриптами.
Вешаем сокеты на прослушку (версия ng_ipacct должна быть позже 2002-02-28 для поддержки комманды dlt)
#!/bin/sh
. /etc/rc.conf
IFACE=div0
nodename=${IFACE}_ip_acct
socketname=${IFACE}_sock
hookprefix=$IFACE
/usr/sbin/ngctl -f- <<-SEQ
### dummy hook, to create a node
mkpeer ipacct ctl ctl
name .:ctl ${nodename}
### "incoming" hook
mkpeer ${nodename}: ksocket ${hookprefix}_in inet/raw/divert
name ${nodename}:${hookprefix}_in ${socketname}_in
msg ${socketname}_in: bind inet/0.0.0.0:3021
### "outgoing" hook
mkpeer ${nodename}: ksocket ${hookprefix}_out inet/raw/divert
name ${nodename}:${hookprefix}_out ${socketname}_out
msg ${socketname}_out: bind inet/0.0.0.0:3022
rmhook .:ctl
SEQ
/usr/local/sbin/ipacctctl ${nodename}:${hookprefix} dlt RAW
/usr/local/sbin/ipacctctl ${nodename}:${hookprefix} v ${VERBOSE}
/usr/local/sbin/ipacctctl ${nodename}:${hookprefix} th ${THRESHOLD}
Код: Выделить всё
# ngctl list
Name: div0_sock_out Type: ksocket ID: 0000007f Num hooks: 1
Name: div0_sock_in Type: ksocket ID: 0000007e Num hooks: 1
Name: div0_ip_acct Type: ipacct ID: 0000007d Num hooks: 2
В скрипте-примере "divert_node.sh", прилогаемому к ng-ipacct правила выглядят по другому:
Код: Выделить всё
IFACE="xl0"
...
### packets reaching tee are _accepted_,
### so use theese rules _AFTER_ all deny rules
ipfw add 64021 tee 3021 ip from any to room101 via ${IFACE}
ipfw add 64022 tee 3022 ip from room101 to any via ${IFACE}

Я же вставил после "... divert natd ...", но до правил, разрешающих пакеты из/в сетки OpenVPN.
И что это за порты 3021 и 3022? OpenVPN у меня настроен на 2000 порт.
На сколько я понял - основая моя проблема - правильно настроить ipfw.