ссылки
1 2 3 |
https://fasterdata.es.net/host-tuning/linux/ https://b14esh.com/nix/iptables/iptables-conntrack-nat.html http://www.bog.pp.ru/work/linux_ip.html |
sysctl
1 2 3 4 5 |
Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, виртуальной памяти sysctl -a — показывает все параметры sysctl kern.ipc.numopensockets — показывает количество открытых сокетов sysctl kern.openfiles — показывает количество открытых файлов |
sysctl ipv6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/etc/sysctl.conf - файл настроек # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. ------------------------------------- nano /usr/lib/sysctl.d/50-default.conf nano /usr/lib/sysctl.d/00-system.conf -------------------------------------- vim /etc/sysctl.conf --------------------- #disable ipv6 settins net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 --------------------- Применяем: sysctl -p sysctl -a - показать текущие значения sysctl -w net.ipv6.conf.all.disable_ipv6=1 - выключить ipv6 sysctl -w net.ipv6.conf.default.disable_ipv6=1 - выключить ipv6 sysctl -p changes.conf - принять изменения в changes.conf без перезагрузки sysctl -p - принять изменения в sysctl.conf без перезагрузки |
ограничения на всю систему
1 2 3 4 5 6 7 8 9 |
sysctl -a - Смотрим системные ограничения sysctl fs.file-max - Максимальное количество открытых файлов sysctl fs.file-max=102400 - Меняем максимальное количества открытых файлов echo "1024 50000" > /proc/sys/net/ipv4/ip_local_port_range - диапазон портов cat /etc/sysctl.conf fs.file-max=102400 - Ввод по умолчанию sysctl.conf cat /proc/sys/fs/file-nr - Сколько дескрипторов файлов используется |
Включение IP Forward
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
!!! По умолчанию ip forward выключен !!! Если forward выключен то не будет работать маршрутизация между интерфейсами cat /proc/sys/net/ipv4/ip_forward - проверяем текущие состояние ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward - так мы можем включить IP forward !!! Для постоянного включения необходимо отредактировать файл /etc/sysctl.conf, найти строку net.ipv4.ip_forward=1 и убрать комментарий с неё nano /etc/sysctl.conf --------------------- # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 --------------------- sysctl -p - выполняем для применения изменений без перезагрузки sysctl -f - выполняем для применения изменений без перезагрузки |
NAT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
!!! В организация NAT не должно быть в принципе. !!! Доступ к интернету должен осуществляется через proxy сервер NAT: iptables -t nat -A POSTROUTING -o isp -j MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE forward port: iptables -t nat -A PREROUTING -p tcp -d 192.168.3.124 --dport 3389 -j DNAT --to 10.70.70.105:3389 iptables -t nat -A PREROUTING -p tcp -d 192.168.3.124 --dport 5090 -j DNAT --to 10.70.70.101:5090 # sysctl net.netfilter.nf_conntrack_max - посмотреть текущий размер таблицы NAT net.netfilter.nf_conntrack_max = 65536 # sysctl -a | grep conntrack_max - посмотреть текущий размер таблицы NAT net.netfilter.nf_conntrack_max = 65536 net.ipv4.netfilter.ip_conntrack_max = 65536 net.nf_conntrack_max = 65536 # sysctl net.netfilter.nf_conntrack_count - посмотреть заполненность таблицы net.netfilter.nf_conntrack_count = 654 |
отключаем ответы сервера на ping
1 2 3 4 5 6 |
sysctl net.ipv4.icmp_echo_ignore_all sysctl -w net.ipv4.icmp_echo_ignore_all=1 - отключаем ответ на ping чтоб сохранялось при перегрузке nano /etc/sysctl.conf - проверяем значение net.ipv4.icmp_echo_ignore_all=1 - выставляем 1 и сохраняем |
rp_filter
1 2 3 4 5 6 7 8 9 10 |
Принцип фильтрования в rp_filter: Если ответ на текущий пакет не может уйти через тот же интерфейс (когда приходит через один интерфейс, а уходит через другой), пакет отфильтровывается. net.ipv4.conf.all.rp_filter = 1 Выключение rp_filter для всех интерфейсов: for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 0 > $i done |
tunning network SFP+
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
!!! Современные дистрибутивы автоматически настраивают оптимальные параметры сетевой карты For a host with a 10G NIC, optimized for network paths up to 100ms RTT, and for friendliness to single and parallel stream tools, add this to /etc/sysctl.conf # allow testing with buffers up to 64MB net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 # increase Linux autotuning TCP buffer limit to 32MB net.ipv4.tcp_rmem = 4096 87380 33554432 net.ipv4.tcp_wmem = 4096 65536 33554432 # recommended default congestion control is htcp net.ipv4.tcp_congestion_control=htcp # recommended for hosts with jumbo frames enabled net.ipv4.tcp_mtu_probing=1 # recommended to enable 'fair queueing' net.core.default_qdisc = fq For a host with a 10G NIC optimized for network paths up to 200ms RTT, and for friendliness to single and parallel stream tools, or a 40G NIC up on paths up to 50ms RTT: # allow testing with buffers up to 128MB net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 # increase Linux autotuning TCP buffer limit to 64MB net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 # recommended default congestion control is htcp net.ipv4.tcp_congestion_control=htcp # recommended for hosts with jumbo frames enabled net.ipv4.tcp_mtu_probing=1 # recommended to enable 'fair queueing' net.core.default_qdisc = fq |