Перейти к содержимому
Калькуляторы

Обрыв скачивания больших файлов

Ситуация следующая: 

Linux Softrouter (Debian 10).

Все подкручено, поднастроено.. НО

у нескольких клиентов нашлась проблема - обрыв загрузки с некоторых файлообменников.

Хоть 100Мб хоть 1Гб линк(на 1Гб успевает стянуть почти все) - файл 14Гбайт - обрывается. 

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

но все же.. 

Подозрения где-то на уровне sysctl -w net.netfilter....... Но вот где именно, пока не пойму.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А без ната всё нормально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Правила firewall'а в студию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

46 минут назад, disappointed сказал:

А без ната всё нормально?

В процессе проверки

29 минут назад, ne-vlezay80 сказал:

Правила firewall'а в студию

Там ничего интересного, без особых лимитов, вот здесь бы я поискал поправки в лимитах 

#!/bin/bash

/sbin/ethtool -K eth1 tx off rx off
#можно поменять буферы 256-4096

ethtool -G eth1 rx 2048 tx 2048

/sbin/ethtool -A eth1 rx off tx off

/sbin/ethtool -A eth1 autoneg off


/sbin/ifconfig eth1 txqueuelen 10000
/sbin/ifconfig eth1.1220 txqueuelen 10000
/sbin/ifconfig eth1.3200 txqueuelen 10000
/sbin/ifconfig eth1.3201 txqueuelen 10000
/sbin/ifconfig eth1.3300 txqueuelen 10000
/sbin/ifconfig eth1.3301 txqueuelen 10000
/sbin/ifconfig eth1.3302 txqueuelen 10000
/sbin/ifconfig eth1.3400 txqueuelen 10000
/sbin/ifconfig eth1.3501 txqueuelen 10000
/sbin/ifconfig eth1.3502 txqueuelen 10000

/sbin/ifconfig eth1.546 txqueuelen 10000
/sbin/ifconfig eth1.547 txqueuelen 10000

/sbin/sysctl -w net.ipv4.neigh.default.gc_thresh1=4096
# > /dev/null 2>&1
/sbin/sysctl -w net.ipv4.neigh.default.gc_thresh2=8192
# > /dev/null 2>&1
/sbin/sysctl -w net.ipv4.neigh.default.gc_thresh3=8192
# > /dev/null 2>&1

echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 16384 > /proc/sys/net/ipv4/neigh/default/gc_thresh3


#ADDEDD 12.01.18
net.ipv4.neigh.default.base_reachable_time=86400
net.ipv4.neigh.default.gc_stale_time=86400

echo 86400 > /proc/sys/net/ipv4/neigh/default/base_reachable_time
echo 86400 > /proc/sys/net/ipv4/neigh/default/gc_stale_time


/sbin/sysctl -w net.ipv4.netfilter.ip_conntrack_buckets=131070
/sbin/sysctl -w net.netfilter.nf_conntrack_max=1048560
# > /dev/null 2>&1


sysctl -w net.netfilter.nf_conntrack_acct=0
sysctl -w net.netfilter.nf_conntrack_generic_timeout=60
sysctl -w net.netfilter.nf_conntrack_expect_max=256
net.netfilter.nf_conntrack_helper=1
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_syn_sent=60
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_syn_sent2=60
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_syn_recv=60
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=600
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_last_ack=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close=30
sysctl -w net.netfilter.nf_conntrack_udp_timeout=30
sysctl -w net.netfilter.nf_conntrack_udp_timeout_stream=45
sysctl -w net.netfilter.nf_conntrack_icmp_timeout=1
sysctl -w net.netfilter.nf_conntrack_log_invalid=0
sysctl -w net.netfilter.nf_conntrack_tcp_be_liberal = 0
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=600
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_last_ack=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_max_retrans=30
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=30
sysctl -w net.netfilter.nf_conntrack_tcp_loose=1
sysctl -w net.netfilter.nf_conntrack_tcp_be_liberal=0
sysctl -w net.netfilter.nf_conntrack_tcp_max_retrans=3
sysctl -w net.netfilter.nf_conntrack_udp_timeout=60
sysctl -w net.netfilter.nf_conntrack_udp_timeout_stream=60
sysctl -w net.netfilter.nf_conntrack_icmp_timeout=10
sysctl -w net.netfilter.nf_conntrack_timestamp=0
sysctl -w net.netfilter.nf_conntrack_events=1
sysctl -w net.netfilter.nf_conntrack_events_retry_timeout=15


#/sbin/sysctl -w net.netfilter.nf_conntrack_generic_timeout=30
#> /dev/null 2>&1
#/sbin/sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=30
# > /dev/null 2>&1

/sbin/sysctl -w  net.ipv4.tcp_max_tw_buckets=1048576
#  > /dev/null 2>&1
/sbin/sysctl -w  net.netfilter.nf_conntrack_checksum=1
# > /dev/null 2>&1
echo 262140 > /sys/module/nf_conntrack/parameters/hashsize 
#> /dev/null 2>&1


#RP_filter
sysctl -w net.ipv4.conf.all.rp_filter=1
# > /dev/null 2>&1
sysctl -w net.ipv4.conf.eth1.rp_filter=1
sysctl -w net.ipv4.conf.eth22.rp_filter=1
#> /dev/null 2>&1
sysctl -w net.ipv4.conf.default.rp_filter=1
#> /dev/null 2>&1

#Misha Edit
sysctl -w net.ipv4.conf.all.accept_redirects=0 
#> /dev/null 2>&1
sysctl -w net.ipv4.conf.all.secure_redirects=0
# > /dev/null 2>&1

echo 1 > /proc/sys/net/ipv4/ip_forward 
#> /dev/null 2>&1




#####
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.tcp_syncookies=1
# increase TCP max buffer size setable using setsockopt()
# изменение размеров буферов для приема и отправки данных через сокеты, tcp-memory
sysctl -w net.core.rmem_default=16777216
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_default=16777216
sysctl -w net.core.wmem_max=16777216
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
# net.ipv4.tcp_rmem=4096 87380 16777216
# net.ipv4.tcp_wmem=4096 65536 16777216
echo '3--------------------------'
sysctl -w net.ipv4.tcp_rmem="4096 16777216 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 16777216 16777216"

# Максимальное число сокетов в состоянии TIME-WAIT одновременно. При превышении этого порога лишний сокет разрушается 
# и пишется сообщение в системный журнал. Цель этой переменной – предотвращение простейших разновидностей DoS-атак
# Значение по-умолчанию –     180000
sysctl -w net.ipv4.tcp_max_tw_buckets=1800000

# Переменная задает максимальное число осиротевших (не связанных ни с
# одним процессом) сокетов. Если это число будет превышено, то такие
# соединения разрываются, а в системный журнал пишется предупреждение. Это
# ограничение существует исключительно ради предотвращения простейших
# разновидностей DoS-атак. 
sysctl -w net.ipv4.tcp_max_orphans=262144
# net.ipv4.tcp_max_orphans=65536

# net.ipv4.tcp_max_syn_backlog=262144

# When in a non-Napi (or Interrupt) mode, this counter indicates that the stack is dropping packets.
# net.core.netdev_max_backlog=10000
sysctl -w net.core.netdev_max_backlog=30000

# net.core.somaxconn=262144

# These ensure that TIME_WAIT ports either get reused or closed fast.
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1

# защита от syn-флуда
sysctl -w net.ipv4.tcp_syncookies=1

# запрет приёма ICMP-редиректов
# net.ipv4.conf.all.accept_redirects=0
# net.ipv4.conf.default.accept_redirects=0

# игнорируем широковещательные ICMP-запросы
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

# игнорируем пакеты, в которых указан путь до источника
sysctl -w net.ipv4.conf.all.accept_source_route=0

# Укажем диапазон портов которые разрешено использовать в качестве
# локальных. По умолчанию этот диапазон достаточно мал, и при высокой
# нагрузке вам их может просто не хватить
# net.ipv4.ip_local_port_range=16384 61000
sysctl -w net.ipv4.ip_local_port_range=1024 65535

# Уменьшим время которое используется для сообщений
# о поддержке keep alive соединений
sysctl -w net.ipv4.tcp_keepalive_time=7200

# Уменьшим время до закрытия TCP соединения, данный параметр стоит менять
# только на высоко нагруженных серверах.
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=7200

# Другие таймауты:
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout_stream=60
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout=60
#sysctl -w net.ipv4.netfilter.ip_conntrack_generic_timeout=3600

# В случае kernel panic reboot через 10 секунд (panic может возникнуть при высокой нагрузке и irqbalance, например)
#sysctl -w kernel.panic=10

# чтобы не переполнялась арп-таблица (пишет в логах kernel: ipv4: Neighbour table overflow)
sysctl -w net.ipv4.neigh.default.gc_thresh1=4096
sysctl -w net.ipv4.neigh.default.gc_thresh2=8192
sysctl -w net.ipv4.neigh.default.gc_thresh3=16384

#pptp
modprobe ip_nat_pptp



echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo performance >/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo performance >/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

RST с какого-то DPI или типа того.

Я бы дамп снял, и посмотрел на момент обрыва - что к этому приводит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, pr0lan сказал:

Ситуация следующая: 

Linux Softrouter (Debian 10).

Все подкручено, поднастроено.. НО

у нескольких клиентов нашлась проблема - обрыв загрузки с некоторых файлообменников.

Хоть 100Мб хоть 1Гб линк(на 1Гб успевает стянуть почти все) - файл 14Гбайт - обрывается. 

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

но все же.. 

Подозрения где-то на уровне sysctl -w net.netfilter....... Но вот где именно, пока не пойму.

 

 

СОРМ, ТСПУ или подобное установлено?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, straus сказал:

СОРМ, ТСПУ или подобное установлено?

Украина, не установлено (пока...)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

СОРМ, ТСПУ не должны вообще-то рвать соединения.

 

А почему при высокой нагрузке возникает паника? Такого быть вообще-то не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

42 минуты назад, ne-vlezay80 сказал:

СОРМ, ТСПУ не должны вообще-то рвать соединения.

 

А почему при высокой нагрузке возникает паника? Такого быть вообще-то не должно.

Это ко мне вопрос, или, потерял нить. У меня нет высоких нагрузок, все клиенты в это время спокойно качают/youtube/сайтики смотрят.. но вот есть такие, которые не могут большие файлы выкачать, проверил - и правда обрывается закачка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 минуты назад, pr0lan сказал:

Это ко мне вопрос, или, потерял нить. У меня нет высоких нагрузок, все клиенты в это время спокойно качают/youtube/сайтики смотрят.. но вот есть такие, которые не могут большие файлы выкачать, проверил - и правда обрывается закачка.

Значит попробовать скачать с помощью программы, которая показывает Disconnection Reason.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стыдно признаться, но причина - банальна. Раз в 15 минут запускается кой какой скрипт, и буквально на долю секунды тушит файрвол.

При скачивании мелких файлов статистически это не проявлялось совсем, видимо еще и реконнект с некоторых серверов срабатывал.

А вот то, что больше - не влезало в эти 15 минут у некоторых клиентов по лимиту скорости. Как-то так.

Спасибо за понимание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.