Подскажите пожалуйста, что и куда надо дописать или наоборот убрать, чтоб работало.
Дело в том что я не могу переключиться на новый сервер, пока не работает шейпер хотя бы по минимуму, отключать старый естественно нельзя пока не заработает новый(настройка в слепую

FreeBSD 6.4 x64
Ядро собрано с опциями
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options NETGRAPH
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
rc.firewall
Код: Выделить всё
#!/bin/sh
fwcmd="/sbin/ipfw"
${fwcmd} -f flush
${fwcmd} -f queue flush
${fwcmd} -f pipe flush
${fwcmd} add 100 allow ip from any to me
${fwcmd} add 200 allow ip from me to any
Код: Выделить всё
startup:
set user admin ********* admin
set user view ********
set console self 172.18.1.3 5005
set console open
set web self 172.18.1.3 5006
set web open
default:
load pptp_server
pptp_server:
create bundle template B
set iface enable proxy-arp
set ifce idle 1800
set iface enable tcpmssfix
set iface up-script /usr/local/etc/mpd5/shaping/up.sh
set iface down-script /usr/local/etc/mpd5/shaping/down.sh
set ipcp yes vjcomp
set ipcp ranges 172.18.1.3 89.yyy.yyy.0/22
set ipcp dns 89.xxx.xxx.84
set bundle enable compression
create link template L pptp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
load radius
set link keep-alive 10 60
set link mtu 1460
set pptp self 172.18.1.3
set pptp disable windowing
set pptp enable always-ack
set link enable incoming
radius:
set radius config /usr/local/etc/mpd5/radius.conf
set radius server 172.18.1.2 1812 1813
set radius retries 3
set radius timeout 3
set radius me 172.18.1.3
set auth acct-update 300
set auth enable radius-auth
set auth enable radius-acct
set radius enable message-authentic
Код: Выделить всё
#!/bin/sh
IF=$1
IP=$4
TP=`echo "SELECT account_tariff_link.tariff_id FROM account_tariff_link INNER JOIN users ON account_tariff_link.account_id=users.id INNER JOIN ip_groups ON users.login=ip_groups.uname WHERE ip_groups.ip=inet_aton('$IP') AND account_tariff_link.is_deleted=0 AND users.is_deleted=0 AND ip_groups.is_deleted=0" | mysql -u init -p****** -h 172.18.1.2 UTM5 | sed '1d'`
SP20="320Kbit/s"
SP21="512Kbit/s"
IFNUM=$(awk "BEGIN { printf \"%03s\", substr(\"$1\", 3) }")
if [ "$TP" = "20" ]; then
/sbin/ipfw pipe $(echo 30$IFNUM) config bw $SP20
/sbin/ipfw pipe $(echo 31$IFNUM) config bw $SP20
/sbin/ipfw add $(echo 30$IFNUM) pipe $(echo 30$IFNUM) ip from $IP to any
/sbin/ipfw add $(echo 31$IFNUM) pipe $(echo 31$IFNUM) ip from any to $IP
echo "UNLIM-128 $TP" >> /var/log/mpdd.log
fi
if [ "$TP" = "21" ]; then
/sbin/ipfw pipe $(echo 30$IFNUM) config bw $SP21
/sbin/ipfw pipe $(echo 31$IFNUM) config bw $SP21
/sbin/ipfw add $(echo 30$IFNUM) pipe $(echo 30$IFNUM) ip from $IP to any
/sbin/ipfw add $(echo 31$IFNUM) pipe $(echo 31$IFNUM) ip from any to $IP
echo "UNLIM-256 $TP" >> /var/log/mpdd.log
fi
Код: Выделить всё
#!/bin/sh
IF=$1
TP=`echo "SELECT account_tariff_link.tariff_id FROM account_tariff_link INNER JOIN users ON account_tariff_link.account_id=users.id INNER JOIN ip_groups ON users.login=ip_groups.uname WHERE ip_groups.ip=inet_aton('$IP') AND account_tariff_link.is_deleted=0 AND users.is_deleted=0 AND ip_groups.is_deleted=0" | mysql -u init -p******* -h 172.18.1.2 UTM5 | sed '1d'`
IFNUM=$(awk "BEGIN { printf \"%03s\", substr(\"$1\", 3) }")
if [ "$TP" = "20" ]; then
ipfw pipe delete $(echo 30$IFNUM)
ipfw pipe delete $(echo 31$IFNUM)
ipfw delete $(echo 30$IFNUM)
ipfw delete $(echo 31$IFNUM)
ipfw delete $(echo 32$IFNUM)
fi
if [ "$TP" = "21" ]; then
ipfw pipe delete $(echo 30$IFNUM)
ipfw pipe delete $(echo 31$IFNUM)
ipfw delete $(echo 30$IFNUM)
ipfw delete $(echo 31$IFNUM)
ipfw delete $(echo 32$IFNUM)
fi