Gledajte kako PPTP veza ustaje i lako je povjerovati da je teški dio gotov: klijent se autentificira, pojavi se ppp0 adapter ili WAN Miniport i statusni prozor postane zelen. Zatim prvi zahtjev prema unutrašnjem hostu istekne i profil bude okrivljen. U praksi treba očistiti dva nezavisna sloja: vanjski transport koji nosi TCP 1723 i GRE, i unutrašnju politiku koja odlučuje koje destinacije koriste PPP interfejs. Zeleni status dokazuje samo da je prvi sloj dogovoren; o drugom ne govori ništa.

Pratite klijenta od profila do kontrolnog socketa

Otvorite dnevnik klijenta i pronađite mjesto gdje kontaktira server. PPTP prvo otvara TCP vezu na port 1723 i dogovara parametre tunela preko tog kanala. Ako ovaj korak ne uspije, ništa kasnije nije važno, a greška obično navodi adresu servera ili istek vremena.

Potvrdite kontrolnu vezu na mreži prije nego što dirnete bilo koju rutu. Na klijentu ili zrcalnom portu uhvatite TCP 1723 za jedan pokušaj povezivanja:

sudo tcpdump -ni any 'tcp port 1723' -c 20

Završeno rukovanje i uspostavljena sesija znače da vanjski kontrolni kanal radi. SYN koji nikada ne dobije SYN-ACK ukazuje na firewall, pogrešnu adresu servera ili provajdera koji filtrira port. Rukovanje praćeno trenutnim resetom često znači da je server odbio vjerodajnice ili tip tunela.

GRE je drugi protokol, a ne port

PPTP nosi PPP teret unutar proširenog GRE, IP protokola 47, koji nema broj porta za ruter da prati. Zato pravilo koje dopušta TCP 1723 i dalje može ostaviti tunel bez putanje podataka. Stateful NAT uređaji moraju razumjeti ID poziva unutar GRE da bi mapirali odgovore natrag, a mnogi to ne čine. Specifikacija PPTP drži kontrolni kanal i GRE teret kao odvojene dijelove, i vaš plan testiranja mora biti takav.

Pratite protokol 47 u istom snimku, zatim uporedite šta izlazi sa onim što se vraća:

sudo tcpdump -ni any 'proto gre' -c 20

Paketi koji izlaze bez odgovora, dok TCP 1723 ostaje zdrav, klasičan su potpis blokiranog GRE. PPTP passthrough na potrošačkom ruteru funkcija je tog konkretnog firmvera, pa radna hotelska mreža ništa ne dokazuje o sljedećoj. Ako ruter ne nudi passthrough i ne možete ga promijeniti, problem je izbor protokola, a ne tabela ruta.

Dokažite da tunel prenosi jedan paket

Kad GRE poteče, PPP pregovaranje dodjeljuje adresu klijentskom interfejsu. Pročitajte dodjelu umjesto da je pretpostavljate:

ip -4 addr show ppp0

Pingujte adresu peera prikazanu kao odredište point-to-point veze. Odgovor u ovoj fazi dokazuje da enkapsulirana putanja radi od kraja do kraja i da server odgovara unutar tunela. Ako peer odgovara, a unutrašnji hostovi ne, vanjski transport je u redu i kvar se preselio unutra.

Učinite to prije dodavanja bilo koje podijeljene rute. Promjena rute napravljena dok je transport pokvaren stvara drugu varijablu i skriva prvu.

Napišite podijeljenu politiku, uključujući DNS

Podijeljeno rutiranje je lista odluka, a ne kućica za potvrdu. Svaki privatni prefiks koji mora preći tunel treba rutu kroz PPP interfejs, a svaki prefiks koji mora ostati lokalni mora izostati iz nje. Ruta za podmrežu aplikacije bez odgovarajuće rute do njenog privatnog razrješivača čest je način da stvorite prekid koji izgleda kao pokvarena aplikacija.

Provjerite odluku koju jezgro donosi za jednu adresu u svakoj kategoriji:

ip route get 10.20.5.10
ip route get 203.0.113.25

Prvi treba navesti ppp0, drugi obični gateway. Ako oba navode isti interfejs, politika uopće nije podijeljena. Dodajte vlastitu adresu DNS servera na tunelsku listu, inače razrješavanje imena za unutrašnje hostove izlazi kroz lokalni razrješivač i ne vraća ništa korisno.

Provjera koja se ponavlja u pet koraka

Pokrenite slojeve redom i zaustavite se na prvom koji ne uspije: kontrolni kanal, vidljivost GRE, odgovor PPP peera, podijeljena ruta za jednu unutrašnju adresu i zahtjev aplikacije preko tunela. Svaki korak ima svoju naredbu, pa je kvar moguće pripisati, a ne mistificirati.

Kompaktna verzija za Linux klijenta izgleda ovako:

sudo tcpdump -ni any 'tcp port 1723 or proto gre' -c 40
ip -4 addr show ppp0
ping -c 3 192.0.2.1
ip route get 10.20.5.10

Na Windowsu vrijedi isti redoslijed uz route print i status adaptera prikazan u klijentu. PPTP je zastario protokol, i ako server nudi SSTP ili IKEv2, prelazak je obično bolje korištenje vremena od podešavanja putanje koja zavisi od prolaska protokola 47 na svakom skoku. Provjerite certifikat i ugovor o autentifikaciji zamjene umjesto kopiranja starog profila u novo izdanje.

Povezani članci