К сожалению, не понимаю как настраивать netgraph в его проявлениях, хватило только мозгов использовать готовые схемы и скрипты
Ситуация:
1. стоит у меня, так называемый, virtual switch, настроенный по статье http://www.lissyara.su/?id=1690 Он прекрасно работает, без нареканий.
Код: Выделить всё
#!/bin/sh
#тут указываем наш белый адрес
self=192.168.112.2
peer=192.168.112.5
#тут порт по которому будет бегать трафик
port=1234
#интерфейс который включаем в свитч
if=sk0
case "$1" in
start)
echo "Starting netgraph switch."
ngctl mkpeer ${if}: bridge lower link0
ngctl name ${if}:lower switch
ngctl mkpeer switch: ksocket link1 inet/dgram/udp
ngctl msg switch:link1 bind inet/${self}:${port}
ngctl msg switch:link1 connect inet/${peer}:${port}
ngctl connect switch: ${if}: link2 upper
ngctl msg ${if}: setpromisc 1
ngctl msg ${if}: setautosrc 0
echo "Ok."
exit 0
;;
stop)
echo "Stopping netgraph switch."
/usr/sbin/ngctl shutdown ${if}:
/usr/sbin/ngctl shutdown switch:
echo "Ok."
exit 0
;;
restart)
sh $0 stop
sh $0 start
;;
*)
echo "Usage: `basename $0` { start | stop | restart }"
exit 64
;;
esac
netams-netgraphctl.sh
Код: Выделить всё
#! /bin/sh
# Netgraph node configuration script for NeTAMS project (FreeBSD 5.xx only!)
# $Id: netams-netgraphctl.sh,v 1.7 2005-03-03 01:53:36 anton Exp $
#
IFACE=sk0
MODE=2 # 1=TEE, 2=DIVERT
DEBUG=1 # 1=enable, 0=disable
DEFAULTPOLICY=2 #1=drop, 2=pass, 3=pass_local_ssh
###### You don't have to change anything below this line! #####################
PATH=/usr/local/sbin:/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin
nodename=netams_${IFACE}
hookprefix=${IFACE}
if [ $MODE -eq 1 ]; then
case "$1" in
stop)
ngctl shutdown netams:
ngctl shutdown ${IFACE}_netams_tee:
ngctl shutdown ${IFACE}:
kldunload ng_netams > /dev/null 2>&1
;;
start|*)
kldload ng_netams > /dev/null 2>&1
kldunload ng_tee > /dev/null 2>&1
kldload ng_tee > /dev/null 2>&1
ngctl mkpeer ${IFACE}: tee lower right
ngctl connect ${IFACE}: lower upper left
ngctl name ${IFACE}:lower ${IFACE}_netams_tee
ngctl mkpeer ${IFACE}_netams_tee: netams right2left if_in
ngctl name ${IFACE}_netams_tee:right2left netams
ngctl connect ${IFACE}_netams_tee: netams: left2right if_out
ngctl msg netams: mode $MODE
ngctl msg netams: debug $DEBUG
ngctl msg netams: setdefault $DEFAULTPOLICY
;;
esac
fi
if [ $MODE -eq 2 ]; then
case "$1" in
stop)
ngctl shutdown netams:
kldunload ng_netams > /dev/null 2>&1
;;
start|*)
kldload ng_netams > /dev/null 2>&1
ngctl mkpeer ${IFACE}: netams lower if_in
ngctl name ${IFACE}:lower netams
ngctl connect ${IFACE}: netams: upper if_out
ngctl msg netams: mode $MODE
ngctl msg netams: debug $DEBUG
ngctl msg netams: setdefault $DEFAULTPOLICY
;;
esac
fi
вопрос: возможно ли это поднять вместе и как?
спасибо всем заранее!)