Подключаюсь к инету через vpn, если vpn-соединение настроить на компе с win7, то скорость скачивания 1-1.2 мб/сек.
Если на FreeBSD + MPD5 + PF - клиент получает 40-50 кб/сек (в utorrent скорость больше, но все равно не то)
Сначала думал свитч/провода - на FreeBSD через wget скорость такая же, так что не они.
pf отключать пробовал - то же самое.
Что может быть?
Подскажите, куда копать?
Ах да, железо:
Celeron 566 + 320Mb RAM \
3com905 + 3com905B(смотрит к провайдеру, xl0)
rc.conf
Код: Выделить всё
defaultrouter="xxx"
hostname="xxx"
ifconfig_xl0="inet xxx netmask 0xffffff00 media 100baseTX mediaopt full-duplex up"
ifconfig_xl1="inet 192.168.0.1 netmask 0xffffff00 media 100baseTX mediaopt full-duplex up"
fsck_y_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pfstatd_enable="NO"
sendmail_enable="NO"
sshd_enable="YES"
mpd_enable="YES"
gateway_enable="YES"
named_enable="YES"
mysql_enable="YES"
apache22_enable="YES"
Код: Выделить всё
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80009<RXCSUM,VLAN_MTU,LINKSTATE>
ether xxxx
inet xxxx netmask 0xffffff00 broadcast yyyy
media: Ethernet 100baseTX <full-duplex>
status: active
xl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:60:98:ef:d1:16
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet 100baseTX <full-duplex>
status: active
pflog0: flags=0<> metric 0 mtu 33200
pfsync0: flags=0<> metric 0 mtu 1460
syncpeer: 224.0.0.240 maxupd: 128
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
inet xxxx --> xxxx netmask 0xffffffff
Код: Выделить всё
startup:
default:
load pptp_client
pptp_client:
create bundle static B1
set iface route default
set iface enable tcpmssfix
set iface up-script /usr/local/etc/mpd5/pptp-up.sh
set iface down-script /usr/local/etc/mpd5/pptp-down.sh
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set ipcp no vjcomp
create link static L1 pptp
set link action bundle B1
set auth authname "xxxx"
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer xxx
set pptp disable windowing
open
Код: Выделить всё
def_gw=`route -n get default 2>&1 | grep gateway | awk '{print $2}'`
vpn_gw=`route -n get xxxx 2>&1 | grep gateway | awk '{print $2}'`
if [ $def_gw ]; then
echo $def_gw > /var/mpd5/default_gateway
route -n change default $4
else
rm -f /var/mpd5/default_gateway
route -n add default $4
fi
if [$vpn_gw ]; then
echo $vpn_gw > /var/mpd5/vpn_gateway
route -n change xxxx $def_gw
else
rm -f /var/mpd5/vpn_gateway
route -n add xxxx $def_gw
fi
Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`
echo $Today $TimeNow -PPTP-Up- GW = $4 WAN-IP = $3 >> /var/log/vpn.log
Код: Выделить всё
if [ -r /var/mpd5/default_gateway ]; then
def_gw=`cat /var/mpd5/default_gateway`
rm -f /var/mpd5/default_gateway
route -n change default $def_gw
else
route -n delete default
fi
if [ -r /var/mpd5/vpn_gateway ]; then
vpn_gw=`cat /var/mpd5/vpn_gateway`
rm -f /var/mpd5/vpn_gateway
route -n change xxxx $vpn_gw
else
route -n delete default
fi
Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`
echo $Today $TimeNow -PPTP-Down- >> /var/log/vpn.log
Код: Выделить всё
int_if="xl1"
ext_if="xl0"
vpn_if="ng0"
vpn_ip="xxxxx"
vpn_srv="yyyy"
table <ext_admins_ip> const { aaaaa }
set optimization aggressive
set block-policy drop
set skip on {lo0, $int_if}
scrub in all fragment reassemble
scrub out all random-id max-mss 1430
nat on $vpn_if inet from $int_if:network to {!self} -> ($vpn_if)
rdr on $vpn_if inet proto tcp from <ext_admins_ip> to $vpn_ip port {5909 3389} -> 192.168.0.10
# utorrent
rdr on $vpn_if inet proto udp from any to $vpn_ip port 45123 -> 192.168.0.10
block all
antispoof for {$ext_if, $vpn_if}
block quick inet6
block in quick from no-route to any
block in quick on {$ext_if, $vpn_if} from any to 255.255.255.255
block in quick from urpf-failed
block in log quick on $ext_if proto tcp from any to any port 22
block in log quick on $vpn_if proto tcp from !<ext_admins_ip> to $vpn_ip port 22
pass in inet proto icmp
pass in on $vpn_if proto tcp from <ext_admins_ip> to any port {22, 80, 3389, 5909}
pass on $ext_if proto tcp from $ext_if to $vpn_srv port 1723
pass on $ext_if proto gre from $ext_if to $vpn_srv
pass in on $vpn_if proto {tcp, udp} from any port 53 to any
pass out on $vpn_if from any to any
Код: Выделить всё
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
# Взято с kldstat
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_KSOCKET
options NETGRAPH_VJC
options NETGRAPH_IFACE