NAT (Network Address Translation - преобразование сетевых адресов) — это механизм в сетях Порты TCP. Что такое TCP / IP порт/IP, позволяющий преобразовывать IP- адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
Терминология NAT:
Читайте также: Настройка iptables и NAT, sysctl утилита, предназначенная для управления параметрами ядра
Операция NAT является одной из самых ресурсоёмких. NAT- сервер запоминает все соединения, которые через него проходят и сохраняет эти сведения в ОЗУ в памяти в специальной таблице. Когда сессия закрывается, информация о ней из таблицы удаляется. Размер этой таблицы фиксирован. Если сеть большая нужно настроить размеры таблицы хранения отслеживаемых соединений.
# sysctl net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_max = 65536 или # sysctl -a | grep conntrack_max 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
# echo 16384 > /sys/module/nf_conntrack/parameters/hashsize
# sysctl -a | grep conntrack | grep timeout net.netfilter.nf_conntrack_generic_timeout = 600 - NAT- сервер будет хранить информацию о сессии даже в том случае, если будет проходит 1 пакет в 10 минут. 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 - TCP- сессию NAT- сервер будет отслеживать 5 дней(!), если даже за это период пройдет только 1 пакет, это может привести к быстрому заполнению nf_conntrack_max 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_udp_timeout = 30 net.netfilter.nf_conntrack_udp_timeout_stream = 180 net.netfilter.nf_conntrack_icmp_timeout = 30 net.netfilter.nf_conntrack_events_retry_timeout = 15 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_udp_timeout = 30 net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180 net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
Значения timeout рекомендуется ставить в пределах 30-120 секунд.