ASA hairpin: izlaz u internet ili krak VPN-a između lokacija?
Klijentski pool može otići prema internetu ili u lokacijski VPN. Odlučite koji vam krak treba prije pisanja NAT-a, pa provjerite rutu, selektor i povratni put.
Dva korisnika udaljenog pristupa iza istog ASA uređaja mogu slati saobraćaj kroz isto spoljno sučelje i dobiti potpuno različit tretman. Jedan ide na javnu web lokaciju, pa paket treba prevođenje izvora i internet rutu. Drugi ide na server iza tunela između lokacija koji se takođe završava na tom sučelju, pa paket treba identitet, odgovarajući selektor tunela i povratni put do klijentskog poola. Dozvola za isto sučelje je preduslov za oba i rešenje ni za jedno.
Dva kraka, jedno sučelje
Odlučite koji krak gradite prije nego što otkucate NAT pravilo, jer pravila nisu zamenljiva. Krak A je klijent prema internetu: adresa iz poola ulazi, prevedena javna adresa izlazi, nazad kroz isto sučelje. Krak B je klijent prema privatnom prefiksu na drugoj strani drugog IPsec partnera: adresa iz poola se čuva, ponovo šifrira i dostavlja partneru koji mora znati kako odgovoriti poolu.
Ono što je oboma prvo potrebno jeste dozvola za isto sučelje. Bez nje ASA odbija da prosledi paket kroz sučelje na koje je stigao, a kvar izgleda kao problem rutiranja, a ne kao problem politike:
same-security-traffic permit intra-interface
Ta jedna linija odobrava raspored prosleđivanja, kako opisuje ASA NAT referenca za putanje kroz isto sučelje. Ona ne dodaje klijentsku rutu, ne autorizuje resurs, ne prevodi adresu niti pregovara IPsec selektor, pa očekujte da ćete nakon nje dodati još tri ili četiri stvari i ne čitajte njeno prihvatanje kao napredak.
Krak A: klijent želi internet
Za izlaz u internet adresa iz poola mora prestati biti privatna prije nego paket napusti uređaj. U običnom PAT dizajnu pravilo prevodi pool u adresu spoljnog sučelja, a povratno stanje obnavlja tok prema klijentu:
object network VPN_POOL
subnet 10.80.0.0 255.255.255.0
nat (outside,outside) after-auto source dynamic VPN_POOL interface route-lookup
Zatim potvrdite da je klijent zaista zamolio ASA da nosi taj saobraćaj. Izuzeće iz podeljenog tunela šalje javno odredište preko sopstvene veze telefona, koja nikada ne stiže do ASA uređaja, i nikakvo NAT pravilo ne popravlja paket koji nikada nije poslat. Uporedite listu podeljenog tunela grupne politike sa odredištem koje testirate.
Ostatak kraka je običan: upotrebljiva podrazumevana ili konkretna ruta iz spoljnog sučelja, pristupna politika koja dozvoljava tok i DNS obrađen prema politici rezolvera koju ste odabrali. Dodajte route-lookup ovde iz istog razloga kao ispod, jer su ulazno i izlazno sučelje identični.
Krak B: klijent želi privatnu lokaciju
Ovaj krak pada na više mesta, pa ga pišite po redu. Prvo klijentska ruta: prefiks odredišta mora biti na listi podeljenog tunela, inače ga klijent neće staviti u tunel. Drugo selektor tunela: kripto ACL između lokacija mora pokrivati adresu poola do udaljenog prefiksa, ne samo lokalni LAN do udaljenog prefiksa. Treće identitet, da se adresa poola usput ne prevede u internet PAT.
nat (outside,outside) source static VPN_POOL VPN_POOL
destination static SITE_PREFIX SITE_PREFIX route-lookup
Udaljena strana je deo koji ljudi zaborave da testiraju. Partneru treba ruta natrag do poola i selektor koji ga uključuje, i njegova sopstvena politika mora dozvoliti izvorne adrese koje će videti. Ako se lokacija koristi preko prevedenog prikaza, to je valjan dizajn, ali tada se oba partnera, oba selektora i obe tabele rutiranja moraju složiti oko prevedenih adresa.
Proverite i redosled pravila. Široko PAT pravilo iznad pravila identiteta prevešće privatnu razmenu prije nego što se pravilo identiteta uopšte oceni, a simptom je lokacijski tunel bez odgovarajućeg SA, a ne NAT greška.
Test koji vam kaže koji ste krak izgradili
Koristite sopstvenu procenu puta ASA uređaja umesto da čitate konfiguraciju i nadate se. packet-tracer input outside tcp 10.80.0.25 40000 203.0.113.10 443 detailed prikazuje NAT odluku, rutu i rezultat ACL-a za jedan tok; ponovite sa privatnim odredištem. Ako NAT faza prepisuje tok od privatnog ka privatnom, izgradili ste krak A za paket kojem je trebao krak B.
Još dve naredbe zatvaraju prazninu. show nat detail ispisuje redosled pravila koji je packet-tracer sledio, i show crypto ipsec sa pokazuje postoji li selektor za par koji očekujete. SA koji nedostaje je pitanje konfiguracije selektora ili partnera, a ne nešto što NAT pravilo može popraviti.
Proverite svaki krak saobraćajem kojem služi
Prihvatite krak A običnim javnim zahtevom klijenta, a krak B zahtevom prema privatnom resursu koji zaista postoji. Zatim ponovite svaki sa odbijenim resursom, jer „dozvoljeno“ i „odobreno pristupnom politikom“ nisu isti dokaz, a ping koji potiče sa čvorišta ne vežba nijednu klijentsku putanju.
Držite dva zapisa testa odvojeno u tiketu: izvorna adresa, odredište, NAT pravilo koje se poklopilo i rezultat. Kada sledeći izveštaj kaže „VPN je pokvaren“, taj par vam u roku od minute kaže koji je krak nazadovao, a odgovor je obično ruta ili selektor, a ne linija za isto sučelje koju svi prvo sumnjiče.