ng_car - нарезка скорости
Добавлено: Сб апр 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 - ничего не выдает
Имею: 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 - ничего не выдает