SPOJE.NET

Technická dokumentace

Uživatelské nástroje

Nástroje pro tento web


howto:network:conntrack

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
howto:network:conntrack [2016/12/05 18:59] gandalfhowto:network:conntrack [2022/05/05 12:45] (aktuální) gandalf
Řádek 1: Řádek 1:
-====== nf_conntrack - nastavení conntracku na linux routeru ======+====== Linux router - poznámky ====== 
 + 
 + 
 +===== nf_conntrack - nastavení conntracku na linux routeru =====
  
 Conntrack se na routeru používá při zapnutí stavového firewallu nebo při nastavení NATu. Při natování většího poštu IP adres není často defaultní nastavení conntracku dostatečné a proto je potřeba ho upravit. V krajním případě jste na neoptimální nastavení dokonce upozorněni hláškou ''%%nf_conntrack: table full, dropping packet%%'' v syslogu. Conntrack se na routeru používá při zapnutí stavového firewallu nebo při nastavení NATu. Při natování většího poštu IP adres není často defaultní nastavení conntracku dostatečné a proto je potřeba ho upravit. V krajním případě jste na neoptimální nastavení dokonce upozorněni hláškou ''%%nf_conntrack: table full, dropping packet%%'' v syslogu.
Řádek 71: Řádek 74:
  
 Pravidla s IP adresou je potřeba vyjmenovat pro všechny IP adresy na interfacech routeru. Pravidla s IP adresou je potřeba vyjmenovat pro všechny IP adresy na interfacech routeru.
 +**Pokud nepouzivame firewall na OUTPUTu, je mozne v tomto pripade pro notrack v outputu uplne vynechat**
  
 +V pripade, ze mate na routeru vetsi mnozstvi interfacu, je mozne pouzit ipset:
  
 +<code>
 +-A PREROUTING -m set --match-set local4 src -j ACCEPT
 +-A PREROUTING -m set --match-set local4 dst -j ACCEPT
 +-A PREROUTING -j CT --notrack
 +</code>
 +
 +a v prislusnem ipsetu (v nasem pripade **local4**) vyjmenovat adresy na vsech lokalnim interfacech pomoci skriptu
 +
 +<code>
 +#!/bin/bash
 +
 +ipset flush local4
 +ipset flush local6
 +
 +ipset -exist create local4 hash:ip comment timeout 0
 +ipset -exist create local6 hash:ip comment timeout 0 family inet6
 +
 +for i in `ip a s | grep -o "inet [0-9\.]*" | cut -d ' ' -f 2 | sort -u`; do
 +        ipset -exist add local4 $i
 +done
 +
 +for i in `ip a s | grep -o "inet6 [0-9a-f\:]*" | cut -d ' ' -f 2 | sort -u`; do
 +        ipset -exist add local6 $i
 +done
 +</code>
 +
 +===== NAT a tunelované VPN =====
 +
 +Pokud nám zlobí některé služby např. PPTP, je potřeba na routeru přidat automatické zavádění modulů:
 +
 +<code>
 +ip_conntrack
 +ip_conntrack_ftp
 +ip_conntrack_pptp
 +ip_gre
 +ip6_gre
 +gre
 +ip_nat
 +ip_nat_ftp
 +ip_nat_pptp
 +nf_conntrack
 +nf_conntrack_ipv4
 +nf_conntrack_ipv6
 +nf_conntrack_proto_gre
 +nf_nat_proto_gre
 +ppp_mppe
 +pptp
 +pppoe
 +nf_nat_pptp
 +</code>
 +
 +V kernelu od verze 4 je ještě potřeba zapnout přes sysctl používání nat helper, které je defaultně vypnuté:
 +
 +
 +<code>
 +net.netfilter.nf_conntrack_helper=1
 +</code>
 +
 +===== Optimalizace =====
 +
 +
 +
 +Optimalizace pro 10G karty
 +
 +<code>
 +# 10GB/54MB (56623104)
 +net.core.rmem_max = 56623104
 +net.core.wmem_max = 56623104
 +net.core.rmem_default = 56623104
 +net.core.wmem_default = 56623104
 +net.core.optmem_max = 40960
 +net.ipv4.tcp_rmem = 4096 87380 56623104
 +net.ipv4.tcp_wmem = 4096 65536 56623104
 +</code>
 +
 +Optimalizace poctu sousedu a ARP cache
 +
 +<code>
 +#   For IPv4
 +net.ipv4.neigh.default.gc_thresh1=8192
 +net.ipv4.neigh.default.gc_thresh2=12228
 +net.ipv4.neigh.default.gc_thresh3=24456
 +# For IPv6
 +net.ipv6.neigh.default.gc_thresh1=8192
 +net.ipv6.neigh.default.gc_thresh2=12228
 +net.ipv6.neigh.default.gc_thresh3=24456
 +</code>
 +
 +Optimalizace souvisejici s firewallem
 +
 +<code>
 +#number of incoming connections
 +net.core.somaxconn = 2048
 +
 +#Maximum number of remembered connection requests
 +net.ipv4.tcp_max_syn_backlog = 30000
 +
 +# Increase the tcp-time-wait buckets pool size to prevent simple DoS attacks
 +net.ipv4.tcp_max_tw_buckets = 2000000
 +
 +# Decrease TIME_WAIT seconds
 +net.ipv4.tcp_fin_timeout = 10
 +</code>
  
  
  
 +--- zdroje
 +  * [[https://access.redhat.com/solutions/30453#Valid]]
  
  
  
howto/network/conntrack.1480960785.txt.gz · Poslední úprava: 2016/12/05 18:59 autor: gandalf