Kada NAT unutar VPN-a između lokacija zaslužuje svoje mjesto
Prevod može spasiti preklapajući prefiks ili jednostrani povratni put, ali mijenja adrese koje vidi svaka politika. Dizajnirajte mapiranje eksplicitno.
Dvije lokacije koriste isti privatni opseg, a tunel se podiže dok ništa korisno ne prolazi kroz njega. Prevod je uobičajen odgovor i stvarni je odgovor: predstavljanje drugog opsega udaljenoj strani može riješiti preklapanje ili povratni put koji druga mreža ne može rutirati. Dio koji se preskače jest to da prevod mijenja adrese koje vidi svaka kasnija odluka. Tretirajte to kao dokumentiranu dizajnersku odluku s napisanim mapiranjem, a ne kao pravilo koje se dodaje dok ping ne uspije.
Odredite koja se adresa prepisuje
Prevod izvora mijenja ono što udaljena usluga i njeni zapisi vide kao klijenta, pa host podružnice na dolasku postaje adresa pristupnika. Prevod odredišta ili prefiksa umjesto toga predstavlja alternativnu adresu za udaljeni resurs. Neke implementacije zahtijevaju usklađeni prevod na obje strane da bi razdvojile dvije inače identične mreže, a kombinacija je mjesto gdje počinje većina zabune.
Zapišite izvor prije prevoda, odredište kako ga aplikacija imenuje i par adresa po kojem se svaki pristupnik podudara. Tri kolone su dovoljne, a treća kolona je ona koju ljudi izostavljaju.
Redoslijed selektora je također važan. Odabir i prevod IPsec politike odvijaju se u definiranim fazama, pa selektor napisan za adrese prije prevoda možda nikada neće odgovarati paketu u fazi koju ste pretpostavili. Provjerite politiku koja je instalirana, a ne onu koju ste namjeravali instalirati, jer se dvije razilaze upravo kada jedno pravilo prihvati jedna komponenta, a druga ga ignorira:
ip xfrm policy show
ip xfrm state show
nft list ruleset | grep -A4 nat
Pratite sadržaj i povratni put
Server koji bilježi prevedeni izvor umjesto pojedinačnog hosta podružnice slomit će svako pravilo ili izvještaj vezan za izvornu adresu. Prije nego promijenite mapiranje, otkrijte odlučuje li bilo što nizvodno na temelju tog polja: pristupne liste, revizijski izvještaji, ograničenja brzine, provjere licenci. Svako od toga je mjesto gdje se prevod kasnije pojavi kao neobjašnjiv kvar.
Protokoli koji nose adrese unutar svog sadržaja trebaju zasebno planiranje, jer prepisivanje vanjskog zaglavlja ne dira unutrašnju referencu. Aktivni FTP, SIP i neki proizvodi za daljinski pristup klasični su slučajevi, a dizajn koji ih ignorira radit će za web promet i neće uspjeti za aplikaciju koja je bila važna.
Povratni promet ovisi o mapiranjima sa stanjem. Prelazak pristupnika može izgubiti to stanje, asimetrično rutiranje ga može zaobići, a ponovno pokretanje ga može obrisati dok sesije ostanu otvorene na udaljenoj strani. Zato su zahtjev koji stigne do odredišta i sesija koja se dovrši dva različita rezultata prihvaćanja.
Odmjerite to prema prenumeraciji lokacije
Prenumeracija jedne sukobljene lokacije potpuno uklanja mapiranje i ostavlja plan adresa koji se može čitati bez tablica prevođenja. Operativno je skupa: DNS zapisi, statičke dodjele, pravila vatrozida i svaka dokumentirana adresa moraju se promijeniti zajedno. Trošak se plaća jednom, u planiranom prozoru, s jasnim krajnjim stanjem. Ono što kupujete jest mogućnost da godinama kasnije pročitate snimku paketa bez tablice za pretragu.
Prevod izbjegava većinu lokalnih promjena i stvara mapiranje koje se mora održavati u DNS-u, dokumentaciji i rješavanju problema zauvijek. Trošak se plaća neprestano, u obliku svakog budućeg inženjera koji mora naučiti da jedan prefiks znači nešto drugo unutar tunela.
Za privremenu vezu ili partnersku mrežu koju ne kontrolirate, trajni trošak obično se isplati. Za dvije lokacije koje posjedujete i posjedovat ćete godinama, prenumeracija je često jeftinija odluka kada se migracija pošteno izračuna.
Dokažite oba smjera stvarnom sesijom
Testirajte aplikacijsku sesiju, a ne jedan upit. Uspješan zahtjev za odjek dokazuje da jedan smjer jednog protokola radi i potpuno je spojiv s povratnim putem koji zataji za sve što ima stanje. Upotrijebite uslugu koja je potaknula dizajn i pročitajte njen zapis na udaljenom kraju da vidite koju je izvornu adresu zabilježila.
tcpdump -ni any host 10.40.9.20 and port 443
conntrack -L | grep 10.40.9.20
ip route get 10.40.9.20
Zatim potvrdite da su kroz mapiranje dostupne samo namjeravane usluge. Prevod mijenja adresiranje i ne čini ništa za autorizaciju, pa politika vatrozida i dalje odlučuje što je dopušteno. Dizajn koji se oslanja na nejasan prevedeni prefiks kao svoju kontrolu pristupa nema nikakvu kontrolu pristupa.
Zabilježite mapiranje, testiranu sesiju i adrese koje je svaka strana promatrala. Sljedećoj osobi koja bude otklanjala pogreške na ovom tunelu te tri činjenice trebaju više od konfiguracijske datoteke.