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

ng_car - нарезка скорости

Добавлено: Сб апр 03, 2010 11:04 am
kvirtu
Подскажите плиз, уже форум перечитал до дыр, почему шейпер не пашет.
Имею: freebsd 7.2.
ядро собрано с:
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options DUMMYNET

options NETGRAPH
options NETGRAPH_TCPMSS
options NETGRAPH_SPLIT
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_SOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
options NETGRAPH_CAR
#
options IPFILTER
options IPFILTER_LOG
options IPDIVERT

options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_FORWARD
#
options DEVICE_POLLING

После перекомпиляции ядра, мпд пересобирал.

в /etc/rc.conf внесено:

firewall_enable="YES"
firewall_script="/etc/myfw.sh"

kldstat выдает:

Id Refs Address Size Name
1 3 0xc0400000 4b0564 kernel
2 1 0xc08b1000 6a45c acpi.ko

При попытке: kldload ng_car выдает:
kldload: can`t load ng_car: file exists
в /boot/loader.conf - прописано: ng_car_load="YES"

Конфиг МПД5:
startup:
# enable TCP-Wrapper (hosts_access(5)) to block unfriendly clients
set global enable tcp-wrapper
# configure the console
set console self 127.0.0.1 5005
set user admin pass admin
set console open
#WEB managment
#set web self 0.0.0.0 5006
#set web open
#Netflow options
#set netflow peer %MPD_NETFLOW_IP% %MPD_NETFLOW_PORT%
#set netflow self %MPD_NETFLOW_SOURCE_IP% %MPD_NETFLOW_SOURCE_PORT%
#set netflow timeouts 15 15
#set netflow hook 9000
# Calling-Station-Id = "10.0.4.16 / 00:18:f3:5a:9f:6a / em0"
#set link enable report-mac
#set netflow node netflow

default:
load pppoe_server

pppoe_server:
create bundle template B
set iface idle 0
set iface enable tcpmssfix proxy-arp
set ipcp no vjcomp
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set ipcp ranges 192.168.1.1 10.10.10.0/32
set ipcp dns 192.168.1.1

create link template L pppoe
set link enable peer-as-calling
set link action bundle B
set pppoe acname "bras1"
set pppoe iface fxp0
set pppoe service "*"
load server_common
set iface enable tcpmssfix

server_common:
set link no pap eap
set link yes chap-md5
set link keep-alive 20 60
set link enable incoming
set link no acfcomp protocomp
load radius

radius:
#set radius server 127.0.0.1 radsecret 1812 1813
set radius config /etc/radius.conf
set radius retries 3
set radius timeout 10
set auth acct-update 300
set auth enable radius-auth
set auth enable radius-acct
set auth disable internal

Далее: $conf{ng_car}=1; - прописано
Тарифный план создан с 2-мя временными интервалами с разной скоростью, в интервалах указано: NETS: GLOBAL

Правила ipfw show:
00100 160 25528 allow ip from any to any via lo0
00500 169926 6911255 divert 8668 ip from 10.10.10.0/24 to any
00505 152956 223537973 divert 8668 ip from any to me
65535 617383 588650124 allow ip from any to any
При подключении клиента:
ipfw table all list:

---table(1)---
0.0.0.0/0 0
---table(10)---
10.10.10.20/32 10001
---table(11)---
10.10.10.20/32 20001

Почему то создались классы трафика 1 и 2 , глобальные 3 не создаются ???
ipfw pipe show - пусто, не создались .....
ipfw -a list после подключения клиента, такие же как и до его подключения:

00100 176 28094 allow ip from any to any via lo0
00500 221142 8999974 divert 8668 ip from 10.10.10.0/24 to any
00505 199123 290733962 divert 8668 ip from any to me
65535 760704 725601516 allow ip from any to any

вот что выдает abills/libexec/linkupdown up ng0 test 10.10.10.20 debug при подключенном пользователе:
END: =====================================
/sbin/ipfw -q table 10 delete 10.10.10.20
/sbin/ipfw -q table 11 delete 10.10.10.20
/sbin/ipfw -q table 10 add 10.10.10.20/32 10001
/sbin/ipfw -q table 11 add 10.10.10.20/32 20001
/usr/sbin/ngctl -f- <<-EOF
mkpeer ipfw: car 10001 upper
name ipfw:10001 class0_test
connect class0_test: ipfw: lower 20001
msg class0_test: setconf { upstream={ cbs=64000 ebs=128000 cir=524288 greenAction=1 yellowAction=1 redAction=2 mode=2 } downstream={ cbs=64000 ebs=128000 cir=524288 greenAction=1 yellowAction=1 redAction=2 mode=2 } }

а вот abills/libexec/billd checkspeed NAS_IDS=1 SHOW_SPEED=1 - ничего не выдает

Re: ng_car - нарезка скорости

Добавлено: Чт апр 08, 2010 6:20 am
~AsmodeuS~
заворот в шейпер пропустили

http://abills.net.ua/wiki/doku.php/abil ... ual:ng_car

не знаю что вы читали но все действия написаны тут

Re: ng_car - нарезка скорости

Добавлено: Чт апр 08, 2010 9:06 am
kvirtu
~AsmodeuS~ подскажите пожалуйста по скрипту shaper_start.sh
Какие переменные нужно под себя подстраивать ???
CLASSES_NUMS='2 3' - этот параметр нужно править ??? (разделение трафика на классы нет)
VERSION=2.7

#Enable NG shapper
NG_SHAPPER=1
# NAT IP
NAT_IPS=""; - что здесь прописывать ???
FAKE_NET="10.0.0.0/16" - это pppoe адреса , выдаваемые юзверам ???
NAT_IF=""; - здесь прописывается внешний интерфейс ???

IPFW=/sbin/ipfw
EXTERNAL_INTERFACE=`/sbin/route get 91.203.4.17 | grep interface: | awk '{ print $2 }'` - 91.203.4.17 - внешний адрес ???
INTERNAL_INTERFACE=ng*

PKG_DIRECTION="TO_SERVER" - этот параметр менять нужно ???
и там еще дальше идут переменные ...

Re: ng_car - нарезка скорости

Добавлено: Чт апр 08, 2010 11:01 am
~AsmodeuS~
если у Вас mpd тогда просто запускать этот скрипт и будет Вам щастье

Re: ng_car - нарезка скорости

Добавлено: Чт апр 08, 2010 1:40 pm
kvirtu
~AsmodeuS~ писал(а):если у Вас mpd тогда просто запускать этот скрипт и будет Вам щастье
у меня мпд5, запускал скрипт, счастье не пришло :( ,
Сделал простой набор правил ipfw, чтобы у клиента был инет:
Смотрим ipfw show:
00100 160 25528 allow ip from any to any via lo0
00200 169926 6911255 divert 8668 ip from 10.10.10.0/24 to any
00250 152956 223537973 divert 8668 ip from any to me
65535 617383 588650124 allow ip from any to any
Инет у клиента есть.
Запускаю ./shaper_start.sh start, имею набор правил:
00100 0 0 allow ip from any to any via lo0
00200 4 240 divert 8668 ip from 10.10.10.0/24 to any
00250 198 12260 divert 8668 ip from any to me
09120 0 0 skipto 10120 ip from table(12) to table(2) in recv ng*
09125 0 0 skipto 10125 ip from table(2) to table(13) out xmit ng*
09130 0 0 skipto 10130 ip from table(14) to table(3) in recv ng*
09135 0 0 skipto 10135 ip from table(3) to table(15) out xmit ng*
10000 4 240 netgraph tablearg ip from table(10) to any in recv ng*
10010 0 0 netgraph tablearg ip from any to table(11) out xmit ng*
10020 0 0 allow ip from table(9) to any in recv ng*
10025 0 0 allow ip from any to table(9) out xmit ng*
10030 0 0 allow ip from any to any via ng*
10120 0 0 netgraph tablearg ip from table(12) to any in recv ng*
10125 0 0 netgraph tablearg ip from any to table(13) out xmit ng*
10130 0 0 netgraph tablearg ip from table(14) to any in recv ng*
10135 0 0 netgraph tablearg ip from any to table(15) out xmit ng*
10220 0 0 allow ip from table(9) to table(2) in recv ng*
10225 0 0 allow ip from table(2) to table(9) out xmit ng*
10230 0 0 allow ip from table(9) to table(3) in recv ng*
10235 0 0 allow ip from table(3) to table(9) out xmit ng*
65535 107187 76693291 allow ip from any to any

ipfw table all list выдает:
---table(1)---
0.0.0.0/0 0
---table(10)---
10.10.10.20/32 10001
---table(11)---
10.10.10.20/32 20001


Инета нет у клиента, видим что правило 10010 не работает, где мои грабли ???

Re: ng_car - нарезка скорости

Добавлено: Пт апр 09, 2010 12:54 pm
kvirtu
Сегодня разбирался со скриптом shaper_start.sh и выяснил что при указании INTERNAL_INTERFACE=ng* инет не ходит, если указать внутренний интерфейс, смотрящий в сетку , инет пашет, но шейпер нет ....
Что у меня не так настроено ???

Re: ng_car - нарезка скорости

Добавлено: Пт апр 09, 2010 2:26 pm
~AsmodeuS~
ipfw f

shaper_start.sh start

ipfw table 10 list

Re: ng_car - нарезка скорости

Добавлено: Сб апр 10, 2010 6:59 am
kvirtu
~AsmodeuS~ писал(а):ipfw f
все правила очистил
shaper_start.sh start
скрипт запустил: ./shaper_start.sh start
ipfw table 10 list
в таблице пусто, если подключить юзвера в таблице:
10.10.10.20/32 10001 , где 10.10.10.20/32 - адрес выданный из пула.
а вот ipfw show:
09120 0 0 skipto 10120 ip from table(12) to table(2) in recv ng*
09125 0 0 skipto 10125 ip from table(2) to table(13) out xmit ng*
09130 0 0 skipto 10130 ip from table(14) to table(3) in recv ng*
09135 0 0 skipto 10135 ip from table(3) to table(15) out xmit ng*
10000 217 15789 netgraph tablearg ip from table(10) to any in recv ng*
10010 0 0 netgraph tablearg ip from any to table(11) out xmit ng*
10020 0 0 allow ip from table(9) to any in recv ng*
10025 0 0 allow ip from any to table(9) out xmit ng*
10030 3 529 allow ip from any to any via ng*
10120 0 0 netgraph tablearg ip from table(12) to any in recv ng*
10125 0 0 netgraph tablearg ip from any to table(13) out xmit ng*
10130 0 0 netgraph tablearg ip from table(14) to any in recv ng*
10135 0 0 netgraph tablearg ip from any to table(15) out xmit ng*
10220 0 0 allow ip from table(9) to table(2) in recv ng*
10225 0 0 allow ip from table(2) to table(9) out xmit ng*
10230 0 0 allow ip from table(9) to table(3) in recv ng*
10235 0 0 allow ip from table(3) to table(9) out xmit ng*
65535 9030 1153491 allow ip from any to any

Инета нет у юзвера ..... :(

Re: ng_car - нарезка скорости

Добавлено: Вт апр 13, 2010 10:04 am
~AsmodeuS~
видно что в шейпер попадает но из него не выходит

Re: ng_car - нарезка скорости

Добавлено: Вт апр 13, 2010 10:46 am
kvirtu
~AsmodeuS~ писал(а):видно что в шейпер попадает но из него не выходит
Так , а как решить проблему ???
Где и что пробывать менять в скрипте ???? или правилах ipfw ???

Re: ng_car - нарезка скорости

Добавлено: Ср апр 14, 2010 3:13 pm
kvirtu
Заработало !
просто надо было нат поднять:
nat 123 config ip %EXTERNAL_IP% log
add 65030 nat 123 ip from %VPN_NET% to any
add 65040 nat 123 ip from any to %EXTERNAL_IP%

и еще подгрузить модуль ipfw_nat.

Re: ng_car - нарезка скорости

Добавлено: Пт апр 16, 2010 2:35 pm
Kot
kvirtu
просто надо было нат поднять:
nat 123 config ip %EXTERNAL_IP% log
add 65030 nat 123 ip from %VPN_NET% to any
add 65040 nat 123 ip from any to %EXTERNAL_IP%

и еще подгрузить модуль ipfw_nat.
А можно пожалуйста поподробнее ? как этот нат поднять ?

Re: ng_car - нарезка скорости

Добавлено: Пт апр 16, 2010 8:15 pm
Matrixnts
с натом это хорошо, а если не использовать НАТ, а пул с реальными адресами?

Re: ng_car - нарезка скорости

Добавлено: Сб апр 17, 2010 7:25 am
Abram
Matrixnts писал(а):с натом это хорошо, а если не использовать НАТ, а пул с реальными адресами?
Никаких ipfw, просто ng_car на ng* интерфейсах: viewtopic.php?f=5&t=5195
Интервалы работают (надо всунуть скрипт в крон).

Re: ng_car - нарезка скорости

Добавлено: Вс апр 18, 2010 7:23 am
Matrixnts
я вижу в скрипте используется связка all shape, а как она будет работать с скоростями 20 мбит/сек например?