Предлагаю не самый элегантный, но рабочий рецепт по исправлению низкой скорости работы по PPTP. В двух словах - надо поменять маскарадинг на снат. А теперь подробнее:
# создаем нужные директории:
mkdir -p /usr/local/sbin
# создаем скрипт getip
echo "#!/bin/sh" > /usr/local/sbin/getip
echo "EXTIF=\$1" >> /usr/local/sbin/getip
echo "IFCONFIG=/sbin/ifconfig" >> /usr/local/sbin/getip
echo "AWK=/usr/bin/awk" >> /usr/local/sbin/getip
echo "\$IFCONFIG \$EXTIF | \$AWK /\$EXTIF/'{next}//{split(\$0,a,\":\");split(a[2],a,\" \");print a[1];exit}'" >> /usr/local/sbin/getip
# сие создаст файл /usr/local/sbin/getip со следующим содержанием:
Code:
#!/bin/sh
EXTIF=$1
IFCONFIG=/sbin/ifconfig
AWK=/usr/bin/awk
$IFCONFIG $EXTIF | $AWK /$EXTIF/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'
# создаем скрипт masq2snat
echo "#!/bin/sh" > /usr/local/sbin/masq2snat
echo "iptables=/usr/sbin/iptables" >> /usr/local/sbin/masq2snat
echo "awk=/usr/bin/awk" >> /usr/local/sbin/masq2snat
echo "grep=/bin/grep" >> /usr/local/sbin/masq2snat
echo "export iptables" >> /usr/local/sbin/masq2snat
echo "\$iptables -t nat -nvL POSTROUTING | \$grep MASQUERADE | \\" >> /usr/local/sbin/masq2snat
echo " \$awk '{ gsub(/!/, \"! \", \$8); system( \"\$iptables -t nat -I POSTROUTING -o \"\$7\" -s \"\$8\" -d \"\$9\" -j SNAT --to-source \\\`/usr/local/sbin/getip \"\$7\"\\\`\") }'" >> /usr/local/sbin/masq2snat
# сие создаст файл /usr/local/sbin/masq2snat со следующим содержанием:
Code:
#!/bin/sh
iptables=/usr/sbin/iptables
awk=/usr/bin/awk
grep=/bin/grep
export iptables
$iptables -t nat -nvL POSTROUTING | $grep MASQUERADE | \
$awk '{ gsub(/!/, "! ", $8); system( "$iptables -t nat -I POSTROUTING -o "$7" -s "$8" -d "$9" -j SNAT --to-source \`/usr/local/sbin/getip "$7"\`") }'
# проапдейтим скрипт post-firewall
echo "#!/bin/sh" >> /usr/local/sbin/post-firewall
echo "/usr/local/sbin/masq2snat" >> /usr/local/sbin/post-firewall
# добавляем права на выполнение скриптам
chmod +x /usr/local/sbin/*
# сохраняем все полученное во флеше
flashfs save && flashfs commit && flashfs enable
На моем шестимегабитном тарифе после перехода с PPPoE на PPTP максимальная скорость упала до 2-3 мегабит. После замены маскарадинга на snat скорость поднялась до прежних значений.