Рубрики
CentOS sysctl \ настройки \ ограничения

sysctl \ ipv6 \ ping \ nat \ управление системными настройками \ ограничения на всю систему

ссылки

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

Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи
sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, виртуальной памяти
sysctl -a — показывает все параметры
sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
sysctl kern.openfiles — показывает количество открытых файлов

sysctl ipv6

/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 без перезагрузки

ограничения на всю систему

 
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

!!! По умолчанию 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

!!! В организация 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

 
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

Принцип фильтрования в 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+

!!! Современные дистрибутивы автоматически настраивают оптимальные параметры сетевой карты 

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