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

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Сб апр 03, 2010 11:04 am

Подскажите плиз, уже форум перечитал до дыр, почему шейпер не пашет.
Имею: 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 - ничего не выдает
http://www.ultranet.ks.ua - локальная сеть в Херсоне

~AsmodeuS~
Site Admin
Сообщения: 5706
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

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

Сообщение ~AsmodeuS~ » Чт апр 08, 2010 6:20 am

заворот в шейпер пропустили

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

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

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Чт апр 08, 2010 9:06 am

~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" - этот параметр менять нужно ???
и там еще дальше идут переменные ...
http://www.ultranet.ks.ua - локальная сеть в Херсоне

~AsmodeuS~
Site Admin
Сообщения: 5706
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

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

Сообщение ~AsmodeuS~ » Чт апр 08, 2010 11:01 am

если у Вас mpd тогда просто запускать этот скрипт и будет Вам щастье

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Чт апр 08, 2010 1:40 pm

~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 не работает, где мои грабли ???
Последний раз редактировалось kvirtu Пт апр 09, 2010 1:07 pm, всего редактировалось 1 раз.
http://www.ultranet.ks.ua - локальная сеть в Херсоне

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Пт апр 09, 2010 12:54 pm

Сегодня разбирался со скриптом shaper_start.sh и выяснил что при указании INTERNAL_INTERFACE=ng* инет не ходит, если указать внутренний интерфейс, смотрящий в сетку , инет пашет, но шейпер нет ....
Что у меня не так настроено ???
http://www.ultranet.ks.ua - локальная сеть в Херсоне

~AsmodeuS~
Site Admin
Сообщения: 5706
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

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

Сообщение ~AsmodeuS~ » Пт апр 09, 2010 2:26 pm

ipfw f

shaper_start.sh start

ipfw table 10 list

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Сб апр 10, 2010 6:59 am

~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

Инета нет у юзвера ..... :(
http://www.ultranet.ks.ua - локальная сеть в Херсоне

~AsmodeuS~
Site Admin
Сообщения: 5706
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

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

Сообщение ~AsmodeuS~ » Вт апр 13, 2010 10:04 am

видно что в шейпер попадает но из него не выходит

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Вт апр 13, 2010 10:46 am

~AsmodeuS~ писал(а):видно что в шейпер попадает но из него не выходит
Так , а как решить проблему ???
Где и что пробывать менять в скрипте ???? или правилах ipfw ???
http://www.ultranet.ks.ua - локальная сеть в Херсоне

kvirtu
Сообщения: 363
Зарегистрирован: Вс июн 04, 2006 11:10 am
Контактная информация:

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

Сообщение kvirtu » Ср апр 14, 2010 3:13 pm

Заработало !
просто надо было нат поднять:
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.
http://www.ultranet.ks.ua - локальная сеть в Херсоне

Kot
Сообщения: 16
Зарегистрирован: Пн мар 01, 2010 8:43 am

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

Сообщение Kot » Пт апр 16, 2010 2:35 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.
А можно пожалуйста поподробнее ? как этот нат поднять ?

Matrixnts
Сообщения: 194
Зарегистрирован: Вс апр 06, 2008 7:07 pm
Контактная информация:

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

Сообщение Matrixnts » Пт апр 16, 2010 8:15 pm

с натом это хорошо, а если не использовать НАТ, а пул с реальными адресами?

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

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

Сообщение Abram » Сб апр 17, 2010 7:25 am

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

Matrixnts
Сообщения: 194
Зарегистрирован: Вс апр 06, 2008 7:07 pm
Контактная информация:

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

Сообщение Matrixnts » Вс апр 18, 2010 7:23 am

я вижу в скрипте используется связка all shape, а как она будет работать с скоростями 20 мбит/сек например?

Ответить