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 krak vam treba prije pisanja NAT-a, pa provjerite rutu, selektor i povratnu putanju.
Dva korisnika udaljenog pristupa iza istog ASA uređaja mogu slati saobraćaj kroz isto vanjsko 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 takođe završava na tom sučelju, pa paket treba identitet, odgovarajući selektor tunela i povratnu putanju do klijentskog poola. Dozvola za isto sučelje je preduslov za oba i rješenje ni za jedno.
Dva kraka, jedno sučelje
Odlučite koji krak gradite prije nego što otipkate NAT pravilo, jer pravila nisu zamjenjiva. 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 proslijediti 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 prosljeđ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 što paket napusti uređaj. U običnom PAT dizajnu pravilo prevodi pool u adresu vanjskog 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 podijeljenog tunela šalje javno odredište preko vlastite veze telefona, koja nikada ne stiže do ASA uređaja, i nikakvo NAT pravilo ne popravlja paket koji nikada nije poslan. Uporedite listu podijeljenog tunela grupne politike sa odredištem koje testirate.
Ostatak kraka je običan: upotrebljiva podrazumijevana ili konkretna ruta iz vanjskog sučelja, pristupna politika koja dozvoljava tok i DNS obrađen prema politici rezolvera koju ste odabrali. Dodajte route-lookup ovdje 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 mjesta, pa ga pišite po redu. Prvo klijentska ruta: prefiks odredišta mora biti na listi podijeljenog 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 dio koji ljudi zaborave testirati. Partneru treba ruta natrag do poola i selektor koji ga uključuje, i njegova vlastita politika mora dozvoliti izvorne adrese koje će vidjeti. Ako se lokacija koristi preko prevedenog prikaza, to je valjan dizajn, ali tada se oba partnera, oba selektora i obje tablice rutiranja moraju složiti oko prevedenih adresa.
Provjerite i redoslijed pravila. Široko PAT pravilo iznad pravila identiteta prevest će privatnu razmjenu prije nego što pravilo identiteta uopšte bude ocijenjeno, a simptom je lokacijski tunel bez odgovarajućeg SA, a ne NAT greška.
Test koji vam kaže koji ste krak izgradili
Koristite vlastitu procjenu putanje ASA uređaja umjesto 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 s privatnim odredištem. Ako NAT faza prepisuje tok od privatnog ka privatnom, izgradili ste krak A za paket kojem je trebao krak B.
Još dvije naredbe zatvaraju prazninu. show nat detail ispisuje redoslijed pravila koji je packet-tracer slijedio, 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.
Provjerite svaki krak saobraćajem kojem služi
Prihvatite krak A običnim javnim zahtjevom klijenta, a krak B zahtjevom prema privatnom resursu koji zaista postoji. Zatim ponovite svaki s odbijenim resursom, jer „dozvoljeno“ i „odobreno pristupnom politikom“ nisu isti dokaz, a ping koji potiče s čvorišta ne vježba nijednu klijentsku putanju.
Držite dva zapisa testa odvojeno u tiketu: izvorna adresa, odredište, NAT pravilo koje se poklopilo i rezultat. Kada sljedeći izvještaj kaže „VPN je pokvaren“, taj par vam u roku 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.