- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
"max clients is also limited by the number of socket connections available on the system (~64k)"
видимо, ошибочно?
Из контекста вырвано. Речь об исходящих соединениях.
Ну или какой-то старой системе.
Подскажите, что именно отслеживать? Поставил munin и добавил плагин nginx_status.
Да, вот это и еще нестандартный плагин tcp-states, на который ссылку я раньше давал. Все эти показатели полезно знать.
netstat при высоком keepalive 600 в nginx:
то есть 600 секунд в конфиге nginx ? там же по-умолчанию то 75.
Нужно совсем немного - 10 даже хватит. Зависит от специфики,но обычно суть этого keep-alive в том, чтобы последовательная загрузка элементов одной странички шла быстро .Держать соединение и ждать следующей странички в современном интернете , пожалуй, лишнее.
Поставил 20480 (для 4 worker_processes ). Или можно смело ставить 51200*4?
на мой взгляд - да. но если вы завысили keep-alive, зачем усугублять?
Классика NAT: порты кончились.
Лечение: делаем пул ип адресов и мажем по ним трафик дальше.
lamma, как выше подсказали, для nginx порты не при чем
Опять проблема. На самой машине пробую:
telnet localhost 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out
Ошибок, в т.ч. в syslog не видно
---------- Добавлено 08.03.2016 в 06:44 ----------
netstat:
38174 TIME_WAIT
6337 FIN_WAIT2
4259 ESTABLISHED
1354 FIN_WAIT1
698 LAST_ACK
512 SYN_RECV
141 CLOSING
90 CONNECTED
1 servers)
1 I-Node
---------- Добавлено 08.03.2016 в 07:01 ----------
Видимо все же есть conntrack
Mar 8 09:45:00 user kernel: [1665539.556599] __ratelimit: 30694 callbacks suppressed
Mar 8 09:45:00 user kernel: [1665539.556628] nf_conntrack: table full, dropping packet.
---------- Добавлено 08.03.2016 в 07:07 ----------
sysctl -a | grep conntrack
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_acct = 1
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_count = 312231
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 256
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_count = 312234
net.ipv4.netfilter.ip_conntrack_buckets = 16384
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
Dimka, точно есть . Я бы попробовал выгрузить модуль, но вероятно у вас все же есть правила, от которых conntrack зависит.
Например, ограничение на число соединений с одного IP.
Ну тогда ключ может называться net.nf_conntrack_max и придется его увеличивать. По-умолчанию он как раз 64k, так что все сходится.
Там тоже своих таймаутов куча и он как бы сам по себе, потому что призван отслеживать чужие транзитные соединения на линукс-роутерах.
Но я бы пока не пытался эти параметры испортить, если можно просто лимит поднять.
lsmod | grep ipt
iptable_nat 4283 0
nf_nat 13308 1 iptable_nat
nf_conntrack_ipv4 9833 3 nf_nat,iptable_nat
nf_conntrack 46391 3 nf_conntrack_ipv4,nf_nat,iptable_nat
iptable_filter 2258 1
ip_tables 13915 3 iptable_filter,iptable_nat,iptable_mangle
x_tables 12845 4 ip_tables,xt_multiport,ip6_tables,iptable_nat
lsmod | grep nf
nf_conntrack_ipv4 9833 3 nf_nat,iptable_nat
nf_conntrack 46391 3 nf_conntrack_ipv4,nf_nat,iptable_nat
nf_defrag_ipv4 1139 1 nf_conntrack_ipv4
---------- Добавлено 08.03.2016 в 07:32 ----------
modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.
---------- Добавлено 08.03.2016 в 07:52 ----------
Поборол "nf_conntrack: table full, dropping packet"
Все равно сервер страшно тупит. Проверки на доступность - каждая третья вылетает по таймауту.
И munin не может получить по localhost стат от nginx
Т.к.
telnet localhost 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out
Dimka, а я и не говорю об nginx.
Проблема классическая. Первыми на неё натыкаются пионернеты с натом на тазиках.
Вторые: контент сервера с большим количеством запросов.
Метода решения два:
1. Заниматься порнографическим тьюнингом ядра и потом все равно перейти к п.2
2. Мазать трафик по ip пулу и не париться.
К пункту 2 можно добавить потом vrrp или подобную технологию, что бы клиенты не в пул, а в один адрес смотрели.
Там тоже своих таймаутов куча и он как бы сам по себе, потому что призван отслеживать чужие транзитные соединения на линукс-роутерах.
Но я бы пока не пытался эти параметры испортить, если можно просто лимит поднять.
Опустил все таймауты net.ipv4.netfilter.ip_conntrack_tcp_timeout_***** - провисать и выпадать по таймауту стало меньше.
Стал net.netfilter.nf_conntrack_count = 49574 (вместо 312231)
Dimka, ну а какие именно правила iptables у вас требуют conntrack ? может пересмотреть их необходимость и убрать ? тогда модуль выгрузится
iptables -L -n -v (заменил IP XXX)
pkts bytes target prot opt in out source destination
3895 332K fail2ban-ssh-ddos tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
3895 332K fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 4698K packets, 3581M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-ssh (1 references)
pkts bytes target prot opt in out source destination
163 9780 DROP all -- * * 180.XXX.XX.XX 0.0.0.0/0
19 1632 DROP all -- * * 40.XXX.XXX.XX 0.0.0.0/0
0 0 DROP all -- * * 60.XXX.XXX.XX 0.0.0.0/0
51 3060 DROP all -- * * 183.XXX.XXX.XX 0.0.0.0/0
3439 305K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-ssh-ddos (1 references)
pkts bytes target prot opt in out source destination
3895 332K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0