URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86648
[ Назад ]

Исходное сообщение
"SNAT + Низкая скорость"

Отправлено zatei , 21-Сен-09 07:34 
Заранее извиняюсь что наверное в сотый раз задаю этот вопрос но честно штудировал интернеты сутки и ничего полезного для моей ситуации не нашел.

Есть сервер с чистым свежим дебианом, настроенным iptables'ом и SNAT'ом, больше ничего серьезного нет.

Три интерфейса:
eth0 (смотрит в локалку провайдера 10.96.76.xxx)
eth1 (смотрит в мою домашнюю локалку 192.168.0.ххх)
ppp0 (VPN соединение посредством pptp-linux, внешний белый IP 88.84.xxx.xxx).

Два компа из домашней локалки пользуются всеми благами которые дает им сервер, и все это происходит с неимоверно низкой скоростью. Сервер старый двуядерный атлон 1600 Мгц.

По последним замерам скорость напрямую без сервера составила 70-80 Мегабит на вход и 50-60 на выход. Скорость при сборке системы с сервером составила 3-4(!!!) Мегабита вход и 0,5-1 Мегабит выход.

Интересная деталь в том что локальной сетью провайдера удается пользоваться без проблем, скорости великолепные, те же 80 мегабит тянет в легкую, правда загрузка процессора на сервере 15-20%. Все собрано проводами, никакого вайфая итд итп.

Что здесь происходит? Я специально отказался от маскарадинга в пользу производительности SNAT'a но толку никакого, в чем затык?

Заранее спасибо!

## Конфиг ##
*filter
:FORWARD ACCEPT [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT
-A INPUT -s vpn.xxxxxxx.ru -i eth0 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth0 -j DROP
-A INPUT -s 192.168.0.0/24 -i ppp0 -j DROP
-A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
-A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type destination-unreachable -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type source-quench -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type time-exceeded -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type parameter-problem -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 61000:61999 -j ACCEPT
-A INPUT -p udp -m udp --dport 61000:61999 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 65000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 65001 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport auth -j ACCEPT
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -d 10.96.0.0/16 -j SNAT --to-source 10.96.76.134
## Ниже две подсети доступные из локальной сети провайдера но имеющие свои белые внешники, всякие там ДНСы итд.
-A POSTROUTING -s 192.168.0.0/24 -d 80.252.136.64/28 -j SNAT --to-source 10.96.76.134
-A POSTROUTING -s 192.168.0.0/24 -d 80.252.130.250/31 -j SNAT --to-source 10.96.76.134
-A POSTROUTING -s 192.168.0.0/24 -d 10.10.122.64/27 -j SNAT --to-source 10.96.76.134
-A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 88.84.xxx.xxx
-A PREROUTING -p tcp -m tcp --dport 61010 -j DNAT --to-destination 192.168.0.2:61010
-A PREROUTING -p udp -m udp --dport 61011 -j DNAT --to-destination 192.168.0.2:61011
-A PREROUTING -p tcp -m tcp --dport 61020 -j DNAT --to-destination 192.168.0.2:61020
COMMIT
## Конфиг ##


Содержание

Сообщения в этом обсуждении
"SNAT + Низкая скорость"
Отправлено pavel_simple , 21-Сен-09 13:27 
правила нормальные , соответственно нужно искать косяк в
1. pptp как работает? debug? dump?
2. маршруты как прописаны? ip ru sh ; ip r
3. проверить mtu везде.
4. может пров по ttl'у скорость режет?
5. ну и железо на всякий пожарный проверить


"SNAT + Низкая скорость"
Отправлено zatei , 21-Сен-09 16:06 
Чтож поехали, pptp работает через pptp-linux.

zsrv:/# pon vpn debug dump
##Dump##
pppd options in effect:
debug                   # (from command line)
holdoff 5               # (from /etc/ppp/peers/vpn)
persist                 # (from /etc/ppp/peers/vpn)
maxfail 0               # (from /etc/ppp/peers/vpn)
dump                    # (from command line)
noauth                  # (from /etc/ppp/options.pptp)
name konev              # (from /etc/ppp/peers/vpn)
remotename PPTP         # (from /etc/ppp/peers/vpn)
pty pptp 10.10.122.67 --nolaunchpppd            # (from /etc/ppp/peers/vpn)
crtscts                 # (from /etc/ppp/options)
asyncmap 0              # (from /etc/ppp/options)
lcp-echo-failure 4      # (from /etc/ppp/options)
lcp-echo-interval 30    # (from /etc/ppp/options)
hide-password           # (from /etc/ppp/options)
ipparam VPN2            # (from /etc/ppp/peers/vpn)
noipdefault             # (from /etc/ppp/peers/vpn)
defaultroute            # (from /etc/ppp/peers/vpn)
proxyarp                # (from /etc/ppp/options)
nobsdcomp               # (from /etc/ppp/options.pptp)
nodeflate               # (from /etc/ppp/options.pptp)
nomppe                  # (from /etc/ppp/peers/vpn)
nomppe-128              # (from /etc/ppp/peers/vpn)
nomppe-stateful         # (from /etc/ppp/peers/vpn)
noipx                   # (from /etc/ppp/options)
##Dump##

zsrv:/# poff vpn
##Debug##
Sep 21 15:59:11 zsrv pppd[3270]: using channel 6
Sep 21 15:59:12 zsrv pppd[3270]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x27e267db> <pcomp> <accomp>]
Sep 21 15:59:14 zsrv pppd[3270]: rcvd [LCP ConfReq id=0x1 <auth chap MD5> <magic 0x918bab47>]
Sep 21 15:59:14 zsrv pppd[3270]: sent [LCP ConfAck id=0x1 <auth chap MD5> <magic 0x918bab47>]
Sep 21 15:59:15 zsrv pppd[3270]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x27e267db> <pcomp> <accomp>]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x27e267db> <pcomp> <accomp>]
Sep 21 15:59:15 zsrv pppd[3270]: sent [LCP EchoReq id=0x0 magic=0x27e267db]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [CHAP Challenge id=0x1 <0a1c07de416ab715069bd0f92fa82364>, name = "vpn.xxxxxxx.ru"]
Sep 21 15:59:15 zsrv pppd[3270]: sent [CHAP Response id=0x1 <d44c28db55d6536a61955c389eb531b2>, name = "name"]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [CHAP Success id=0x1 ""]
Sep 21 15:59:15 zsrv pppd[3270]: sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [IPCP ConfReq id=0x1 <addr 10.255.245.22>]
Sep 21 15:59:15 zsrv pppd[3270]: sent [IPCP ConfAck id=0x1 <addr 10.255.245.22>]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
Sep 21 15:59:15 zsrv pppd[3270]: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [IPCP ConfNak id=0x2 <addr 88.84.xxx.xxx>]
Sep 21 15:59:15 zsrv pppd[3270]: sent [IPCP ConfReq id=0x3 <addr 88.84.xxx.xxx>]
Sep 21 15:59:15 zsrv pppd[3270]: rcvd [IPCP ConfAck id=0x3 <addr 88.84.xxx.xxx>]
Sep 21 15:59:15 zsrv pppd[3270]: Script /etc/ppp/ip-up started (pid 3279)
Sep 21 15:59:15 zsrv pppd[3270]: Script /etc/ppp/ip-up finished (pid 3279), status = 0x0
Sep 21 16:01:49 zsrv pppd[3270]: Script pptp 10.10.122.67 --nolaunchpppd finished (pid 3271), status = 0x0
Sep 21 16:01:49 zsrv pppd[3270]: Script /etc/ppp/ip-down started (pid 3297)
Sep 21 16:01:49 zsrv pppd[3270]: Script /etc/ppp/ip-down finished (pid 3297), status = 0x0
##Debug##


"SNAT + Низкая скорость"
Отправлено zatei , 21-Сен-09 16:11 
Маршруты

zsrv:/# ip ru sh
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

zsrv:/# ip r
10.255.245.22         dev ppp0  proto kernel  scope link  src 88.84.xxx.xxx
10.10.122.67          via 10.96.76.1 dev eth0  src 10.96.76.134
80.252.130.250/31     via 10.96.76.1 dev eth0
80.252.136.64/28      via 10.96.76.1 dev eth0
10.10.122.64/27       via 10.96.76.1 dev eth0
192.168.0.0/24        dev eth1  proto kernel  scope link  src 192.168.0.1
10.96.76.0/22         dev eth0  proto kernel  scope link  src 10.96.76.134
10.96.0.0/16          via 10.96.76.1 dev eth0
169.254.0.0/16        dev eth1  scope link  metric 1000
default               dev ppp0  scope link

zsrv:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.255.245.22   *               255.255.255.255 UH    0      0        0 ppp0
vpn.veganet.ru  10.96.76.1      255.255.255.255 UGH   0      0        0 eth0
80.252.130.250  10.96.76.1      255.255.255.254 UG    0      0        0 eth0
80.252.136.64   10.96.76.1      255.255.255.240 UG    0      0        0 eth0
10.10.122.64    10.96.76.1      255.255.255.224 UG    0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth1
10.96.76.0      *               255.255.252.0   U     0      0        0 eth0
10.96.0.0       10.96.76.1      255.255.0.0     UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth1
default         *               0.0.0.0         U     0      0        0 ppp0


"SNAT + Низкая скорость"
Отправлено zatei , 21-Сен-09 16:21 
Как проверить везде mtu?
Врядли это железо, в локалке скорость шикарная.
Врядли провайдер режет скорость по ttl'у, напрямую ведь без сервера скорость тоже шикарная.
Что-то мне подсказывает что это действительно у меня криво поднят VPN, только понятия не имею где...

"SNAT + Низкая скорость"
Отправлено sonkilla , 21-Сен-09 20:22 
>Как проверить везде mtu?
>Врядли это железо, в локалке скорость шикарная.
>Врядли провайдер режет скорость по ttl'у, напрямую ведь без сервера скорость тоже
>шикарная.
>Что-то мне подсказывает что это действительно у меня криво поднят VPN, только
>понятия не имею где...

ifconfig пакажет mtu


"SNAT + Низкая скорость"
Отправлено zatei , 21-Сен-09 21:53 
MTU 1500 везде кроме интерфейса lo, там около 16000

"SNAT + Низкая скорость"
Отправлено zatei , 21-Сен-09 22:24 
Прошли еще почти сутки, изучил man pppd, перебрал все параметры, почистил конфиги, расставил по местам итд итп.

Результат нулевой, единственное что я заметил так это то что тест на speedtest.net сначала разгоняется почти до 30 mbt/s на треть секунды потом падает резко до 2,5-2,6 mbt/s и держится так какое-то время, потом мееедленно разгоняется до целых 3,5 mbt/s. Аплоад в процессе разгоняется с 0,6 mbt/s до 1,1 mbt/s. Навскидку 8 из 10 замеров показывали такие результаты, остальные с небольшими отклонениями, иногда с очень большими, иногда все внезапно взлетало до 25-30 mbit/s и держалось так весь тест, это какая-то мистика. :(((

###Конфиг options.pptp###
# Net Config
lock
defaultroute
noipdefault
#proxyarp
noipx

# Authentication
noauth
hide-password

# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
# (you may need to remove these refusals if the server is not using MPPE)
#refuse-pap
#refuse-eap
#refuse-chap
#refuse-mschap
nomppe
nomppe-128
nomppe-stateful

# Compression
nobsdcomp
nodeflate

# Reconnect if down
persist
maxfail 0
holdoff 5

# Flow control
crtscts
local
#modem
asyncmap 0

#mtu 3000
#mru 3000

# Peer check
lcp-echo-failure 4
lcp-echo-interval 30
###Конфиг options.pptp###

###Конфиг /peers/provider###
pty "pptp vpn.xxxxxxx.ru --nolaunchpppd"
name vasyapupkin
#ipparam provider
file /etc/ppp/options.pptp
###Конфиг /peers/provider###

Я плохо понял что дают переменные
# Flow control
crtscts
local
#modem
asyncmap 0
Может дело в них хотя пробовал менять, разницы почти нет, просто хочу знать что они дают.


"SNAT + Низкая скорость"
Отправлено pavel_simple. , 21-Сен-09 22:50 
попробуй поставить прокси-сервер на машине и посмотреть какая скорость будет через него.

если скорость будет высокая... значит провайдер на vpn сервере вставляет костыли. заодно проверь какая нагрузка на pptp и pppd при максимальном трафике. посмотри на user/sys проверь iowait

железо какое? pci сетевухи чьих будут?


"SNAT + Низкая скорость"
Отправлено sonkilla , 21-Сен-09 22:57 
попробуйте поставить mtu поменьше.

"SNAT + Низкая скорость"
Отправлено zatei , 22-Сен-09 01:30 
Сервер старый ноутбук :D
Железо естессно не интеловское и под таки задачи ниочем но я таки не понимаю причем здесь оно ведь в локальной сети скорости отличные.

Прокси ставить не подребовалось, только что впилил на него апач который с яндексовского зеркала скачивался не более 200 кбайт/с, естессно напрямую через апт, тормозит именно VPN.

Загрузка процессора при максимальном траффике через VPN составила не более 5%, при скачивании в локальной сети со скоростью 8-10 мбайт/c составила 10-15%.

Что значит "посмотри на user/sys" и как "проверить iowait"?

mtu ставил на 500, скорость только упала


"SNAT + Низкая скорость"
Отправлено pavel_simple. , 22-Сен-09 01:44 
>[оверквотинг удален]
>Прокси ставить не подребовалось, только что впилил на него апач который с
>яндексовского зеркала скачивался не более 200 кбайт/с, естессно напрямую через апт,
>тормозит именно VPN.
>
>Загрузка процессора при максимальном траффике через VPN составила не более 5%, при
>скачивании в локальной сети со скоростью 8-10 мбайт/c составила 10-15%.
>
>Что значит "посмотри на user/sys" и как "проверить iowait"?
>
>mtu ставил на 500, скорость только упала

или я чего-то не понял, или сказано небуло .... а сколько провайдер должен предоставлять по VPN?


"SNAT + Низкая скорость"
Отправлено pavel_simple. , 22-Сен-09 01:45 
>[оверквотинг удален]
>>
>>Загрузка процессора при максимальном траффике через VPN составила не более 5%, при
>>скачивании в локальной сети со скоростью 8-10 мбайт/c составила 10-15%.
>>
>>Что значит "посмотри на user/sys" и как "проверить iowait"?
>>
>>mtu ставил на 500, скорость только упала
>
>или я чего-то не понял, или сказано небуло .... а сколько провайдер
>должен предоставлять по VPN?

mtu таким маленьким делать не стоило


"SNAT + Низкая скорость"
Отправлено pavel_simple. , 22-Сен-09 01:47 
>[оверквотинг удален]
>Прокси ставить не подребовалось, только что впилил на него апач который с
>яндексовского зеркала скачивался не более 200 кбайт/с, естессно напрямую через апт,
>тормозит именно VPN.
>
>Загрузка процессора при максимальном траффике через VPN составила не более 5%, при
>скачивании в локальной сети со скоростью 8-10 мбайт/c составила 10-15%.
>
>Что значит "посмотри на user/sys" и как "проверить iowait"?
>
>mtu ставил на 500, скорость только упала

а ещё вывод tc -s qdisc


"SNAT + Низкая скорость"
Отправлено zatei , 22-Сен-09 11:06 
Провайдер должен выдавать до 100 мегабит/сек, у меня лимитированный тариф.

qdisc pfifo_fast 0: dev ppp0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 4630229 bytes 23357 pkt (dropped 298, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0

Опа, скинуто 298 пакетов, из-за этого? где копать?


"SNAT + Низкая скорость"
Отправлено pavel_simple , 22-Сен-09 12:51 
>Провайдер должен выдавать до 100 мегабит/сек, у меня лимитированный тариф.
>
>qdisc pfifo_fast 0: dev ppp0 root bands 3 priomap  1 2
>2 2 1 2 0 0 1 1 1 1 1
>1 1 1
> Sent 4630229 bytes 23357 pkt (dropped 298, overlimits 0 requeues 0)
>
> rate 0bit 0pps backlog 0b 0p requeues 0
>
>Опа, скинуто 298 пакетов, из-за этого? где копать?

а можно таки все интерфейсы увидеть?


"SNAT + Низкая скорость"
Отправлено zatei , 22-Сен-09 13:01 
zsrv:/usr/server# tc -s qdisc
qdisc pfifo_fast 0: dev eth0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 1704042735 bytes 1312569 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc pfifo_fast 0: dev eth1 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 173358739 bytes 2129259 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc pfifo_fast 0: dev ppp0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 930908 bytes 5057 pkt (dropped 1, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0

"SNAT + Низкая скорость"
Отправлено zatei , 22-Сен-09 19:15 
Мать перемать, tracert

zsrv:/usr/server# tracert ya.ru
traceroute to ya.ru (93.158.134.8), 30 hops max, 40 byte packets
1  10.255.245.22 (10.255.245.22)  0.864 ms  0.723 ms  0.629 ms
2  10.222.255.251 (10.222.255.251)  0.742 ms  0.820 ms  0.735 ms
3  gtw-197-1.provider.ru (88.84.197.1)  309.743 ms  309.035 ms  308.962 ms
4  80.252.128.53 (80.252.128.53)  308.852 ms  308.777 ms  308.694 ms
5  ix2-m9.yandex.net (193.232.244.93)  308.604 ms  308.528 ms  308.405 ms
6  silicon-vlan901.yandex.net (77.88.56.125)  308.321 ms  304.715 ms  304.372 ms
7  odin-vlan4.yandex.net (213.180.210.187)  304.093 ms  301.286 ms  301.018 ms
8  ya.ru (93.158.134.8)  300.376 ms  304.395 ms  304.113 ms

Как такое может проявляться при соединении с линуха и не проявляется при соединении с винды? Ведь как я уже упоминал напрямую из под винды подключаем ВПН и получаем скорость 80 мбит/с. Может всетаки что-то не так в настройках? Или таки провайдер косячит? Но почему именно из под линуха?


"SNAT + Низкая скорость"
Отправлено zatei , 23-Сен-09 17:05 
Ходил к админам нашего провайдера, показали мне как с их ноута с убунтой все великолепно пашет по VPN

Чтож, поставил Убунту 9.04 х64, прямо в гуйне настроил все как подобает, скорость не возросла. Единственное что приходит на ум это поставить х32 и пробовать в ней. Дебиан тоже был х64, может это проблема архитектуры, помнится были у меня подобные проблемы в стародавние времена экспериментов с убунтой.


"SNAT + Низкая скорость"
Отправлено zatei , 23-Сен-09 19:33 
Бесполезно...
Есть еще идеи? Или может другие клиенты VPN?

"SNAT + Низкая скорость"
Отправлено Koba LTD , 25-Сен-09 13:12 
>Бесполезно...
>Есть еще идеи? Или может другие клиенты VPN?

Вообщето проблема извесная - pptp реальзация очень не стобильная под линукс, причем нестобильность зависит от сетевухи в большей степени. Замечено что при небольших скоростях все нормально, при больших начинают дропаться пакеты на pptp - если включите debug то в логах увидите
выход
1) переберать сетевухи (на интоловских такого не наблюдал ни разу)
2) попробовать альтернативные драййвера
3) спросить у прова - может есть возможность вместо pptp l2tp - там таких проблем не замечено


"SNAT + Низкая скорость"
Отправлено ALex_hha , 25-Сен-09 13:39 
>Бесполезно...
>Есть еще идеи? Или может другие клиенты VPN?

Как вариант freebsd + mpd.