Pelayan web hilang apabila klien VPN menyambung
Permintaan tiba di LAN dan jawapan keluar melalui terowong. Pilih laluan yang dikecualikan, penghalaan dasar atau terjemahan mengikut apa yang perlu dilakukan oleh hos.
Perkhidmatan yang hilang pada saat klien VPN menyambung biasanya tidak disekat, ia menjawab melalui antara muka yang salah. Permintaan tiba pada kad rangkaian fizikal, daemon menulis jawapan, dan jadual penghalaan menyerahkan jawapan itu kepada terowong, kerana terowong telah mengambil alih laluan lalai. Klien jauh tidak pernah melihat jawapan kepada sambungan yang dibukanya, jadi ia menunggu dan kemudian melaporkan tamat masa. Tiada peraturan firewall terlibat di mana-mana dalam urutan itu.
Gejalanya: permintaan masuk, jawapan keluar melalui pintu yang salah
Petunjuknya ialah sambungan masuk yang gagal sementara segala-galanya pada hos berfungsi. Petunjuk lain ialah hos yang boleh dicapai dari LAN tetapi tidak dari internet, atau hos yang berfungsi sehingga terowong menyambung semula dan kemudian berhenti. Dalam setiap kes arah ke hadapan berkelakuan baik dan arah balik tidak, yang menunjukkan asimetri penghalaan dan bukan dasar.
Sahkan dengan memerhati ke mana jawapan pergi, bukan dengan memerhati bagaimana permintaan tiba.
Tangkap pada antara muka fizikal dan pada peranti terowong serentak. Jika permintaan muncul pada antara muka fizikal dan jawapan muncul pada terowong, diagnosis selesai. Jawapan yang tidak muncul di mana-mana bermakna perkhidmatan tidak pernah menerima sambungan itu, yang merupakan penyiasatan berasingan dengan punca berasingan.
Dua laluan lalai dan satu keputusan penghalaan
Klien yang memasang laluan lalai menambah entri kedua dengan metrik yang lebih baik daripada get laluan LAN. Sesetengah klien memasang dua laluan separuh julat sebaliknya, yang meliputi ruang yang sama dengan lebih khusus dan memenangi carian dengan cara yang sama. Kedua-dua teknik membiarkan paket keluar biasa memilih antara muka terowong.
Pilihan itu dibuat hanya mengikut destinasi. Kernel tidak bertanya dari mana paket datang melainkan peraturan dasar mengarahkannya. Jadi jawapan kepada alamat klien awam diserahkan kepada terowong, yang hujung jauhnya menerima paket dengan alamat sumber yang bukan miliknya dan membuangnya atau memajukannya ke tempat yang tidak berguna. Di Linux, penapisan laluan balik yang ketat juga boleh menggugurkan permintaan asal sebelum perkhidmatan anda melihatnya, yang dari luar kelihatan sama. Kedua-dua gejala datang daripada persatuan yang sama hilang antara aliran masuk dan jawapannya.
Terowong berkelakuan betul sepanjang masa. Ia diberitahu untuk membawa laluan lalai dan ia melakukan tepat itu.
Baiki laluan balik tanpa memecahkan terowong
Terdapat tiga bentuk pembaikan yang tahan lama, dan pilihannya bergantung pada berapa banyak trafik hos sendiri yang harus kekal di dalam terowong. Mengecualikan destinasi atau port perkhidmatan ialah perubahan terkecil. Penghalaan dasar mengikut sumber atau tanda ialah yang paling tepat. Terjemahan sumber ialah yang paling kasar dan paling mudah dijelaskan dua tahun kemudian.
Pilih mengikut apa yang perlu dilakukan oleh hos, bukan mengikut petikan mana yang anda jumpa dahulu.
Mengecualikan destinasi sesuai untuk perkhidmatan dengan alamat awam yang stabil, dan mengikat daemon pada alamat fizikal dan bukan pada setiap alamat menjadikan pengecualian itu lebih selamat. Peraturan dasar yang memilih jadual mengikut sumber mengekalkan sambungan hos sendiri di dalam terowong sambil memulangkan jawapan perkhidmatan melalui get laluan WAN. Menyamar jawapan ke antara muka WAN mencapai laluan yang sama dengan kos menyembunyikan alamat klien daripada log perkhidmatan. Perubahan laluan lalai secara ad hoc ialah diagnosis dan bukan konfigurasi, kerana klien menulis semula laluan pada setiap sambungan semula.
ip rule show
ip route get 203.0.113.9 from 192.0.2.44Apabila hos juga menghala untuk LAN di belakangnya
Satu lompatan lebih jauh, asimetri yang sama kembali dengan lebih banyak bahagian bergerak. Trafik sampai ke penghala dari internet, dimajukan ke peranti dalaman, dan satu-satunya laluan balik peranti itu ialah terowong, jadi jawapan sampai kepada klien asal dari alamat pembekal itu sendiri. Penjejakan sambungan kemudian menemui jawapan untuk aliran yang tidak dilihatnya bermula, dan membuangnya. Klien sementara itu tidak melihat apa-apa.
Dua perubahan membaikinya: terjemahan destinasi supaya sambungan masuk sampai ke peranti dalaman, dan terjemahan sumber supaya jawapan peranti itu kelihatan datang dari penghala itu sendiri.
Dalam firmware penghala ungkapan biasa ialah peraturan dasar yang memakukan pemajuan port ke sisi WAN sementara trafik penghala sendiri menaiki terowong. Tanpa terjemahan sumber, jawapan itu dialamatkan kepada klien luaran dan peranti dalaman langsung tidak mempunyai laluan ke sana. Uji tiga perkara secara berasingan, kerana ia gagal atas sebab yang berbeza: sambungan yang datang dari luar, satu yang dimulakan hos sendiri, dan carian nama.