forum.bitel.ru
http://forum.bitel.ru/

Nas на freebsd
http://forum.bitel.ru/viewtopic.php?f=5&t=1873
Страница 1 из 4

Автор:  Sinoptik [ 03 фев 2009, 05:37 ]
Заголовок сообщения:  Nas на freebsd

Есть несколько насов на linux. Почитал wiki - заинтриговала идея возможности разделения скоростей для городского трафика\внешнего
(для pppd таких атрибутов не нашёл)
Решил поднять nas на freebsd/
Соответственно возникло несколько вопросов и проблем:
1) в linux radius-client есть параметр nas_identifier
в прилагаемых конфигах в mpd.conf для радиуса только

Код:
set radius retries 2
   set radius timeout 10
   set radius server 10.0.0.5 secret
   set radius me 10.0.0.1

как происходит идентификация наса? и где в конфиге указан ip на котором vpn висит

2)при запуске 001-netflow.sh вываливается

Код:
ngctl: send msg: File exists
ngctl: line 1: error in file

решилось подгрузкой netgraph и ng_ether один раз
но при перезагрузке опять та же проблема, несмотря что они подгружены..
Заранее спасибо

Автор:  and [ 03 фев 2009, 10:54 ]
Заголовок сообщения:  Re: Nas на freebsd

Sinoptik писал(а):
Есть несколько насов на linux. Почитал wiki - заинтриговала идея возможности разделения скоростей для городского трафика\внешнего
(для pppd таких атрибутов не нашёл)


На pppd таких атрибутов нет! При делении скоростей на городской и внешний трафик, можно просто усовершенствовать шейпер прописав адреса которые находятся внутри городской зоны и к которым скорость будет ставиться по Вашему желанию.

Автор:  Sinoptik [ 03 фев 2009, 15:44 ]
Заголовок сообщения: 

именно для этого я и начал разбираться с mpd

Кстати а что нужно в ip-up добавить, чтобы к определённой подсетке скорость другую выставить? и как сделать, чтоб первые десять кб на высокой скорости отдавались (выбросы вроде это называются)?

Автор:  snark [ 05 фев 2009, 19:23 ]
Заголовок сообщения: 

Sinoptik писал(а):
Кстати а что нужно в ip-up добавить, чтобы к определённой подсетке скорость другую выставить?

лучше это делать не в скриптах, а через RADIUS атрибуты ...

Sinoptik писал(а):
как сделать, чтоб первые десять кб на высокой скорости отдавались (выбросы вроде это называются)?

никак! пока 30 строк в netflow пакете не наберется ng_netflow его не отдаст ...

P.S.
/me думает что пора статью в вики писать про 5-й MPD ...

Автор:  Sinoptik [ 06 фев 2009, 01:47 ]
Заголовок сообщения: 

я наверно неправильно вопрос сформулировал..
Ситуация такая - у меня насы на debian, но вследствии того, что так и не решил пару проблем с шейпингом городского трафика и отключением по snmp, решил поэкспериментировать с freebsd
соответственно при настройке mpd4 по wiki возникло несколько вопросов:
1) где в конфиге указывается nas_identifer или он не нужен? как билинг идентифицирует нас этот?
2) где в конфиге указывается интерфейс, на котором впн слушается - у меня мпд нормально запускается ,однако впн не конектит..

Если кто-нибудь может выложить рабочий конфиг для мпд5 - вообще хорошо - там говорят уже нетфлов есть и не надо костылей лишних строить..

Автор:  snark [ 06 фев 2009, 17:16 ]
Заголовок сообщения: 

Sinoptik писал(а):
1) где в конфиге указывается nas_identifer или он не нужен? как билинг идентифицирует нас этот?

тыц!
MPD manual писал(а):
set radius identifier name
Send the given name in the RAD_NAS_IDENTIFIER attribute to the server. If not set the local hostname is used.

но на самом деле это не обязательно, т.к. БГБ в общем то определяет NAS по IP адресу/секрету, а в конфиге NAS-а Вы указываете как производится сброс юзеров ...

Sinoptik писал(а):
2) где в конфиге указывается интерфейс, на котором впн слушается - у меня мпд нормально запускается ,однако впн не конектит..

тыц!
MPD manual писал(а):
set pptp self ipaddr [ port ]
Sets the local IP address and port for the PPTP connection.

тыц!
MPD manual писал(а):
set link enable option ...

...

incoming
This option enables the acceptance of incoming connections. If this option is disabled, mpd will not accept incoming connections using this link. To avoid races it is advised to enable it after all other link options are configured.

The default is disable.



Sinoptik писал(а):
Если кто-нибудь может выложить рабочий конфиг для мпд5 - вообще хорошо - там говорят уже нетфлов есть и не надо костылей лишних строить..

вполне рабочий конфиг РРРоЕ сервера:
Код:
startup:
    set user foo bar admin
    set console self 127.0.0.1 5005
    set console open


radius:
    set auth disable internal
    set auth max-logins 1 CI
    set auth enable radius-auth
    set auth enable radius-acct
    set auth acct-update 60
    set radius server IP.адрес.BGB.RADIUS-а RADIUS-секрет 1812 1813
    set radius me IP.адрес.MPD.машины
    set radius timeout 15
    set radius retries 3


default:
    set ippool add stat 192.168.255.100 192.168.255.200

    create bundle template B
    set ipcp ranges 127.0.0.1/32 ippool stat
    set ipcp dns IP.адрес.DNS.сервера
    set ipcp no vjcomp
    set ipcp no req-pri-dns
    set ipcp no req-sec-dns
    set ipcp no req-pri-nbns
    set ipcp no req-sec-nbns


    create link template L pppoe
    set link action bundle B
    set link max-children 1000
    set link no multilink
    set link no shortseq
    set link no chap eap pap
    set link enable pap
    set pppoe acname Internet
    load radius


    create link template 100 L
    set pppoe iface vlan100
    set link enable incoming

    create link template 200 L
    set pppoe iface vlan200
    set link enable incoming

    create link template 300 L
    set pppoe iface vlan300
    set link enable incoming

для netflow поправить:
Код:
startup:
    set netflow self IP.адрес.MPD.машины порт
    set netflow peer IP.адрес.BGB.RADIUS-а порт
    set netflow timeouts не_активн. активн.


default:
    create bundle template B
    set iface enable netflow-in
    set iface enable netflow-out

но я бы этого не советовал, т.к. не вижу нужды плодить кучу ng_netflow нод, когда можно создать только одну ноду и через ng_ipfw заворачивать только нужный трафик ...

Автор:  Sinoptik [ 06 фев 2009, 19:03 ]
Заголовок сообщения: 

Спасибо большое! - буду разбираться

Автор:  snark [ 06 фев 2009, 19:42 ]
Заголовок сообщения: 

если что - спрашивайте свои вопросы ;)

Автор:  Sinoptik [ 14 фев 2009, 05:23 ]
Заголовок сообщения: 

разбираюсь потихоньку..
у меня завелось всё с таким конфигом:
Код:
startup:
        # configure mpd users
        set user foo bar admin
        set user foo1 bar1
        # configure the console
        set console self 127.0.0.1 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open
        set ippool add sat  192.168.169.1 192.168.169.255
       set netflow peer 192.168.105.5 2001
       set netflow self 192.168.105.17 32345
       set netflow timeouts 10 10
default:
       load pptp_server
       pptp_server:
       create bundle template pptp_b
       set iface enable netflow-in
       set iface enable netflow-out
       set iface enable tcpmssfix
       set ipcp yes vjcomp
       set ipcp ranges 192.168.5.1/32 ippool sat
       set ipcp dns 192.168.64.254 192.168.64.252
       set bundle enable compression
       set ccp yes mppc
       set mppc yes compress
       set mppc yes e40
       set mppc yes e56
       set mppc yes e128
       set mppc yes stateless
       create link template pptp_link pptp
    set link action bundle pptp_b
    set link enable multilink
    set link yes acfcomp protocomp
    set link no pap chap
    set link enable chap
    set link keep-alive 10 60
    set link mtu 1460
    set pptp self 192.168.105.17
    set link enable incoming
    set auth enable radius-auth
    set auth enable radius-acct
    set radius enable report-mac
    set radius me 192.168.105.17
    set radius retries 3
    set radius timeout 10
    set radius server 192.168.105.5     12345678        1812    1813

теперь вопрос про атрибуты: в вики написан пример, как к подсети не ограничивать скорость:
Цитата:
attrset.1.title=Скорость 64-Арена
attrset.1.attributes=mpd-filter=1#1=match dst net 82.200.107.0/27 and src net 192.168.120.0/24;mpd-filter=2#1=match src net 82.200.107.0/27 and dst net 192.168.120.0/24;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all shape 64000 4000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 64000 4000 pass;

#для сетки 82.200.107.0/27 и 192.168.120.0/24 без ограничений
#для остально интернета первые 4 кб без ограничений, потом скорость ограничивается до 64 кб/с

а как быть, если подсеток таких 20? прям так и перечислять подряд? или можно поэстетичнее сделать?

Автор:  Sinoptik [ 15 фев 2009, 09:50 ]
Заголовок сообщения: 

и со сбрасыванием по snmp подскажите пожалуйста - брал конфиги из вики - не сбрасывается

Автор:  snark [ 16 фев 2009, 13:40 ]
Заголовок сообщения: 

Sinoptik писал(а):
и со сбрасыванием по snmp подскажите пожалуйста - брал конфиги из вики - не сбрасывается

и не будет, т.к. там скрипты под mpd4 ... под mpd5 надо их подправить либо написать свои ;)

Sinoptik писал(а):
а как быть, если подсеток таких 20? прям так и перечислять подряд? или можно поэстетичнее сделать?

либо описать все сети, либо аггрегировать их в одну большую сеть ... можно руками, а можно, например, с помощью aggregate ;)
ставите:
Код:
cd /usr/ports/net-mgmt/aggregate && make install clean
а потом:
Код:
# cat net_list.txt | aggregate -q
192.168.0.0/21
192.168.8.0/23
где net_list.txt файл вида:
Код:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24
192.168.7.0/24
192.168.8.0/24
192.168.9.0/24

Автор:  Sinoptik [ 16 фев 2009, 15:31 ]
Заголовок сообщения: 

спасибо большое.
видимо придётся на 4й мпд откатываться :(

Автор:  snark [ 16 фев 2009, 16:08 ]
Заголовок сообщения: 

Sinoptik писал(а):
видимо придётся на 4й мпд откатываться :(

это зачем еще? из за нежелания (лени?) написать что-то в духе этого (рабочий скрипт кстати):
Код:
#!/bin/sh

if [ -z "$*" ]; then
    exit 0
fi

mpd_host='127.0.0.1'
mpd_port='5005'
mpd_user='foo'
mpd_pass='bar'

if [ $1 = '-s' ]; then
    if [ -n "$4" ]; then
        port=`printf "$mpd_user\r$mpd_pass\rshow sessions\rexit\r" | nc -4n $mpd_host $mpd_port | grep -E 'ng[0-9]+' | awk '{print $6}'`
        if [ -n "$port" ]; then
            if [ $4 -eq $port ]; then
                printf "$mpd_user\r$mpd_pass\rlink [%X]\rclose\rexit\r" $4 | nc -4n $mpd_host $mpd_port > /dev/null 2>&1
                exit 0
            fi
        fi
    fi
fi

if [ $1 = '-g' ]; then
    echo $2
    echo 'string'
    check_port=`echo $2 | sed s/'.1.3.6.1.4.1.2021.255.'//g | awk '{print $1}'`
    sessions=`printf "$mpd_user\r$mpd_pass\rshow sessions\rexit\r" | nc -4n $mpd_host $mpd_port | grep -E 'ng[0-9]+' | awk '{print $6":"$8}'`
    for i in $sessions; do
        port=`echo $i | sed s/:/' '/g | awk '{print $1}'`
        if [ $port -eq $check_port ]; then
            user=`echo $i | sed s/:/' '/g | awk '{print $2}'`
            break
        fi
    done
    if [ -z $user ]; then
        echo '-'
    else
        echo $user
    fi
fi

Автор:  Sinoptik [ 16 фев 2009, 16:43 ]
Заголовок сообщения: 

Да у вас же уже есть всё необходимое, чтобы написать статью в wiki
про mpd5 :wink:

Автор:  snark [ 16 фев 2009, 17:09 ]
Заголовок сообщения: 

не совсем ... нету:
- готового скрипта мониторига кол-ва подключившихся клиентов, есть только глухая бета версия
- 100% понятного всем вокруг скрипта запуска ng_ipfw + ng_netflow для экспорта статистики на 2++ разных порта и/или IP адреса, mpd сам не умеет, а хочется без стороннего софта сделать разделение потоков для учета по netflow + детализация, опять же есть только бета, но ее надо под rc.ng переписать чтоб кошернее было
- толкового rc.firewall чтобы люди в нем не заблудились
ну и еще всякого по мелочи ... в кучу - оно все работает, но народ может не понять, а этого не хочется ... хочется чтоб могли просто копи/пастить с минимумом вопросов ;)

Автор:  Sinoptik [ 21 фев 2009, 12:01 ]
Заголовок сообщения: 

объясните пожалуйста по поводу фильтров
Код:
attrset.1.attributes=mpd-filter=1#1=match dst net 82.200.107.0/27 and src net 192.168.120.0/24;mpd-filter=2#1=match src net 82.200.107.0/27 and dst net 192.168.120.0/24;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all shape 64000 4000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 64000 4000 pass;

например
Цитата:
match dst net 82.200.107.0/27 and src net 192.168.120.0/24

это то есть надо всегда указывать сеть назначения и пул источника или я путаю?
как например не шейпить три сети
x.x.x.x
y.y.y.y
z.z.z.z
а остальное резать до 256?

Автор:  Sinoptik [ 21 фев 2009, 16:39 ]
Заголовок сообщения: 

Код:
attrset.1.attributes=mpd-filter=1#1=match dst net x.x.x.x and dst net y.y.y.y and dst net z.z.z.z;mpd-filter=2#1=match src net x.x.x.x and src net y.y.y.y and src net z.z.z.z;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all shape 64000 4000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 64000 4000 pass;

так должно?

Автор:  snark [ 24 фев 2009, 15:08 ]
Заголовок сообщения: 

тут я уже писал как можно ...

в общем виде:
- рисуем правила для mpd для сетей x.x.x.0/24 и y.y.y.0/24 трафик с/на которых не должен шейпится:
Код:
mpd-filter=1#1=match dst net x.x.x.0/24;
mpd-filter=1#2=match dst net y.y.y.0/24;
mpd-filter=2#1=match src net x.x.x.0/24;
mpd-filter=2#2=match src net y.y.y.0/24;
mpd-limit=in#1=flt1 pass;
mpd-limit=in#2=all rate-limit 256000 pass;
mpd-limit=out#1=flt2 pass;
mpd-limit=out#2=all shape 256000 pass

- прикручиваем эти правила к БГБ:
Код:
attrset.1.title=256k
attrset.1.attributes=mpd-filter=1#1=match dst net x.x.x.0/24;mpd-filter=1#2=match dst net y.y.y.0/24;mpd-filter=2#1=match src net x.x.x.0/24;mpd-filter=2#2=match src net y.y.y.0/24;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all rate-limit 256000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 256000 pass

Автор:  Sinoptik [ 24 фев 2009, 19:31 ]
Заголовок сообщения: 

по аналогии соответственно остальные сети
mpd-filter=1#3
mpd-filter=1#4
так?
rate-limit от shape чем отличается?

Автор:  Sinoptik [ 24 фев 2009, 19:32 ]
Заголовок сообщения: 

по аналогии соответственно остальные сети
mpd-filter=1#3
mpd-filter=1#4
так?
rate-limit от shape чем отличается?

Автор:  snark [ 24 фев 2009, 20:07 ]
Заголовок сообщения: 

Sinoptik писал(а):
по аналогии соответственно остальные сети
mpd-filter=1#3
mpd-filter=1#4
так?

можно так, а можно в одну строку ... man tcpdump гляньте, там синтаксис такой же ;)

Sinoptik писал(а):
rate-limit от shape чем отличается?

Изображение
в кратце:
полисинг - отбрасыание пакетов свыше установленной скорости
шейпинг - постановка пакетов в очередь
подробности можно почитать тут

Автор:  Sinoptik [ 25 фев 2009, 00:08 ]
Заголовок сообщения: 

а с точки зрения анлимов что лучше? полисинг наверно на пинг плохо влияет?

Автор:  snark [ 25 фев 2009, 00:15 ]
Заголовок сообщения: 

Sinoptik писал(а):
а с точки зрения анлимов что лучше?

все зависит от скорости оных анлимов ... для низкоскоростных анлимов (64-512 kbps) желательно использовать шейпинг, а для более скоростных (1++ Mbps) лучше использовать полисинг, т.к. накладные расходы (потребеление ресурсов РС-юка) возрастают, а результат уже не так сильно заметен ... IMHO для исходящего от юзера трафика, вне зависимости от скорости его анлима лучше использовать полисинг, т.к. отброшенные пакеты всеравно передаются по Вашей сети, а не по каналу в Интернет, т.е. Вам их переприем ничего не стоит, а нагрузка на РС-юк меньше ...

Автор:  Sinoptik [ 25 фев 2009, 01:04 ]
Заголовок сообщения: 

спасиб, пошёл rtfm-ить)

Автор:  Nik [ 27 фев 2009, 15:33 ]
Заголовок сообщения: 

snark писал(а):
не совсем ... нету:
- готового скрипта мониторига кол-ва подключившихся клиентов, есть только глухая бета версия

А грепнуть вывод ifconfig и посчитать количество ng интерфейсов?

Автор:  snark [ 27 фев 2009, 16:51 ]
Заголовок сообщения: 

Nik писал(а):
А грепнуть вывод ifconfig и посчитать количество ng интерфейсов?

пока что идея такая:
Код:
#!/bin/sh

mpd_host='127.0.0.1'
mpd_port='5005'
mpd_user='foo'
mpd_pass='bar'

sessions=`printf "$mpd_user\r$mpd_pass\rshow sessions\rexit\r" | nc -4n $mpd_host $mpd_port | grep -E 'ng[0-9]+' | awk '{print $5}'`

cnt=0

for i in $sessions; do
    cnt=$(($cnt + 1))
done

echo $cnt

Автор:  Nik [ 27 фев 2009, 16:56 ]
Заголовок сообщения: 

Кошмар какой: printf, nc, fgrep, awk....


ifconfig | fgrep 10.96.0.1 -c

IP подставить от своего конца VPN тунеля, работает на 3-4-5 версиях mpd.

Автор:  snark [ 27 фев 2009, 17:01 ]
Заголовок сообщения: 

Nik писал(а):
Кошмар какой: printf, nc, fgrep, awk....

в чем кошмар то? в получении данных непосредственно от самого mpd?

Nik писал(а):
ifconfig | fgrep 10.96.0.1 -c

IP подставить от своего конца VPN тунеля, работает на 3-4-5 версиях mpd.

ах, как интересно! а если у меня РРРоЕ? что мне тогда подставлять? а если РРРоЕ + РРТР (и такое у людей с этого форума есть) тогда что? `ifconfig | grep ng` ? но ведь это ifconfig, grep ... "кошмар какой"(с) :)

Автор:  Nik [ 27 фев 2009, 18:40 ]
Заголовок сообщения: 

snark писал(а):
Nik писал(а):
Кошмар какой: printf, nc, fgrep, awk....

в чем кошмар то? в получении данных непосредственно от самого mpd?

Nik писал(а):
ifconfig | fgrep 10.96.0.1 -c

IP подставить от своего конца VPN тунеля, работает на 3-4-5 версиях mpd.

ах, как интересно! а если у меня РРРоЕ?

И что? У тебя там не PPP завёрнуто чтоли? Точно так же грепнуть по IP который со стороны MPD в тунеле.

Автор:  snark [ 27 фев 2009, 18:46 ]
Заголовок сообщения: 

Nik писал(а):
И что? У тебя там не PPP завёрнуто чтоли? Точно так же грепнуть по IP который со стороны MPD в тунеле.

таки чем плох метод получения данных непосредственно из самого mpd? или это не кошерно?

Страница 1 из 4 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/