❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Dynamický NAT

Místo, kde žádná otázka není hloupá.
ludvik
Příspěvky: 4448
Registrován: 14 years ago

Re: Dynamický NAT

Příspěvekod ludvik » 7 years ago

To je trochu jiný případ. Vyprší timeout, to je standardní chování. Také je to pitomost od aplikace, že si občas nepošle nějaký noop paket.
Já napadl to, že nová konexe nahradí nějakou starou, pokud už pro ní není místo. To se nestane.
iTomB píše:
ludvik píše:Mazání nejstarších spojení postrádá logiku. Je lepší odmítnout nové (a zapsat do logu), než nějakým algoritmem ořezávat stará, klidně dlouhodobě běžící spojení.


Jak kdy, pokud mas nastaven delsi cas ip_conntrack_tcp_timeout_established a vyhnivaj ti treba spojeni TCP=5228.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

iTomB
Příspěvky: 875
Registrován: 19 years ago

Příspěvekod iTomB » 7 years ago

ludvik píše:To je trochu jiný případ. Vyprší timeout, to je standardní chování. Také je to pitomost od aplikace, že si občas nepošle nějaký noop paket.
Já napadl to, že nová konexe nahradí nějakou starou, pokud už pro ní není místo. To se nestane.


No tohle prave delal ten ADSL modem. Mel 1024 spojeni a jednoduse jsi to pretizil, tak proste vyhodil to, co melo nejmensi timeout (nejdele nepouzivane).

Tom
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 7 years ago

no počkej počkej, když jsem před 15 lety začínal s iptables na normálnim debianu tak to tam přesně takhle psaly. Mě to přijde naprosto logický. Nejstarší spojení myšleno s nejdelším timeoutem který se počítá od posledního použití jsou většinou neuzavřený spojení takže odstranit je když je tabulka plná aby mohly bejt vytvořený nový mi přijde jako nejrozumnější cesta. Když se nevytváří nový při plný tabulce tak přece nic dalšího novýho nefunguje což je řekl bych nejhorší cesta. Neplést si to s connection limitem na některých routerů což je něco jinýho. Tam se nevytváří protože je tam právě ten limit třeba na 200 spojení.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 7 years ago

Kdyby se to odstraňovalo, jak ty píšeš, tak by neexistovaly hlášky "conntrack table full".

Ty nevíš, jestli je to vyhnilé spojení, nebo prostě jen zrovna nic nedělající.
Spojení se likviduje buď po prokazatelném ukončení, nebo po timeoutu (který může být i dost dlouhý ... bývalo to 5 dnů). Jinak se spojení (ano, bavím se o záznamu v conntrack tabulce) neničí.

Si představ, že na tebe pustím nějaký malý DoS. Pokud bude jádro likvidovat stará spojení jen proto, aby uspokojilo nová, tak jsou ty útoky hned jednodušší. Nejenom, že server zahltím, ale zároveň přeruším stávající komunikaci. Fakt funkce, kterou na serveru chci.

Nic mi samozřejmě nebrání si napsat scriptík, co bude dělat to, co ten zmíněný ADSL router. Ale jádro (a jsem si na 99 % jistý) to samo prostě nedělá.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Jenya
Příspěvky: 486
Registrován: 18 years ago

Příspěvekod Jenya » 7 years ago

Kdyz uz jsme u toho, ma smysl, aby TCP established timeout byl vetsi nez treba 10 minut?
0 x

iTomB
Příspěvky: 875
Registrován: 19 years ago

Příspěvekod iTomB » 7 years ago

Jenya píše:Kdyz uz jsme u toho, ma smysl, aby TCP established timeout byl vetsi nez treba 10 minut?


Rozhodne. Idelane par hodin ja mam i o dost vic ...

Za 10 minut bych te odstrelil.

Tom
0 x

Jenya
Příspěvky: 486
Registrován: 18 years ago

Příspěvekod Jenya » 7 years ago

iTomB píše:
Jenya píše:Kdyz uz jsme u toho, ma smysl, aby TCP established timeout byl vetsi nez treba 10 minut?


Rozhodne. Idelane par hodin ja mam i o dost vic ...

Za 10 minut bych te odstrelil.

Tom


V moji nepritomnosti, me muzes i rozkrajet :)
Ocenil bych kdyby se k tomu mohl vyjadrit nekdo, kdo tomu rozumi a umi to zduvodnit.
Jsou v praxi aplikace, ktere pocitaji s navazanym TCP, avsak treba hodiny nekomunikuji?
0 x

iTomB
Příspěvky: 875
Registrován: 19 years ago

Příspěvekod iTomB » 7 years ago

Jenya píše:V moji nepritomnosti, me muzes i rozkrajet :)
Ocenil bych kdyby se k tomu mohl vyjadrit nekdo, kdo tomu rozumi a umi to zduvodnit.
Jsou v praxi aplikace, ktere pocitaji s navazanym TCP, avsak treba hodiny nekomunikuji?


Celkem tomu rozumim a pocitej s tim, ze treba FTP (nekde se da nastavit noop) to vyzaduje a dalsi krasny priklad.
Otevres si SSH, jdes na WC, nekdo ti zavola, mas rozdelanou praci a ups ... jsi odhlasem.
Zda se ti to jako vhodne? Me moc ne a kdyz jsem tohle zazil u znameho co ma UPC, tak bych za to vrazdil ... za 1h me to vykoplo 3x ... Clovek neco dela v jinem okne a tamto se mu zavre, fakt na pest ...

Tom
0 x

ronin
Příspěvky: 11
Registrován: 14 years ago

Příspěvekod ronin » 7 years ago

Děkuji za nové poznatky ohledně connections, taky mi to pomohlo.
Ale chtěl bych se vrátit ke své otázce ohledně toho NATování... Jak to třeba máte řešeno vy?
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 7 years ago

Každý má svoji IP :-) A pokud je sdílená, je sdílení řešeno programově při generování NAT tabulky. Ona je totiž sdílená vlastně vždy, většinou ale jen v rámci jednoho usera.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

ronin
Příspěvky: 11
Registrován: 14 years ago

Příspěvekod ronin » 7 years ago

ludvik píše:Každý má svoji IP :-) A pokud je sdílená, je sdílení řešeno programově při generování NAT tabulky. Ona je totiž sdílená vlastně vždy, většinou ale jen v rámci jednoho usera.

tohle ale asi nefunguje na MK že? Potřebuji nějaké řešení na MK.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 7 years ago

Vzhledem k tomu, že parametr persistent mikrotik nepodporuje, tak ti nezbývá než to řešit naprosto stejně. Možností je několik ... API, nebo třeba generování scriptu a jeho upload pomocí FTP. Nebo prostě ruční práce, pokud toho nemáš tolik.

Na čistém linuxu pomáhají atomické operace iptables-save/restore. Na mikrotiku je to krok za krokem ...
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

ronin
Příspěvky: 11
Registrován: 14 years ago

Příspěvekod ronin » 7 years ago

ludvik píše:Vzhledem k tomu, že parametr persistent mikrotik nepodporuje, tak ti nezbývá než to řešit naprosto stejně. Možností je několik ... API, nebo třeba generování scriptu a jeho upload pomocí FTP. Nebo prostě ruční práce, pokud toho nemáš tolik.

Na čistém linuxu pomáhají atomické operace iptables-save/restore. Na mikrotiku je to krok za krokem ...

No, mám teď ručně rovnoměrně podle počtu klientů vnitřní rozsahy (celé Céčka) natované (pomocí src-nat) na jednotlivé veřejné. Ale problém nastane v případě připojování dalších zákazníků, pak už to tak rovnoměrně nebude.
Nejde na MK udělat něco typu aby jednotlivé nové komunikující IP překládal na nejméně využívanou veřejnou IP? Aby to zkrátka rozděloval nějak rovnoměrně?
0 x

pgb
Příspěvky: 722
Registrován: 8 years ago

Příspěvekod pgb » 7 years ago

Lab ... aneb každý určitě děláte domácí úkoly, vzděláváte se a pak to prezentuejte do okolí:
- testovací sestava obsahuje 6x CLI ---- GW === DST1 / DST2
- na GW probíhá natování za účelem zjištění, jak se chová SRCNAT při zadání rozsahu jako překládané části
- DST1 i DST2 mají nastavenou routu na WAN GW aby to celé dobře fungovalo
- CLI mají rozsah 192.168.18.0/24 natuje se na rozsah 10.11.12.0/30
- poznámka k algoritmu "same" ... je tam jistý algoritmu ve zvolení překládaných ip a není to roud robin, ale je odvozený od src/dst ip (dle same-not-by-dst=YES/NO) a až pak dochází k pat overload
----- 192.168.18.2 je pomocí "same" přeloží za 10.11.12.2
----- 192.168.18.3 je pomocí "same" přeloží za 10.11.12.3
----- 192.168.18.4 je pomocí "same" přeloží za 10.11.12.0

add action=src-nat chain=srcnat out-interface=ether5 src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- asi nejhorší možná varianta, ip adresa za kterou se natuje je vybrána z mého pohledu chaoticky
- paradoxně se zdá, vícero spojení z jedné zdrojové LAN ip na více serverů stále překládá za stejnou IP ale nemohu zaručit

add action=same chain=srcnat out-interface=ether5 same-not-by-dst=no src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- trochu lepší varianta, ip adresajako jaká ip se budete tvářit je odvozena algoritmem který používá jako vstupní podmínku "same" + kolikáte je to spojení na cílové servery a po vyčerpání překládacích ip (10.11.12.0/30) provádí pat overload
- problémem je vícenásobné spojení např. na video servery - z pohledu serveru se tam snaží připojit hromada ip adres a přitom se na GW pak sjednotí => ve výsledku to nechce třeba přehrávat videa

add action=same chain=srcnat out-interface=ether5 same-not-by-dst=yes src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- nejlepší varianta, používá se podmínka "same" dokud není spojení moc a pak nastane pat overload
- podmínka same-not-by-dst=yes zajistí, že pokud se CLI1 připojuje k DST1 i DST2 tak má stále stejnou "vnější" ip i když přistupuje k více zdrojům
0 x

ronin
Příspěvky: 11
Registrován: 14 years ago

Příspěvekod ronin » 7 years ago

pgb píše:Lab ... aneb každý určitě děláte domácí úkoly, vzděláváte se a pak to prezentuejte do okolí:
- testovací sestava obsahuje 6x CLI ---- GW === DST1 / DST2
- na GW probíhá natování za účelem zjištění, jak se chová SRCNAT při zadání rozsahu jako překládané části
- DST1 i DST2 mají nastavenou routu na WAN GW aby to celé dobře fungovalo
- CLI mají rozsah 192.168.18.0/24 natuje se na rozsah 10.11.12.0/30
- poznámka k algoritmu "same" ... je tam jistý algoritmu ve zvolení překládaných ip a není to roud robin, ale je odvozený od src/dst ip (dle same-not-by-dst=YES/NO) a až pak dochází k pat overload
----- 192.168.18.2 je pomocí "same" přeloží za 10.11.12.2
----- 192.168.18.3 je pomocí "same" přeloží za 10.11.12.3
----- 192.168.18.4 je pomocí "same" přeloží za 10.11.12.0

add action=src-nat chain=srcnat out-interface=ether5 src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- asi nejhorší možná varianta, ip adresa za kterou se natuje je vybrána z mého pohledu chaoticky
- paradoxně se zdá, vícero spojení z jedné zdrojové LAN ip na více serverů stále překládá za stejnou IP ale nemohu zaručit

add action=same chain=srcnat out-interface=ether5 same-not-by-dst=no src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- trochu lepší varianta, ip adresajako jaká ip se budete tvářit je odvozena algoritmem který používá jako vstupní podmínku "same" + kolikáte je to spojení na cílové servery a po vyčerpání překládacích ip (10.11.12.0/30) provádí pat overload
- problémem je vícenásobné spojení např. na video servery - z pohledu serveru se tam snaží připojit hromada ip adres a přitom se na GW pak sjednotí => ve výsledku to nechce třeba přehrávat videa

add action=same chain=srcnat out-interface=ether5 same-not-by-dst=yes src-address=192.168.18.0/24 to-addresses=10.11.12.0/30
- nejlepší varianta, používá se podmínka "same" dokud není spojení moc a pak nastane pat overload
- podmínka same-not-by-dst=yes zajistí, že pokud se CLI1 připojuje k DST1 i DST2 tak má stále stejnou "vnější" ip i když přistupuje k více zdrojům

Dobře, takže laicky řečeno, je to to řešení které hledám??? (to poslední, parametr same a same-not-by-dst=yes)
0 x