From 771df03e09da3d7ca3c8e26d7b31222b1768e306 Mon Sep 17 00:00:00 2001 From: "a.kazantsev" Date: Fri, 10 Jul 2026 12:14:12 +0300 Subject: [PATCH] update from gigacoms --- roles/rocky9/tasks/install-epel-repo.yml | 4 +- roles/rocky9/tasks/install_packages.yml | 44 +++++-------- roles/rocky9/tasks/ip_bridge.yml | 8 ++- roles/rocky9/tasks/ip_forward.yml | 39 ++++++------ roles/rocky9/tasks/kernel_tune.yml | 26 ++++---- roles/rocky9/tasks/main.yml | 45 +++++++++++-- roles/rocky9/tasks/sysctl_tuning.yml | 43 +++++++++---- roles/rocky9/tasks/tcp_tune.yml | 81 +++++++++++++++--------- 8 files changed, 178 insertions(+), 112 deletions(-) diff --git a/roles/rocky9/tasks/install-epel-repo.yml b/roles/rocky9/tasks/install-epel-repo.yml index 6829e2d..530a346 100644 --- a/roles/rocky9/tasks/install-epel-repo.yml +++ b/roles/rocky9/tasks/install-epel-repo.yml @@ -1,11 +1,11 @@ --- - name: Enable EPEL repo - ansible.builtin.dnf: + ansible.builtin.package: name: epel-release state: present - name: Install soft from EPEL - ansible.builtin.dnf: + ansible.builtin.package: name: - screen - unrar diff --git a/roles/rocky9/tasks/install_packages.yml b/roles/rocky9/tasks/install_packages.yml index 959c620..4a5416a 100644 --- a/roles/rocky9/tasks/install_packages.yml +++ b/roles/rocky9/tasks/install_packages.yml @@ -1,16 +1,4 @@ --- -# - name: Add Nginx Repo -# template: -# src: nginx.repo.j2 -# dest: /etc/yum.repos.d/nginx.repo -# owner: root -# group: root -# - name: Configure dnf to use fastest mirror -# ansible.builtin.lineinfile: -# path: /etc/dnf/dnf.conf -# regexp: '^fastestmirror=' -# line: 'fastestmirror=True' - # - name: Enable fastestmirror in DNF # community.general.ini_file: # path: /etc/dnf/dnf.conf @@ -26,22 +14,20 @@ option: max_parallel_downloads value: "10" state: present + owner: root + group: root + mode: '0644' backup: true -- name: Ensure the crb repository is enabled - community.general.dnf_config_manager: - name: crb - state: enabled - when: crb_repo is true +# - name: Ensure the crb repository is enabled +# community.general.dnf_config_manager: +# name: crb +# state: enabled +# when: crb_repo is true - name: Install EPEL repo ansible.builtin.include_tasks: install-epel-repo.yml - when: epel_repo is defined - -# - name: Upgrade all packages -# ansible.builtin.dnf: -# name: "*" -# state: latest + when: epel_repo is true - name: Install soft ansible.builtin.dnf: @@ -79,7 +65,7 @@ - nano - bind-utils - psmisc - - python-pip +# - python-pip - open-vm-tools - qemu-guest-agent - cloud-utils-growpart @@ -92,11 +78,11 @@ # - btop state: present -- name: Обновить всё - become: true - ansible.builtin.dnf: - name: "*" - state: latest +# - name: Обновить всё +# become: true +# ansible.builtin.dnf: +# name: "*" +# state: latest - name: Удалить старые ядра и ненужные зависимости become: true diff --git a/roles/rocky9/tasks/ip_bridge.yml b/roles/rocky9/tasks/ip_bridge.yml index 82c5eff..21ca471 100644 --- a/roles/rocky9/tasks/ip_bridge.yml +++ b/roles/rocky9/tasks/ip_bridge.yml @@ -1,21 +1,23 @@ --- # Отключение фильтрации на br интерфейсах. необходимо в некоторых случаях, # когда NAT не правильно отрабатывает по таким интерфейсам -- name: net.bridge.bridge-nf-call-ip6tables +- name: Set net.bridge.bridge-nf-call-ip6tables ansible.posix.sysctl: name: net.bridge.bridge-nf-call-ip6tables value: 0 state: present sysctl_file: /etc/sysctl.d/03-bridge.conf when: br_netfilter_status.stat.exists -- name: net.bridge.bridge-nf-call-iptables + +- name: Set net.bridge.bridge-nf-call-iptables ansible.posix.sysctl: name: net.bridge.bridge-nf-call-iptables value: 0 state: present sysctl_file: /etc/sysctl.d/03-bridge.conf when: br_netfilter_status.stat.exists -- name: net.bridge.bridge-nf-call-arptables + +- name: Set net.bridge.bridge-nf-call-arptables ansible.posix.sysctl: name: net.bridge.bridge-nf-call-arptables value: 0 diff --git a/roles/rocky9/tasks/ip_forward.yml b/roles/rocky9/tasks/ip_forward.yml index c9f76c4..42784c8 100644 --- a/roles/rocky9/tasks/ip_forward.yml +++ b/roles/rocky9/tasks/ip_forward.yml @@ -1,19 +1,19 @@ --- # Запрет на передачу пакетов через сервер (т.е. работу его как шлюза) -- name: net.ipv4.ip_forward +- name: Set net.ipv4.ip_forward ansible.posix.sysctl: name: net.ipv4.ip_forward value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf + sysctl_file: /etc/sysctl.d/03-ip_forward.conf # Запрет на маршрутизацию на основе соответствующей опции в пакете (безопасность) -- name: net.ipv4.conf.default.accept_source_route +- name: Set net.ipv4.conf.default.accept_source_route ansible.posix.sysctl: name: net.ipv4.conf.default.accept_source_route value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf + sysctl_file: /etc/sysctl.d/03-ip_forward.conf # Если в таблице маршрутизации есть маршрут на сеть, с которой пришёл пакет (src ip) # и он ссылается на данный интерфейс, то такой пакет будет принят. @@ -24,42 +24,45 @@ # - Использование политик маршрутизации (Policy Based Routing via ip rule). # При строгом режиме 1 ядро проверяет обратный путь по дефолтной таблице main, # игнорируя кастомные таблицы, что приводит к ложному отбрасыванию пакетов. -- name: net.ipv4.conf.default.rp_filter +- name: Set net.ipv4.conf.default.rp_filter ansible.posix.sysctl: name: net.ipv4.conf.default.rp_filter - value: 0 + value: 2 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf -- name: net.ipv4.conf.all.rp_filter + sysctl_file: /etc/sysctl.d/03-ip_forward.conf + +- name: Set net.ipv4.conf.all.rp_filter ansible.posix.sysctl: name: net.ipv4.conf.all.rp_filter - value: 0 + value: 2 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf -- name: net.ipv4.conf.lo.rp_filter + sysctl_file: /etc/sysctl.d/03-ip_forward.conf + +- name: Set net.ipv4.conf.lo.rp_filter ansible.posix.sysctl: name: net.ipv4.conf.lo.rp_filter value: 1 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf -- name: net.ipv4.conf.all.send_redirects + sysctl_file: /etc/sysctl.d/03-ip_forward.conf + +- name: Set net.ipv4.conf.all.send_redirects ansible.posix.sysctl: name: net.ipv4.conf.all.send_redirects value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf + sysctl_file: /etc/sysctl.d/03-ip_forward.conf -- name: net.ipv4.conf.default.send_redirects +- name: Set net.ipv4.conf.default.send_redirects ansible.posix.sysctl: name: net.ipv4.conf.default.send_redirects value: 0 state: present reload: true - sysctl_file: /etc/sysctl.d/ip_forward.conf + sysctl_file: /etc/sysctl.d/03-ip_forward.conf -- name: net.ipv4.conf.all.accept_redirects +- name: Set net.ipv4.conf.all.accept_redirects ansible.posix.sysctl: name: net.ipv4.conf.all.accept_redirects value: 0 state: present - sysctl_file: /etc/sysctl.d/ip_forward.conf + sysctl_file: /etc/sysctl.d/03-ip_forward.conf diff --git a/roles/rocky9/tasks/kernel_tune.yml b/roles/rocky9/tasks/kernel_tune.yml index bf7b414..5cfc388 100644 --- a/roles/rocky9/tasks/kernel_tune.yml +++ b/roles/rocky9/tasks/kernel_tune.yml @@ -1,12 +1,12 @@ --- # Remove kernel.panic entry from /etc/sysctl.conf -- name: kernel.panic +- name: Set kernel.panic ansible.posix.sysctl: name: kernel.panic state: absent sysctl_file: /etc/sysctl.conf # Отключаем отслеживание ядром нажатие специальных сочетаний клавиш -- name: kernel.sysrq +- name: Set kernel.sysrq ansible.posix.sysctl: name: kernel.sysrq value: 0 @@ -14,21 +14,21 @@ sysctl_file: /etc/sysctl.d/01-kernel.conf # Добавление к файлу дампа ядра PID процесса -- name: kernel.core_uses_pid +- name: Set kernel.core_uses_pid ansible.posix.sysctl: name: kernel.core_uses_pid value: 1 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Здесь указывается максимальное количество байт в одном сообщении при передачи их между процессами -- name: kernel.msgmnb +- name: Set kernel.msgmnb ansible.posix.sysctl: name: kernel.msgmnb value: 65536 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. -- name: kernel.msgmax +- name: Set kernel.msgmax ansible.posix.sysctl: name: kernel.msgmax value: 65536 @@ -36,14 +36,14 @@ sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер (в байтах) на сегменте shared memory. -- name: kernel.shmmax +- name: Set kernel.shmmax ansible.posix.sysctl: name: kernel.shmmax value: 68719476736 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать. -- name: kernel.shmall +- name: Set kernel.shmall ansible.posix.sysctl: name: kernel.shmall value: 4294967296 @@ -51,7 +51,7 @@ sysctl_file: /etc/sysctl.d/01-kernel.conf # Лимит одновременно открытых файлов в системе -- name: fs.file-max +- name: Set fs.file-max ansible.posix.sysctl: name: fs.file-max value: 1000000 @@ -59,35 +59,35 @@ sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера приема данных для всех соединений. -- name: net.core.rmem_max +- name: Set net.core.rmem_max ansible.posix.sysctl: name: net.core.rmem_max value: 33554432 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера передачи данных для всех соединений. -- name: net.core.wmem_max +- name: Set net.core.wmem_max ansible.posix.sysctl: name: net.core.wmem_max value: 33554432 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Размер буфера приема данных по умолчанию для всех соединений. -- name: net.core.rmem_default +- name: Set net.core.rmem_default ansible.posix.sysctl: name: net.core.rmem_default value: 8388608 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Размер буфера передачи данных по умолчанию для всех соединений. -- name: net.core.wmem_default +- name: Set net.core.wmem_default ansible.posix.sysctl: name: net.core.wmem_default value: 4194394 state: present sysctl_file: /etc/sysctl.d/01-kernel.conf # Максимальный размер буфера приема данных для всех соединений. -- name: net.core.optmem_max +- name: Set net.core.optmem_max ansible.posix.sysctl: name: net.core.optmem_max value: 40960 diff --git a/roles/rocky9/tasks/main.yml b/roles/rocky9/tasks/main.yml index 2af5f13..66b0427 100644 --- a/roles/rocky9/tasks/main.yml +++ b/roles/rocky9/tasks/main.yml @@ -12,8 +12,16 @@ group: root mode: "0644" +- name: Добавить строку в файл, если её нет + ansible.builtin.lineinfile: + path: /etc/vconsole.conf + regexp: '^FONT\s*=' + line: 'FONT="UniCyr_8x16"' + create: true + - name: Syctl tuning ansible.builtin.include_tasks: sysctl_tuning.yml + when: sysctl_tune is true ############# DEPRICATED ################### @@ -24,17 +32,46 @@ # - name: Setup NIC to eth0 # ansible.builtin.include_tasks: # file: set_nic_names_eth.yml -############################################# +############################################ - name: Install packages ansible.builtin.include_tasks: file: install_packages.yml -- name: Setup secutity options +- name: Disable SELinux ansible.builtin.include_tasks: file: security_setup.yml +- name: Logrotate + ansible.builtin.include_tasks: + file: logrotate.yml + +- name: Check if Cloud-Init present + ansible.builtin.stat: + path: /etc/cloud + register: cloudinit_status + +- name: Disable cloud-init + ansible.builtin.file: + path: /etc/cloud/cloud-init.disabled + state: touch + owner: root + group: root + mode: '0644' + when: cloudinit_status.stat.exists + +- name: Migrate legacy network scripts to NetworkManager keyfiles + ansible.builtin.command: + cmd: nmcli connection migrate + become: true + register: migration_result + changed_when: "'successfully migrated' in migration_result.stdout" + - name: Reboot System - ansible.builtin.reboot: - reboot_timeout: 60 + ansible.builtin.debug: + msg: + - "Going to reboot..." + - "System: {{ ansible_distribution }}" + - "Version: {{ ansible_distribution_version }}" + notify: "Reboot Server" when: reboot_system is true diff --git a/roles/rocky9/tasks/sysctl_tuning.yml b/roles/rocky9/tasks/sysctl_tuning.yml index a3cefd9..220a241 100644 --- a/roles/rocky9/tasks/sysctl_tuning.yml +++ b/roles/rocky9/tasks/sysctl_tuning.yml @@ -11,6 +11,23 @@ path: "{{ item.path }}" state: absent loop: "{{ files_to_delete.files }}" + when: flush_sysctl_rules is true + +- name: Disable Default sysctl.d + ansible.builtin.file: + path: /etc/sysctl.d/50-redhat.conf + state: touch + owner: root + group: root + mode: '0644' + +- name: Disable Default sysctl.d + ansible.builtin.file: + path: /etc/sysctl.d/50-default.conf + state: touch + owner: root + group: root + mode: '0644' - name: Kernel Tuning ansible.builtin.include_tasks: kernel_tune.yml @@ -30,16 +47,16 @@ ansible.builtin.include_tasks: ip_bridge.yml when: br_netfilter_status.stat.exists -- name: vm.overcommit_ratio - ansible.posix.sysctl: - name: vm.overcommit_ratio - value: 100 - state: present - sysctl_file: /etc/sysctl.d/04-ip_httpd.conf - -- name: vm.overcommit_memory - ansible.posix.sysctl: - name: vm.overcommit_memory - value: 2 - state: present - sysctl_file: /etc/sysctl.d/04-ip_httpd.conf +# Закоментировано, тк в некоторых случаях вызывает невозможность выделения памяти +# - name: Set vm.overcommit_ratio +# ansible.posix.sysctl: +# name: vm.overcommit_ratio +# value: 100 +# state: present +# sysctl_file: /etc/sysctl.d/04-ip_httpd.conf +# - name: Set vm.overcommit_memory +# ansible.posix.sysctl: +# name: vm.overcommit_memory +# value: 2 +# state: present +# sysctl_file: /etc/sysctl.d/04-ip_httpd.conf diff --git a/roles/rocky9/tasks/tcp_tune.yml b/roles/rocky9/tasks/tcp_tune.yml index 9fbe34c..01bfaa1 100644 --- a/roles/rocky9/tasks/tcp_tune.yml +++ b/roles/rocky9/tasks/tcp_tune.yml @@ -3,7 +3,7 @@ # Защита на случай TCP Syn атак # Согласно рекомендациям разработчиков ядра, этот режим лучше отключить. # http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt -- name: net.ipv4.tcp_syncookies +- name: Set net.ipv4.tcp_syncookies ansible.posix.sysctl: name: net.ipv4.tcp_syncookies value: 0 @@ -20,68 +20,68 @@ # Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума, # заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения. # На приём TCP пакетов -- name: net.ipv4.tcp_rmem +- name: Set net.ipv4.tcp_rmem ansible.posix.sysctl: name: net.ipv4.tcp_rmem value: 4096 8388608 16777216 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # На передачу TCP пакетов -- name: net.ipv4.tcp_wmem +- name: Set net.ipv4.tcp_wmem ansible.posix.sysctl: name: net.ipv4.tcp_wmem value: 4096 4194394 16777216 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Для TCP протокола в целом -- name: net.ipv4.tcp_mem +- name: Set net.ipv4.tcp_mem ansible.posix.sysctl: name: net.ipv4.tcp_mem value: 8388608 12582912 16777216 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Для UDP протокола в целом -- name: net.ipv4.udp_mem +- name: Set net.ipv4.udp_mem ansible.posix.sysctl: name: net.ipv4.udp_mem value: 8388608 12582912 16777216 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf -- name: net.ipv4.udp_rmem_min +- name: Set net.ipv4.udp_rmem_min ansible.posix.sysctl: name: net.ipv4.udp_rmem_min value: 16384 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf -- name: net.ipv4.udp_wmem_min +- name: Set net.ipv4.udp_wmem_min ansible.posix.sysctl: name: net.ipv4.udp_wmem_min value: 16384 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать. -- name: net.core.netdev_max_backlog +- name: Set net.core.netdev_max_backlog ansible.posix.sysctl: name: net.core.netdev_max_backlog value: 500000 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента. -- name: net.ipv4.tcp_max_syn_backlog +- name: Set net.ipv4.tcp_max_syn_backlog ansible.posix.sysctl: name: net.ipv4.tcp_max_syn_backlog value: 5480000 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Увеличим возможное количество сокетов в состоянии TIME_WAIT. -- name: net.ipv4.tcp_max_tw_buckets +- name: Set net.ipv4.tcp_max_tw_buckets ansible.posix.sysctl: name: net.ipv4.tcp_max_tw_buckets value: 5480000 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным. -- name: net.ipv4.tcp_tw_reuse +- name: Set net.ipv4.tcp_tw_reuse ansible.posix.sysctl: name: net.ipv4.tcp_tw_reuse value: 1 @@ -97,7 +97,7 @@ # Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной. # Партнер может не закрыть это соединение никогда. -- name: net.ipv4.tcp_fin_timeout +- name: Set net.ipv4.tcp_fin_timeout ansible.posix.sysctl: name: net.ipv4.tcp_fin_timeout value: 3 @@ -105,28 +105,28 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной # пропускной способности некоторых сетей -- name: net.ipv4.tcp_sack +- name: Set net.ipv4.tcp_sack ansible.posix.sysctl: name: net.ipv4.tcp_sack value: 1 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP. -- name: net.ipv4.tcp_synack_retries +- name: Set net.ipv4.tcp_synack_retries ansible.posix.sysctl: name: net.ipv4.tcp_synack_retries value: 1 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle). -- name: net.ipv4.tcp_max_orphans +- name: Set net.ipv4.tcp_max_orphans ansible.posix.sysctl: name: net.ipv4.tcp_max_orphans value: 65536 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне. -- name: net.ipv4.tcp_orphan_retries +- name: Set net.ipv4.tcp_orphan_retries ansible.posix.sysctl: name: net.ipv4.tcp_orphan_retries value: 0 @@ -134,21 +134,21 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE. # Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек) -- name: net.ipv4.tcp_keepalive_time +- name: Set net.ipv4.tcp_keepalive_time ansible.posix.sysctl: name: net.ipv4.tcp_keepalive_time value: 600 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Интервал, с которым слать keepalive пакеты (в сек) -- name: net.ipv4.tcp_keepalive_intvl +- name: Set net.ipv4.tcp_keepalive_intvl ansible.posix.sysctl: name: net.ipv4.tcp_keepalive_intvl value: 20 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # После скольки неудачных пробах считать соединение разорванным -- name: net.ipv4.tcp_keepalive_probes +- name: Set net.ipv4.tcp_keepalive_probes ansible.posix.sysctl: name: net.ipv4.tcp_keepalive_probes value: 2 @@ -156,21 +156,21 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Запрещаем технологию slow start (малый размер окна) в TCP подключениях, # в которых долгое время не было трафика. -- name: net.ipv4.tcp_slow_start_after_idle +- name: Set net.ipv4.tcp_slow_start_after_idle ansible.posix.sysctl: name: net.ipv4.tcp_slow_start_after_idle value: 0 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений. -- name: net.ipv4.ip_local_port_range +- name: Set net.ipv4.ip_local_port_range ansible.posix.sysctl: name: net.ipv4.ip_local_port_range value: 2000 65000 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок. -- name: net.ipv4.tcp_timestamps +- name: Set net.ipv4.tcp_timestamps ansible.posix.sysctl: name: net.ipv4.tcp_timestamps value: 1 @@ -180,7 +180,7 @@ # Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC. # Включён по умолчанию в linux ядре начиная с версии 2.6.19 # BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал -- name: net.ipv4.tcp_congestion_control +- name: Set net.ipv4.tcp_congestion_control ansible.posix.sysctl: name: net.ipv4.tcp_congestion_control value: bbr @@ -188,7 +188,7 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Параметр определяет дисциплину обработки очередей # FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR -- name: net.core.default_qdisc +- name: Set net.core.default_qdisc ansible.posix.sysctl: name: net.core.default_qdisc value: "fq" @@ -196,7 +196,7 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Не сохранять результаты измерений TCP соединения в кеше при его закрытии -- name: net.ipv4.tcp_no_metrics_save +- name: Set net.ipv4.tcp_no_metrics_save ansible.posix.sysctl: name: net.ipv4.tcp_no_metrics_save value: 1 @@ -204,28 +204,28 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь # пакетов при передаче в рамках TCP подключения) -- name: net.ipv4.tcp_window_scaling +- name: Set net.ipv4.tcp_window_scaling ansible.posix.sysctl: name: net.ipv4.tcp_window_scaling value: 1 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Защита от TIME_WAIT атак. -- name: net.ipv4.tcp_rfc1337 +- name: Set net.ipv4.tcp_rfc1337 ansible.posix.sysctl: name: net.ipv4.tcp_rfc1337 value: 1 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес. -- name: net.ipv4.icmp_echo_ignore_broadcasts +- name: Set net.ipv4.icmp_echo_ignore_broadcasts ansible.posix.sysctl: name: net.ipv4.icmp_echo_ignore_broadcasts value: 1 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf # Не отвечаем на ошибочно сформированные сообщения. -- name: net.ipv4.icmp_ignore_bogus_error_responses +- name: Set net.ipv4.icmp_ignore_bogus_error_responses ansible.posix.sysctl: name: net.ipv4.icmp_ignore_bogus_error_responses value: 1 @@ -233,9 +233,30 @@ sysctl_file: /etc/sysctl.d/02-tcp.conf # Максимальное число открытых сокетов, ждущих соединения. # Максимум в CentOS 7 -- name: net.core.somaxconn +- name: Set net.core.somaxconn ansible.posix.sysctl: name: net.core.somaxconn value: 65535 state: present sysctl_file: /etc/sysctl.d/02-tcp.conf + +- name: Set net.netfilter.nf_conntrack_max + ansible.posix.sysctl: + name: net.netfilter.nf_conntrack_max + value: 524288 + state: present + sysctl_file: /etc/sysctl.d/02-udp.conf + +- name: Set net.netfilter.nf_conntrack_udp_timeout + ansible.posix.sysctl: + name: net.netfilter.nf_conntrack_udp_timeout + value: 10 + state: present + sysctl_file: /etc/sysctl.d/02-udp.conf + +- name: Set net.netfilter.nf_conntrack_udp_timeout_stream + ansible.posix.sysctl: + name: net.netfilter.nf_conntrack_udp_timeout_stream + value: 30 + state: present + sysctl_file: /etc/sysctl.d/02-udp.conf