FortiGate iza NAT-a može posjedovati 10.0.0.2 na svom WAN interfejsu, dok ga internet predstavlja kao 198.51.100.40, i oba broja su stvarna. Adresa na koju se uređaj veže i identitet koji šalje tokom IKE autentikacije su odvojene odluke, donesene u odvojenim poljima, za odvojenu publiku. NAT prepisuje vanjsko adresiranje na putu; ne prepisuje autentificirani identitet u ono što udaljeni peer očekuje. Većina kvarova faze 1 u ovom obliku dolazi od stavljanja ispravne vrijednosti u pogrešno polje.

Tri vrijednosti, tri vlasnika

Počnite tako što ćete imenovati tri vrijednosti i ko posjeduje svaku. local-gw je adresa koju FortiGate koristi kao izvor IKE-a na vanjskom interfejsu i mora biti adresa koju uređaj zaista ima. Javni endpoint je adresa NAT uređaja i posjeduje ga onaj ko izvodi prevođenje. IKE identitet je string koji peer upoređuje sa svojom konfiguracijom i uopće ne mora biti IP adresa.

Nazivi polja su dovoljno bliski da mame na zamjenu, i to je zamka. localid i localid-type opisuju identifikaciju; local-gw opisuje lokalno vezivanje.

Primjer čini razliku konkretnom. Na FortiGate-u otvorite config vpn ipsec phase1-interface, zatim set interface "wan1" i set local-gw 10.0.0.2 — adresa koju kutija posjeduje, i to je ono što IKE socketu omogućava uspješno vezivanje. Ostavite local-gw na 0.0.0.0 i koristi se adresa interfejsa, što je obično ista stvar ali manje eksplicitno. Ne postavljajte local-gw na 198.51.100.40, jer uređaj ne posjeduje tu adresu i socket se neće vezati na nju. Učiniti da dvije vrijednosti izgledaju jednake na papiru nije konfiguracija.

Korak 1: odaberite identitet koji će peer prihvatiti

Sada identitet, što je drugačija odluka. set localid uzima vrijednost koju će peer uporediti, a set localid-type govori FortiGate-u kako da je tumači: adresa, FQDN, korisnički FQDN ili ID ključa. Sa auto uređaj je izvodi, obično iz adrese odlaznog interfejsa, što je upravo vrijednost koju NAT uređaj namjerava promijeniti.

To izvođenje je razlog zašto je eksplicitni identitet važan u ovoj topologiji. Ako peer očekuje adresni identitet, postavite localid-type address i localid na javnu adresu koju će peer vidjeti, zatim potvrdite da peer prihvata tu vrijednost kao identitet, a ne kao rutu. Ako peer očekuje FQDN, koristite localid-type fqdn i ime s kojim je konfigurisan. Provjerite šta je zaista poslano pomoću diagnose vpn ike gateway list, koja prikazuje stanje gatewaya i identifikatore u upotrebi, a ne ono što ste namjeravali otipkati. Ne pretpostavljajte da opcija tipa identiteta prihvata proizvoljnu nelokalnu adresu; prvo provjerite dokumentovanu semantiku izdanja.

Korak 2: proslijedite UDP 500 i 4500 na uređaj

Treća vrijednost pripada NAT uređaju i to je ona koju ljudi zaborave provjeriti. Javni endpoint mora prosljeđivati UDP 500 i UDP 4500 na FortiGate, jer detekcija NAT-T i inkapsulirani ESP koji slijedi oboje zavise od dolaska tih portova. Ovaj dizajn pretpostavlja mapiranje jedan-na-jedan; dijeljenje jedne javne adrese po portovima između više peerova je drugačija topologija s drugačijim ograničenjima.

Potvrdite prosljeđivanje snimkom, a ne nadom: diagnose sniffer packet any "udp port 500 or udp port 4500" 4 pokazuje da li paketi dolaze i da li odgovori odlaze.

Google Cloud VPN dokumentuje NAT jedan-na-jedan sa NAT-T kao podržan raspored za peer iza NAT-a, i to je ograničenje prema kojem treba projektovati ako je udaljena strana Cloud VPN gateway. Dijeljenje jedan-na-više ili po portovima nije ista podržana topologija i nikakvo lokalno podešavanje identiteta to ne mijenja. Ako je udaljena strana drugi uređaj, njegova vlastita dokumentacija definiše šta će prihvatiti kao identitet i da li toleriše prevedenu adresu peera. Pročitajte to prije nego promijenite lokalno polje, jer lokalna strana ne može pregovarati pravilo koje udaljena strana ne implementira.

Korak 3: provjerite šta faza 1 ne rješava

NAT traversal podiže tunel, saglasnost o identitetu odlučuje da li će ga peer prihvatiti, a rutiranje unutrašnjeg prefiksa odlučuje šta zaista prelazi. Ispravan lokalni ID ne može osigurati statičku rutu koja nedostaje niti selektor saobraćaja koji nedostaje.

Zato provjeravajte po slojevima. get vpn ipsec tunnel details pokazuje da li je tunel podignut i koji su selektori pregovarani, a nesklad između konfigurisane udaljene podmreže i pregovaranog selektora je problem rutiranja u kostimu faze 2. execute vpn ike gateway clear prisiljava novo pregovaranje, pa testirate trenutnu konfiguraciju, a ne sesiju uspostavljenu prije vaše posljednje izmjene. Zatim pošaljite saobraćaj na host u udaljenom prefiksu i potvrdite da se brojači pomjeraju, jer tunel koji je podignut i ne propušta ništa izgleda identično kao ispravan dok ne provjerite.

Držite tri vrijednosti na jednom mjestu u bilješkama: lokalnu adresu koju uređaj posjeduje, javni endpoint koji NAT uređaj predstavlja i string identiteta koji peer očekuje. One se mijenjaju iz različitih razloga i u različito vrijeme.

Renumerisanje NAT uređaja nije razlog da dirate local-gw na FortiGate-u, a promjena identiteta nije razlog da bilo šta renumerišete. Miješanje to dvoje je način na koji se radni tunel ponovo gradi tokom nepovezanog prozora za održavanje. Smjernice Cloud VPN-a za NAT su referenca za podržanu topologiju na toj strani.

Test koji to rješava je dosadan i brz: snimite na vanjskom interfejsu, potvrdite da UDP 500 i 4500 dolaze od peera, potvrdite da se identitet u IKE razmjeni poklapa s onim što je peer konfigurisan da očekuje, zatim potvrdite da pregovarani selektori pokrivaju podmreže koje vas zanimaju. Ako prva provjera ne uspije, osumnjičeni je NAT uređaj. Ako druga ne uspije, to su polja identiteta. Ako treća ne uspije, ni NAT ni identitet nikada nisu bili problem.

Povezani članci