A PPTP osztott alagút nem működik: először a GRE-útvonalat javítsa
A PPTP osztott alagút két különböző okból hibázik: a GRE blokkolt, vagy hiányzik a belső útvonal. Először a szállítást tesztelje, aztán a házirendet.
Nézze meg, ahogy egy PPTP-kapcsolat felépül, és könnyű elhinni, hogy a nehéz rész kész: a kliens hitelesíti magát, megjelenik egy ppp0 adapter vagy WAN Miniport, és az állapotablak zöldre vált. Aztán az első belső gazdagép felé menő kérés időtúllépésbe fut, és a profil lesz a hibás. A gyakorlatban két független réteget kell tisztázni: a külső szállítást, amely a TCP 1723-at és a GRE-t viszi, és a belső házirendet, amely eldönti, mely célok használják a PPP-interfészt. A zöld állapot csak azt bizonyítja, hogy az első réteg megegyezett; a másodikról semmit sem mond.
Kövesse a klienst a profiltól a vezérlő socketig
Nyissa meg a kliens naplóját, és keresse meg azt a pontot, ahol a szervert eléri. A PPTP először TCP-kapcsolatot nyit a 1723-as portra, és ezen a csatornán egyezteti az alagút paramétereit. Ha ez a lépés meghiúsul, semmi későbbi nem számít, és a hiba általában a szerver címét vagy egy időtúllépést nevez meg.
Erősítse meg a vezérlőkapcsolatot a hálózaton, mielőtt bármelyik útvonalhoz nyúlna. A kliensen vagy egy tükörporton rögzítse a TCP 1723-at egy kapcsolódási kísérlethez:
sudo tcpdump -ni any 'tcp port 1723' -c 20
A befejezett kézfogás és a létrejött munkamenet azt jelenti, hogy a külső vezérlőcsatorna működik. Az a SYN, amely soha nem kap SYN-ACK-et, tűzfalra, rossz szervercímre vagy a portot szűrő szolgáltatóra utal. A kézfogást követő azonnali visszaállítás gyakran azt jelenti, hogy a szerver elutasította a hitelesítő adatokat vagy az alagút típusát.
A GRE egy második protokoll, nem port
A PPTP a PPP-hasznos terhet kibővített GRE-ben, 47-es IP-protokollban viszi, amelynek nincs portszáma, amelyet egy útválasztó követhetne. Ezért egy TCP 1723-at engedélyező szabály még mindig adatútvonal nélkül hagyhatja az alagutat. Az állapottal rendelkező NAT-eszközöknek meg kell érteniük a GRE-n belüli hívásazonosítót a válaszok visszatérítéséhez, és sokuk nem teszi ezt. A PPTP specifikációja külön darabként kezeli a vezérlőcsatornát és a GRE-hasznos terhet, és a teszttervének is így kell tennie.
Figyelje a 47-es protokollt ugyanabban a rögzítésben, majd hasonlítsa össze, mi megy ki és mi jön vissza:
sudo tcpdump -ni any 'proto gre' -c 20
A válasz nélkül kimenő csomagok, miközben a TCP 1723 egészséges marad, a blokkolt GRE klasszikus jele. A PPTP-átjárás egy otthoni útválasztón annak a konkrét firmware-nek a funkciója, ezért egy működő hotelhálózat semmit sem bizonyít a következőről. Ha az útválasztó nem kínál átjárást, és nem tudja megváltoztatni, a probléma a protokollválasztás, nem az útvonaltábla.
Bizonyítsa, hogy az alagút egy csomagot továbbít
Amint a GRE áramlik, a PPP-egyeztetés címet rendel a kliensinterfészhez. Olvassa el a hozzárendelést, ahelyett hogy feltételezné:
ip -4 addr show ppp0
Pingelje a pont-pont kapcsolat céljaként megjelenő partner címet. Az ezen a szakaszon kapott válasz bizonyítja, hogy a beágyazott útvonal végponttól végpontig működik, és a szerver az alagúton belül válaszol. Ha a partner válaszol, de a belső gazdagépek nem, a külső szállítás rendben van, és a hiba befelé költözött.
Tegye ezt meg, mielőtt bármilyen osztott útvonalat hozzáad. A törött szállítás mellett végrehajtott útvonalváltoztatás második változót hoz létre, és elrejti az elsőt.
Írja meg az osztott házirendet, a DNS-t is beleértve
Az osztott útválasztás döntések listája, nem jelölőnégyzet. Minden privát előtaghoz, amelynek át kell haladnia az alagúton, útvonal kell a PPP-interfészen keresztül, és minden előtaghoz, amelynek helyinek kell maradnia, hiányoznia kell belőle. Egy alkalmazás-alhálózat útvonala a privát feloldójához vezető megfelelő útvonal nélkül gyakori módja annak, hogy egy összeomlást hozzon létre, amely törött alkalmazásnak látszik.
Ellenőrizze a döntést, amelyet a kernel kategóriánként egy címre hoz:
ip route get 10.20.5.10
ip route get 203.0.113.25
Az elsőnek a ppp0-t, a másodiknak a szokásos átjárót kell megneveznie. Ha mindkettő ugyanazt az interfészt nevezi meg, a házirend egyáltalán nincs osztva. Adja hozzá a DNS-kiszolgáló saját címét az alagútlistához, különben a belső gazdagépek névfeloldása a helyi feloldón keresztül megy ki, és semmi hasznosat nem ad vissza.
Öt lépésben megismételhető ellenőrzés
Futtassa a rétegeket sorrendben, és álljon meg az elsőnél, amely meghiúsul: vezérlőcsatorna, GRE-láthatóság, PPP-partner válasza, osztott útvonal egy belső címhez, és egy alkalmazáskérés az alagúton át. Minden lépésnek saját parancsa van, így a hiba hozzárendelhető, nem rejtélyes.
A Linux-klienshez készült tömör változat így néz ki:
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
Windows alatt ugyanez a sorrend érvényes a route print paranccsal és a kliensben látható adapterállapottal. A PPTP örökölt protokoll, és ha a szerver SSTP-t vagy IKEv2-t kínál, az átállás általában jobb időfelhasználás, mint egy olyan útvonal hangolása, amely a 47-es protokoll minden ugráson való átjutásától függ. Ellenőrizze a helyettesítő tanúsítványát és hitelesítési szerződését, ahelyett hogy egy régi profilt másolna egy új kiadásba.