Страница 1 из 1

netgraph: virtual switch + netams

Добавлено: 2009-07-23 23:36:59
wanderer
Приветствую!

К сожалению, не понимаю как настраивать 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
2. понадобилось поднять на роутере netams для подсчета трафика и квотирования. т.к. на машине не стоит вообще фаервола и ната (это не внешний маршрутизатор, он соединяет две локалки), то захотел поднять по методике http://www.netams.com/doc/kb_netgraph.html
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
3. появилась незадачка - вместе все это добро отказывается работать (
вопрос: возможно ли это поднять вместе и как?

спасибо всем заранее!)

Re: netgraph: virtual switch + netams

Добавлено: 2009-07-24 13:57:48
LMik
Ну тут все просто, сначала просто нарисуйте блок схему как должен общий граф выглядеть.

Re: netgraph: virtual switch + netams

Добавлено: 2009-07-24 13:59:53
LMik
Не особо вчитывался, нет времени... но по идее надо трафик интерфейса разделить на копии чем нибудь типа ng_hub вроде, и привинчивать уже свитч и tee к хабу.

Re: netgraph: virtual switch + netams

Добавлено: 2009-07-24 18:13:10
wanderer
к сожалению, в данном вопросе я вообще не разбираюсь... ( поэтому я не понимаю как все это сделать..
понимаю, что мне никто ничего не напишет готовенькое..
тогда скажем так, посоветуйте что читать, чтобы я сам смог понять как это сделать.