PPTP қосылымының көтерілуін қараңыз және қиын бөлігі бітті деп сену оңай: клиент аутентификациядан өтеді, ppp0 адаптері немесе WAN Miniport пайда болады, күй терезесі жасыл түске айналады. Содан кейін ішкі хостқа алғашқы сұраныс уақыт шегінен асып кетеді, ал профиль кінәланады. Іс жүзінде екі тәуелсіз қабатты тазарту керек: TCP 1723 және GRE тасымалдайтын сыртқы тасымал, және қай тағайындаулар PPP интерфейсін қолданатынын шешетін ішкі саясат. Жасыл күй тек бірінші қабаттың келісілгенін дәлелдейді; екіншісі туралы ол ештеңе айтпайды.

Клиентті профильден басқару сокетіне дейін бақылаңыз

Клиент журналын ашып, оның сервермен байланысатын нүктесін табыңыз. PPTP алдымен 1723 портына TCP қосылымын ашады және сол арна арқылы туннель параметрлерін келіседі. Егер бұл қадам сәтсіз болса, кейінгі ештеңенің маңызы жоқ, және қате әдетте сервер мекенжайын немесе уақыт шегін атайды.

Кез келген маршрутқа тиюден бұрын басқару қосылымын желіде растаңыз. Клиентте немесе айна портында бір қосылу әрекеті үшін TCP 1723 түсіріңіз:

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

Аяқталған қол алысу және орнатылған сессия сыртқы басқару арнасы жұмыс істейтінін білдіреді. Ешқашан SYN-ACK алмайтын SYN брандмауэрге, дұрыс емес сервер мекенжайына немесе портты сүзетін провайдерге нұсқайды. Қол алысудан кейін бірден қайта орнату көбінесе сервердің тіркелгі деректерін немесе туннель түрін қабылдамағанын білдіреді.

GRE — екінші протокол, порт емес

PPTP PPP жүктемесін кеңейтілген GRE, IP 47 протоколының ішінде тасымалдайды, оның маршрутизатор бақылай алатын порт нөмірі жоқ. Сондықтан TCP 1723-ке рұқсат беретін ереже туннельді деректер жолынсыз қалдыра алады. Күйі бар NAT құрылғылары жауаптарды кері салыстыру үшін GRE ішіндегі шақыру ID-ін түсінуі керек, ал көпшілігі оны жасамайды. PPTP сипаттамасы басқару арнасы мен GRE жүктемесін бөлек бөліктер ретінде ұстайды, және сіздің тест жоспарыңыз да солай болуы керек.

Сол түсірілімде 47 протоколын бақылаңыз, содан кейін шыққанмен қайтқанды салыстырыңыз:

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

Жауапсыз шығып жатқан пакеттер, TCP 1723 сау болып тұрғанда, бұғатталған GRE-нің классикалық белгісі. Тұтынушылық маршрутизатордағы PPTP өткізуі сол нақты прошивканың ерекшелігі, сондықтан жұмыс істейтін қонақүй желісі келесісі туралы ештеңе дәлелдемейді. Егер маршрутизатор өткізуді ұсынбаса және оны өзгерте алмасаңыз, мәселе маршрут кестесінде емес, протокол таңдауында.

Туннель бір пакетті жылжытатынын дәлелдеңіз

GRE аға бастағанда, PPP келіссөзі клиент интерфейсіне мекенжай береді. Болжам жасамай, тағайындауды оқыңыз:

ip -4 addr show ppp0

Нүкте-нүкте байланысының тағайындалуы ретінде көрсетілген серіктес мекенжайына пинг жіберіңіз. Бұл кезеңдегі жауап қапталған жолдың басынан аяғына дейін жұмыс істейтінін және сервердің туннель ішінде жауап беретінін дәлелдейді. Егер серіктес жауап берсе, ал ішкі хосттар бермесе, сыртқы тасымал дұрыс және ақау ішке ауысқан.

Мұны кез келген бөлінген маршрут қоспас бұрын жасаңыз. Тасымал бүлінген кезде жасалған маршрут өзгерісі екінші айнымалыны тудырып, біріншісін жасырады.

Бөлінген саясатты жазыңыз, DNS-ті қоса

Бөлінген маршруттау — шешімдер тізімі, қанатша емес. Туннельден өтуі керек әрбір жеке префикске PPP интерфейсі арқылы маршрут қажет, ал жергілікті қалуы керек әрбір префикс онда болмауы керек. Қолданба ішкі желісіне оның жеке шешушісіне сәйкес келетін маршрутсыз маршрут жасау — бүлінген қолданбаға ұқсайтын үзіліс жасаудың кең таралған жолы.

Әр санаттағы бір мекенжай үшін ядро қабылдайтын шешімді тексеріңіз:

ip route get 10.20.5.10
ip route get 203.0.113.25

Біріншісі ppp0, екіншісі қарапайым шлюзді атауы керек. Екеуі де бір интерфейсті атаса, саясат мүлде бөлінбеген. DNS серверінің өз мекенжайын туннель тізіміне қосыңыз, әйтпесе ішкі хосттар үшін атау шешімі жергілікті шешуші арқылы шығып, пайдалы ештеңе қайтармайды.

Бес қадамда қайталанатын тексеру

Қабаттарды ретімен іске қосып, бірінші сәтсіз болғанында тоқтаңыз: басқару арнасы, GRE көрінуі, PPP серіктесінің жауабы, бір ішкі мекенжай үшін бөлінген маршрут және туннель арқылы қолданба сұранысы. Әр қадамның өз командасы бар, сондықтан ақауды жатқызуға болады, жұмбақ емес.

Linux клиенті үшін ықшам нұсқа былай көрінеді:

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-та дәл сол рет route print және клиентте көрсетілген адаптер күйімен қолданылады. PPTP — ескірген протокол, ал егер сервер SSTP немесе IKEv2 ұсынса, әр секірісте 47 протоколының өтуіне тәуелді жолды реттеуден гөрі көшу әдетте уақытты тиімдірек пайдалану. Ескі профильді жаңа шығарылымға көшірудің орнына ауыстырғыштың сертификаты мен аутентификация шартын тексеріңіз.

Қатысты мақалалар