Vaata, kuidas PPTP-ühendus tõuseb, ja on lihtne uskuda, et raske osa on tehtud: klient autendib end, ilmub ppp0-adapter või WAN Miniport ja olekuaken muutub roheliseks. Siis aegub esimene päring sisemise hosti poole ja profiili süüdistatakse. Praktikas tuleb läbida kaks sõltumatut kihti: väline transport, mis kannab TCP 1723 ja GRE, ning sisemine poliitika, mis otsustab, millised sihtkohad kasutavad PPP-liidest. Roheline olek tõestab ainult seda, et esimene kiht leppis kokku; teise kohta ei ütle see midagi.

Jälgi klienti profiilist juhtpistikuni

Ava kliendi logi ja leia koht, kus see serveriga ühendust võtab. PPTP avab esmalt TCP-ühenduse pordile 1723 ja peab selle kanali kaudu läbi tunni parameetrid. Kui see samm ebaõnnestub, ei loe miski hiljem, ja viga nimetab tavaliselt serveri aadressi või ajalõppu.

Kinnita juhtühendus võrgus enne, kui puudutad ükskõik millist marsruuti. Kliendis või peegelpordis püüa ühe ühenduskatse jaoks TCP 1723:

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

Lõpetatud kätlus ja loodud sessioon tähendavad, et väline juhtkanal töötab. SYN, mis ei saa kunagi SYN-ACK-i, viitab tulemüürile, vale serveri aadressile või teenusepakkujale, kes porti filtreerib. Kätlusele järgnev kohene lähtestamine tähendab sageli, et server lükkas tagasi volitusandmed või tunneli tüübi.

GRE on teine protokoll, mitte port

PPTP kannab PPP kasulikku koormust laiendatud GRE sees, IP-protokoll 47, millel pole pordi numbrit, mida ruuter saaks jälgida. Seetõttu võib TCP 1723 lubav reegel jätta tunneli ikkagi andmeteeta. Stateful NAT seadmed peavad mõistma GRE sees olevat kõne-ID-d, et vastuseid tagasi kaardistada, ja paljud ei tee seda. PPTP spetsifikatsioon hoiab juhtkanali ja GRE koormuse eraldi osadena ning nii peab tegema ka sinu testiplaan.

Jälgi samas püüdmises protokolli 47, seejärel võrdle, mis väljub, sellega, mis tagasi tuleb:

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

Paketid, mis väljuvad vastusteta, samal ajal kui TCP 1723 püsib terve, on klassikaline blokeeritud GRE tunnus. PPTP läbilaskmine koduruuteril on just selle püsivara omadus, seega töötav hotellivõrk ei tõesta järgmise kohta midagi. Kui ruuter ei paku läbilaskmist ja sa ei saa seda muuta, on probleem protokolli valikus, mitte marsruutitabelis.

Tõesta, et tunnel liigutab ühe paketi

Kui GRE voolab, omistab PPP läbirääkimine kliendi liidesele aadressi. Loe omistus, selle asemel et seda eeldada:

ip -4 addr show ppp0

Pingi peer-aadressi, mis on näidatud punkt-punkti lingi sihtkohana. Vastus selles etapis tõestab, et kapseldatud tee töötab otsast otsani ja et server vastab tunneli sees. Kui peer vastab, aga sisemised hostid mitte, on väline transport korras ja tõrge on liikunud sissepoole.

Tee seda enne mis tahes jagatud marsruudi lisamist. Marsruudi muutmine katkise transpordi ajal loob teise muutuja ja peidab esimese.

Kirjuta jagatud poliitika, sealhulgas DNS

Jagatud marsruutimine on otsuste loend, mitte märkeruut. Iga privaatne prefiks, mis peab tunnelist läbi minema, vajab marsruuti läbi PPP-liidese, ja iga prefiks, mis peab jääma kohalikuks, peab sellest puuduma. Marsruut rakenduse alamsuunas ilma vastava marsruudita selle privaatse lahendajani on levinud viis tekitada katkestus, mis näeb välja nagu katki läinud rakendus.

Kontrolli otsust, mille tuum iga kategooria ühe aadressi jaoks teeb:

ip route get 10.20.5.10
ip route get 203.0.113.25

Esimene peaks nimetama ppp0, teine tavalise lüüsi. Kui mõlemad nimetavad sama liidest, pole poliitika üldse jagatud. Lisa DNS-serveri enda aadress tunnelite loendisse, muidu lahkub sisemiste hostide nimelahendus kohaliku lahendaja kaudu ega tagasta midagi kasulikku.

Korratav kontroll viies sammus

Käivita kihid järjekorras ja peatu esimesel, mis ebaõnnestub: juhtkanal, GRE nähtavus, PPP peer-vastus, jagatud marsruut ühe sisemise aadressi jaoks ja rakenduse päring üle tunneli. Igal sammul on oma käsk, nii et tõrge on omistatav, mitte müstiline.

Kompaktne versioon Linuxi kliendi jaoks näeb välja selline:

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

Windowsis kehtib sama järjekord koos route print ja kliendis näidatava adapteri olekuga. PPTP on vananenud protokoll, ja kui server pakub SSTP või IKEv2, on üleminek tavaliselt parem ajakasutus kui tee häälestamine, mis sõltub protokolli 47 läbimisest igal hüppel. Kontrolli asendaja sertifikaati ja autentimislepingut, selle asemel et kopeerida vana profiil uude versiooni.

Seotud artiklid