howto:network:conntrack
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| howto:network:conntrack [2016/12/05 18:58] – vytvořeno gandalf | howto: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 '' | 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 '' | ||
| - | Optimalizaci provádíme změnou hodnot parametrů **nf_conntrack_max** a conntrack hashsize reprezentovanou parametrem **nf_conntrack_buckets*. Aktuální hodnoty získáte pomocí příkazů: | + | Optimalizaci provádíme změnou hodnot parametrů **nf_conntrack_max** a conntrack hashsize reprezentovanou parametrem **nf_conntrack_buckets**. Aktuální hodnoty získáte pomocí příkazů: |
| < | < | ||
| Řá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: | ||
| + | < | ||
| + | -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 | ||
| + | </ | ||
| + | |||
| + | a v prislusnem ipsetu (v nasem pripade **local4**) vyjmenovat adresy na vsech lokalnim interfacech pomoci skriptu | ||
| + | |||
| + | < | ||
| + | #!/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\.]*" | ||
| + | ipset -exist add local4 $i | ||
| + | done | ||
| + | |||
| + | for i in `ip a s | grep -o "inet6 [0-9a-f\: | ||
| + | ipset -exist add local6 $i | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | ===== 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ů: | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | V kernelu od verze 4 je ještě potřeba zapnout přes sysctl používání nat helper, které je defaultně vypnuté: | ||
| + | |||
| + | |||
| + | < | ||
| + | net.netfilter.nf_conntrack_helper=1 | ||
| + | </ | ||
| + | |||
| + | ===== Optimalizace ===== | ||
| + | |||
| + | |||
| + | |||
| + | Optimalizace pro 10G karty | ||
| + | |||
| + | < | ||
| + | # 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 | ||
| + | </ | ||
| + | |||
| + | Optimalizace poctu sousedu a ARP cache | ||
| + | |||
| + | < | ||
| + | # 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 | ||
| + | </ | ||
| + | |||
| + | Optimalizace souvisejici s firewallem | ||
| + | |||
| + | < | ||
| + | #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 | ||
| + | </ | ||
| + | --- zdroje | ||
| + | * [[https:// | ||
howto/network/conntrack.1480960706.txt.gz · Poslední úprava: 2016/12/05 18:58 autor: gandalf
