Здравствуйте!
Имеется домашний шлюз FreeBSD6, natd, mpd. Один интерфейс смотрик к провайдеру (xl0), другой в локалку (rl0). VPN-соединение устанавливается между шлюз-провайдер и между шлюз-локальные_юзеры. Работает все.ng0 - vpn-канал с сервером провайдера;
ng1 - vpn-канал с юзером1 (подключен);
ng2 - vpn-канал с юзером2 (отключен в данный момент);
xl0 - внешний интерфейс;
rl0 - внутренний интерфейс (192.168.0.1);
#ifconfig
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=9<RXCSUM,VLAN_MTU>
inet6 fe80::204:75ff:fec0:b0aa%xl0 prefixlen 64 scopeid 0x1
inet ${мой_внешний_ip} netmask 0xffffff00 broadcast ${мой_броадкаст}
ether 00:04:75:c0:b0:aa
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:70ff:fe51:7132%rl0 prefixlen 64 scopeid 0x2
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:50:70:51:71:32
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 81.26.179.31 --> 81.26.177.9 netmask 0xffffffff
inet6 fe80::204:75ff:fec0:b0aa%ng0 prefixlen 64 scopeid 0x4
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1396
inet 192.168.1.1 --> 192.168.1.2 netmask 0xffffffff
inet6 fe80::204:75ff:fec0:b0aa%ng1 prefixlen 64 scopeid 0x5
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
#ipfw show
00020 0 0 deny icmp from any to any icmptypes 0,3,5,8,11
00100 97 4964 allow tcp from me to 81.26.176.24 dst-port 1723 out via xl0
00105 2284 202892 allow gre from me to 81.26.176.24 out via xl0
00110 3167 1220424 allow ip from 81.26.176.24 to me in via xl0
00200 1145 144495 divert 8668 ip from 192.168.1.2 to any out via ng0
00210 0 0 divert 8668 ip from 192.168.1.3 to any out via ng0
00220 1431 1140069 divert 8668 ip from any to me in via ng0
00245 8173 820069 allow ip from 192.168.0.0/24 to me in via rl0
00250 9008 2159068 allow ip from me to 192.168.0.0/24 out via rl0
00260 2609 1286516 allow ip from any to any via ng0
00270 2563 1283751 allow ip from any to any via ng1
00270 0 0 allow ip from any to any via ng2
65535 533 73465 deny ip from any to any
Задача: посчитать трафик на интерфейсе ng1
Установил ng_ipacct. У него в комплекте идет скрипт для запуска (divert_node.sh):
IFACE="ng1"
THRESHOLD=1000
VERBOSE="1"
nodename=ipacct_${IFACE}
hookprefix=${IFACE}
ngctl -f- <<-SEQ
mkpeer ipacct ctl ctl
name .:ctl ${nodename}
mkpeer ${nodename}: ksocket ${hookprefix}_in inet/raw/divert
name ${nodename}:${hookprefix}_in ${nodename}_in
msg ${nodename}_in: bind inet/0.0.0.0:3021
mkpeer ${nodename}: ksocket ${hookprefix}_out inet/raw/divert
name ${nodename}:${hookprefix}_out ${nodename}_out
msg ${nodename}_out: bind inet/0.0.0.0:3022
rmhook .:ctl
SEQ
ipacctctl ${nodename}:${hookprefix} dlt RAW
ipacctctl ${nodename}:${hookprefix} v ${VERBOSE}
ipacctctl ${nodename}:${hookprefix} th ${THRESHOLD}
ipfw add 64021 tee 3021 ip from any to room101 via ${IFACE}
ipfw add 64022 tee 3022 ip from room101 to any via ${IFACE}
Вопросы:
1. что есть "room101". Пакеты не заходят, даже при
ipfw add 30 tee 3021 ip from any to any via ng1
2. где в моем случае нужно добавлять правила для ipfw (всмысле оставить 64021 или до правил divert)