Погуглив по данной теме понял, что это тоже полезно будет: проц Intel E5320, 4GB оперативы, 8 сетевых Интерфейсов Intel(R) PRO/1000 Network Connection 6.9.14 (дрова родные от Фряхи). MTU1500.
Ядро пересобрано без поддержки поллинга, с поддержкой нетграф и ipfw. Интересующие меня соединения проходят примерно через 6 правил ipfw.
Поднимаю на сервере одно PPTP соединение (назовем его "главным"), в данном случае рассматриваемый сервер является клиентом, тем самым я объединяю две сети. По этому тоннелю должно проходить из одной сети на находящийся в другой сети ВПН-сервер еще порядка 500 PPTP-туннелей (назовем их ВПНы).
Без какого-либо вмешательства в настройки ядра тоннель прекрасно поднимается, пакеты летят, но PPTP соединения созданные внутри "главного" разрываются каждые 5-10 минут, при этом по показаниям mpd сам "главный" линк висит и все в нем ОКе.
По показаниям
Код: Выделить всё
top -SIPМеняю параметры ядра (в их значения не особо вчитывался, но судя по аналогичным постам в инете обычно их всегда и меняют, сами параметры будут указаны ниже) - в итоге получаю, что тоннели перестают разрываться (50 минут ждал), но появляются потери ~10-15% по "главному" линку и соответственно качество ВПНов также падает (потери), при этом сохраняется сама скорость ВПНов (они ограничены 512кбит/с другим раутером). Как это так выходит не совсем понятно мне, скорость проверял по speed.yoip.ru.
Смотрю
Код: Выделить всё
netstat -hw1 -Iem6Конфиги:
mpd5.conf:
sysctl (которые менялись):main:
create bundle static main_B
set iface enable tcpmssfix
set iface up-script /usr/local/bin/scripts/mpd-up-ng0
set iface down-script /usr/local/bin/scripts/mpd-down-ng0
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static main_L pptp
set link enable multilink
set link action bundle main_B
set auth authname ...
set auth password ...
set link max-redial 0
set link keep-alive 5 40
set link yes passive
set pptp peer ...
set pptp self ...
set pptp enable windowing
open
Показать конкретнее вывод нет возможности. Параметры ядра менялись на лету и сразу же проверялись, без записи их в loader.conf и sysctl.conf, поэтому представленные здесь значения после ребута и могут быть "по умолчанию".net.inet.ip.fastforwarding: 0
net.inet.tcp.rfc1323: 1
net.inet.tcp.sendspace: 32768
net.inet.tcp.recvspace: 65536
net.inet.tcp.sendbuf_max: 262144
kern.ipc.maxsockbuf: 262144
kern.ipc.maxpipekva: 68415488
kern.ipc.maxsockets: 25600
Что может ограничивать так скорость? Какие параметры ядра повлияли на исчезновение дисконнектов?
