#!/bin/sh INT=$2 PREF=$3 if [ "X${INT}" = 'X' ] ; then INT='fxp0'; fi if [ "X${PREF}" = 'X' ] ; then PREF=${INT} ; fi COLLECTOR0_IP='123.123.123.123' COLLECTOR0_PORT='2055' COLLECTOR1_IP='127.0.0.1' COLLECTOR1_PORT='2055' case "$1" in start) /usr/sbin/ngctl -f- <<-EOF mkpeer ${INT}: tee lower left name ${INT}:lower ${INT}-tee connect ${INT}: ${INT}-tee: upper right # o2m object mkpeer ${INT}-tee: one2many left2right many0 name ${INT}-tee:left2right ${PREF}-o2m connect ${PREF}-o2m: ${INT}-tee: many1 right2left # netflow mkpeer ${PREF}-o2m: netflow one iface0 name ${PREF}-o2m:one ${PREF}-netflow # Doubling netflow object mkpeer ${PREF}-netflow: one2many export one name ${PREF}-netflow:export ${PREF}-nf-dbl msg ${PREF}-nf-dbl: setconfig { xmitAlg=2 failAlg=1 } #socket for collector0 mkpeer ${PREF}-nf-dbl: ksocket many0 inet/dgram/udp name ${PREF}-nf-dbl:many0 ${PREF}-nf-exp0 msg ${PREF}-nf-exp0: connect inet/${COLLECTOR0_IP}:${COLLECTOR0_PORT} #socket for collector1 mkpeer ${PREF}-nf-dbl: ksocket many1 inet/dgram/udp name ${PREF}-nf-dbl:many1 ${PREF}-nf-exp1 msg ${PREF}-nf-exp1: connect inet/${COLLECTOR1_IP}:${COLLECTOR1_PORT} EOF ;; stop) /usr/sbin/ngctl -f- <<-EOFF shutdown ${PREF}-nf-exp1: shutdown ${PREF}-nf-exp0: shutdown ${PREF}-nf-dbl: shutdown ${PREF}-netflow: shutdown ${PREF}-o2m: shutdown ${INT}-tee: EOFF sleep 5 /usr/sbin/ngctl shutdown ${INT}:lower ;; restart) $0 stop sleep 10 $0 start ;; *) echo "usage: ${0##*/} start [pref]" >&2 ;; esac