Memajukan TCP 1723 sering membuka bahagian pertama PPTP dan membiarkan selebihnya rosak, jadi Windows masih memulangkan ralat 807 pada percubaan. Dorongan seterusnya ialah menambah peraturan untuk port 47, dan langkah itulah yang membazirkan satu petang: GRE ialah nombor protokol dalam pengepala IP, bukan port yang boleh dipadankan oleh jadual pemajuan. Sehingga penghala melepaskan protokol 47 dan mengikatnya pada panggilan yang sama, terowong tidak boleh bermula. Bahagian di bawah memisahkan dua saluran itu, kemudian mengujinya satu demi satu.

Jadual port tiada baris untuk nombor protokol

PPTP menggunakan dua perbualan yang gagal dengan cara berbeza. Yang pada TCP 1723 memulakan panggilan, menyampaikan maklumat pautan dan memutuskannya apabila pengguna terputus. Bahagian muatan berjalan di dalam GRE, yang ditandakan pengepala IP dengan nombor protokol 47, dan di dalam terowong itu PPP merundingkan pautan sementara MS-CHAPv2 memeriksa kelayakan.

Kerana GRE tidak membawa pengepala pengangkutan, ia tidak mendedahkan sebarang port, jadi peraturan yang ditulis untuk port tiada apa-apa untuk dipadankan. Penghala yang memajukan 1723 mencipta pemetaan untuk sesi TCP itu dan berhenti di situ. Perisian tegar yang mengendalikan separuh kedua memanggil ciri itu passthrough PPTP atau PPTP ALG, dan sesetengah perisian tegar tidak menawarkan kedua-duanya dan tidak pernah menyebut jurang itu. Label pada kotak semak kurang penting daripada sama ada protokol 47 dikenali langsung.

Apa yang dilaporkan Windows apabila laluan data mati

Ralat 807 mengatakan sambungan tidak dapat diselesaikan, yang dalam praktiknya bermakna panggilan sampai ke pelayan dan saluran data tidak naik. Ia adalah keputusan tentang pengangkutan, bukan tentang akaun. Ralat 691 ialah yang menunjuk kepada kelayakan atau kepada ketidakserasian protokol pengesahan, jadi ia menghantar anda ke tempat yang sama sekali lain.

Kerjakan pengangkutan sebelum menyentuh kata laluan. Menukar kelayakan untuk mengejar 807 membiarkan kerosakan sebenar di tempatnya dan menjadikan percubaan seterusnya lebih sukar dibaca.

Mengapa klien kedua merosakkan terowong yang berfungsi

Tanpa port untuk membezakan mereka, peranti NAT tidak dapat memisahkan dua klien PPTP seperti ia memisahkan dua sesi HTTPS. Oleh itu banyak peranti pengguna membenarkan satu panggilan PPTP dan menjejakinya mengikut alamat sumber. Komputer riba yang berfungsi sendirian berhenti menyelesaikan sebaik sahaja mesin kedua mendail, dan dari sisi klien kegagalan itu kelihatan rawak. Corak itu milik perisian tegar, dan tiada perubahan profil akan mengubahnya.

Perhatikan jadual sambungan semasa kedua-dua klien mendail. Jika hanya hos pertama yang pernah memegang pemetaan, penghala telah mencapai had sokongannya dan tiada tetapan sisi klien akan menggesernya.

Buktikan separuh mana yang gagal

Pastikan TCP 1723 tiba sebelum mengubah apa-apa pada penghala, kerana jawapan itu menentukan separuh mana yang anda uji. Jalankan ini dari klien Windows terhadap nama pelayan anda sendiri. Yang pertama mencetak sama ada port menjawab, dan yang kedua mendail tanpa dialog, yang menjadikan percubaan berulang boleh dibandingkan.

Test-NetConnection vpn.example.com -Port 1723
rasdial "Work VPN"

Hasil benar dalam ujian port bermakna saluran kawalan terbuka dan GRE ialah suspek yang tinggal. Hasil palsu bermakna penghalaan, penapis atau pemajuan rosak, dan tiada perubahan GRE akan menyelamatkannya. Bahagian data mesti diperhatikan di tempat ia kelihatan, di pelayan atau di penghala.

tcpdump -ni any proto 47

Persamaan dalam Wireshark ialah penapis paparan ip proto 47, yang lebih mudah diberikan kepada seseorang yang tidak selesa pada baris arahan. GRE yang tiba tanpa apa-apa keluar dalam jawapan bermakna laluan balik perlu dibaiki.

Apa yang sebenarnya membaiki ralat

Di tempat penghala menunjukkan tetapan itu, aktifkan passthrough PPTP, atau benarkan protokol 47 secara eksplisit pada perisian tegar yang menerima peraturan. Pada RouterOS peraturan pemajuan memadankan protokol secara langsung, yang tidak mungkin dilakukan oleh pemajuan berasaskan port. Perisian tegar pengguna biasanya menyembunyikan keputusan yang sama di sebalik kotak semak, kadang-kadang di bawah tetapan keselamatan dan bukan di bawah pemajuan port. Jika tiada kawalan sedemikian, tiada apa di sisi klien akan mengimbanginya.

/ip firewall filter add chain=forward protocol=gre action=accept
/ip firewall filter print where protocol=gre

Menggantikan PPTP ialah pilihan lain dan selalunya lebih murah. Penghala yang menamatkan VPN itu sendiri mengelakkan NAT berganda untuk klien masuk, dan protokol yang sudah dikendalikan NAT berasaskan port tidak memerlukan passthrough langsung: OpenVPN melalui UDP, SSTP melalui TCP 443 atau L2TP/IPsec dengan NAT-T yang membalut ESP dalam UDP 4500. PPTP juga bergantung pada MS-CHAPv2, yang kelemahannya terdokumentasi menjadikannya pilihan buruk untuk penggunaan baharu walaupun selepas ralat hilang.

Catat peraturan mana yang membuat perbezaan, kerana tapak yang sama akan menemui had yang sama apabila pengguna kedua meminta akses. Pembetulan pada peringkat protokol tergolong dalam nota rangkaian, tempat jurutera seterusnya akan melihat.

Artikel berkaitan