ASA hairpin: излез на интернет или крак на VPN меѓу локации?
Клиентскиот базен може да излезе кон интернет или во локациски VPN. Одлучете кој крак ви треба пред да пишувате NAT, потоа проверете рута, селектор и повратен пат.
Двајца корисници на далечински пристап зад истиот ASA можат да испраќаат сообраќај од истиот надворешен интерфејс и да добијат сосема различен третман. Едниот оди на јавна веб-страница, па пакетот бара превод на извор и интернет рута. Другиот оди на сервер зад тунел меѓу локации што исто така завршува на тој интерфејс, па пакетот бара идентитет, соодветен селектор на тунел и повратен пат до клиентскиот базен. Дозволата за истиот интерфејс е предуслов за двете и решение за ниту едно.
Два крака, еден интерфејс
Одлучете кој крак го градите пред да напишете NAT правило, бидејќи правилата не се заменливи. Кракото A е клиент кон интернет: адресата на базенот влегува, преведената јавна адреса излегува, назад низ истиот интерфејс. Кракото B е клиент кон приватен префикс од другата страна на друг IPsec партнер: адресата на базенот се чува, се прешифрува и се доставува до партнер што мора да знае како да одговори на базенот.
Она што на двете им треба прво е дозволата за истиот интерфејс. Без неа ASA одбива да проследи пакет низ интерфејсот на кој пристигнал, а дефектот изгледа како проблем со рутирање, а не со политика:
same-security-traffic permit intra-interface
Таа една линија дозволува распоред за проследување, како што опишува референцата за NAT на ASA за патеки низ истиот интерфејс. Таа не додава клиентска рута, не авторизира ресурс, не преведува адреса и не преговара IPsec селектор, затоа очекувајте по неа да додадете уште три или четири работи и не читајте го нејзиното прифаќање како напредок.
Крак A: клиентот го сака интернетот
За излез на интернет адресата на базенот мора да престане да биде приватна пред пакетот да го напушти уредот. Во вообичаен PAT дизајн правилото го преведува базенот во адресата на надворешниот интерфејс, а повратната состојба го обновува текот кон клиентот:
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
Потоа потврдете дека клиентот навистина побарал од ASA да го носи тој сообраќај. Исклучувањето од поделен тунел ја испраќа јавната дестинација преку сопствената врска на телефонот, која никогаш не стигнува до ASA, и ниту едно NAT правило не поправа пакет што никогаш не бил испратен. Споредете ја листата за поделен тунел на групната политика со дестинацијата што ја тестирате.
Остатокот од кракот е вообичаен: употреблива стандардна или конкретна рута од надворешниот интерфејс, пристапна политика што го дозволува текот и DNS обработен според избраната политика на резолвер. Додајте route-lookup овде од истата причина како подолу, бидејќи влезниот и излезниот интерфејс се идентични.
Крак B: клиентот сака приватна локација
Овој крак паѓа на повеќе места, затоа пишете го по ред. Прво клиентската рута: префиксот на дестинацијата мора да биде во листата за поделен тунел, инаку клиентот нема да го стави во тунелот. Второ селекторот на тунелот: крипто ACL меѓу локации мора да покрива адреса на базен до далечински префикс, не само локален LAN до далечинскиот префикс. Трето идентитет, за адресата на базенот да не се преведе во интернет PAT на патот.
nat (outside,outside) source static VPN_POOL VPN_POOL
destination static SITE_PREFIX SITE_PREFIX route-lookup
Далечната страна е делот што луѓето забораваат да го тестираат. Партнерот бара рута назад до базенот и селектор што го вклучува, и неговата сопствена политика мора да ги дозволи изворните адреси што ќе ги види. Ако локацијата се користи преку преведен поглед, тоа е валиден дизајн, но тогаш двата партнери, двата селектори и двете табели за рутирање мора да се согласат за преведените адреси.
Проверете го и редоследот на правилата. Широко PAT правило над правилото за идентитет ќе ја преведе приватната размена пред правилото за идентитет воопшто да се оцени, а симптомот е тунел на локација без соодветен SA, а не NAT грешка.
Тестот што ви кажува кој крак го изградивте
Користете ја сопствената проценка на патеката на ASA наместо да ја читате конфигурацијата и да се надевате. packet-tracer input outside tcp 10.80.0.25 40000 203.0.113.10 443 detailed го покажува решението за NAT, рутата и резултатот на ACL за еден тек; повторете со приватна дестинација. Ако фазата NAT препишува тек од приватно кон приватно, изградивте крак A за пакет на кој му требаше крак B.
Уште две команди ја затвораат празнината. show nat detail го печати редоследот на правилата што го следел packet-tracer, и show crypto ipsec sa покажува дали постои селектор за парот што го очекувате. Недостасувачки SA е прашање на конфигурација на селектор или партнер, не нешто што NAT правилото може да го поправи.
Проверете го секој крак со сообраќајот што го опслужува
Прифатете го кракот A со вообичаено јавно барање од клиентот, а кракот B со барање до приватен ресурс што навистина постои. Потоа повторете го секое со одбиен ресурс, зашто „дозволено“ и „одобрено од пристапната политика“ не се исти доказ, а ping што потекнува од центарот не вежба ниту една клиентска патека.
Држете ги двата тест-записи одделени во тикетот: изворна адреса, дестинација, NAT правилото што се совпадна и резултат. Кога следниот извештај ќе каже „VPN-от е расипан“, тој пар во рок од една минута ви кажува кој крак регресирал, а одговорот обично е рута или селектор, а не линијата за истиот интерфејс што сите прво ја сомничат.