IPSec za NAT [trosicku delsi ;o)]

Vancl Miroslav (QRIS) Miroslav.Vancl na qris.cz
Čtvrtek Březen 18 18:00:22 CET 2004


Tak jsem si početl v úvahách na téma jak funguje tunel IPSec ale řešení
nikdo bohužel nenavrhl. 
Jenže NAT je ale celkem běžná a potřebná technika a chtělo by to nějaký
nápad, jak obejít nedostatek (?) v protokolu.
Doufám, že správně tuším, v čem je zakopaný pes - změna IP adresy a/nebo
portu během dopravy "nosného" paketu z jednoho IPSec-u na druhý. Pokud ne,
další ani nečtěte, nic to neřeší...
Já měl svého času (nerealizovaný) šílený nápad jak to obelstít: tedy mít
svůj konec tunelu na stroji za NATujícím firewallem a přitom stále na vnější
adrese, na kterou ho otevřel klient - dvojí překlad. 
Řekněme, že klient v Internetu otevírá tunel do mé sítě, která leží za
NATujícím firewallem. Z jeho hlediska tedy tunel končí na firewallu na jeho
externí adrese A. NAT na firewallu přeloží (pro pakety IPSec) dest adresu na
adresu B ve vnitřní síti a pošle to tam. Na tom stroji ale běží další NAT,
který udělá překlad dest B->A.  Řekněme že B je adresa na nějakém dummy
interface tohoto stroje. No a tam už čeká IPSec a vesele zpracovává svoje
pakety došlé na správnou adresu A. Protože se dvojím překladem A->B->A
cílová adresa nezměnila (a zdrojová jakbysmet), IPSec bude podle mého
spokojený. V obráceném směru to pak funguje stejně - můj IPSec posílá pakety
z dummy interface s adresou A ke klientovi v Internetu. Místní NAT ale hbitě
přeloží src na adresu B a pošle to na firewall. Ten zase, jak je zvyklý,
přeloží B na svoje A a pošle paket nic netušícímu příjemci.

Je to proveditelné ?

M. Vancl


Další informace o konferenci Linux