Mengapa pelayan di belakang klien VPN membalas melalui terowong
Sambungan masuk gagal apabila balasan mengikut laluan lalai VPN dan bukan laluan ketibaan. Penghalaan dasar atau NAT sumber memulihkan laluan pulang.
Sambungan masuk ke hos yang juga menjalankan klien VPN gagal dengan cara yang sangat khusus: jabat tangan tiba, daemon membalas, dan klien tidak menerima apa-apa balik. Tiada apa yang menyekat port. Jawapan keluar melalui terowong, kerana terowong memiliki laluan lalai dan kernel menghalakan balasan mengikut destinasi, bukan mengikut ingatan dari mana permintaan datang. Satu ketinggalan itu menjelaskan setiap gejala berikut.
Balasan dihalakan, bukan diingati
Klien VPN yang memasang laluan lalai menambah entri yang mengatasi get laluan LAN, sama ada melalui metrik atau dengan membahagikan ruang kepada dua separuh yang lebih khusus. Paket keluar kini memilih antara muka terowong. Kernel tidak pernah bertanya dari mana paket yang dibalas itu datang asalnya. Satu ketinggalan itu menjelaskan setiap gejala berikut.
Arah hadapan dihalakan mengikut destinasi, dan arah balik juga. Balasan dialamatkan kepada klien awam, yang akan dibawa terowong dengan senang hati. Hujung jauh menerima paket yang sumbernya bukan miliknya, membuangnya, dan klien asal menunggu sehingga masa tamat.
Penapisan laluan balik yang ketat boleh menggugurkan paket masuk sebelum daemon membacanya. Periksa pembilang itu dahulu, kerana guguran penapis dan kesilapan penghalaan kelihatan sama dari luar.
ip route show default sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.eth0.rp_filter nft list ruleset | grep -A3 'hook forward'
Perintah pertama menunjukkan laluan lalai mana yang menang sekarang. Yang kedua melaporkan sama ada penapisan ketat terpakai secara global atau setiap antara muka, dan yang ketiga menunjukkan mana-mana peraturan rantai penghantaran yang mungkin terlibat.
Tiga cara mengekalkan laluan pulang
Mengecualikan destinasi perkhidmatan daripada terowong ialah pilihan paling sempit. Laluan hos yang dihalakan ke get laluan LAN, bersama daemon yang terikat pada alamat fizikal dan bukan setiap alamat, mengekalkan satu aliran itu di luar terowong. Perubahan itu setempat dan mudah dibatalkan.
Penghalaan dasar ialah jawapan umum. Peraturan yang dikunci pada alamat sumber atau pada tanda tembok api memilih jadual yang laluan lalainya menunjuk ke get laluan WAN, sementara sambungan hos itu sendiri terus menggunakan terowong. Kekalkan keutamaan secara eksplisit supaya peraturan itu tidak dilindungi kemudian.
ip rule add from 203.0.113.25/32 table 100 priority 100 ip route add default via 192.0.2.1 dev eth0 table 100 ip route get 198.51.100.7 from 203.0.113.25
Dua perintah pertama membina laluan alternatif untuk balasan yang bersumber daripada alamat awam. Yang ketiga bertanya kepada kernel laluan mana yang akan diambil oleh sumber dan destinasi tepat itu, dan begitulah anda mengesahkan peraturan itu mempunyai apa-apa kesan.
Terjemahan sumber ialah pilihan ketiga dan satu-satunya yang bertahan di hadapan penghala yang sudah melakukan NAT di hadapan perkhidmatan. Balasan mesti kembali kepada penghala itu, dan penyamaran ke antara muka WAN mencapainya sambil menyembunyikan klien daripada log perkhidmatan. Mengganti laluan lalai secara manual selepas bersambung ialah diagnostik, kerana klien menulis semula jadual itu pada sambungan semula berikutnya.
Apabila kotak itu juga menghalakan untuk LAN
Kegagalan yang sama muncul satu hop lebih jauh apabila hos menghalakan untuk peranti di belakangnya. Sambungan masuk dihantar ke peranti dalaman yang satu-satunya laluan pulang ialah terowong, dan balasan sampai ke klien luaran dari alamat pembekal. Peranti dalaman berfungsi dengan betul sepanjang masa.
Penjejakan sambungan kemudian melihat balasan untuk aliran yang tidak pernah direkodkannya dan menggugurkannya. Terjemahan destinasi menghantar sambungan masuk ke peranti, dan terjemahan sumber membuat balasan kelihatan datang dari penghala itu sendiri.
Laluan dasar yang mengekalkan port yang dihantar di WAN sementara trafik penghala sendiri menggunakan terowong ialah padanan yang lebih kemas. Tanpa terjemahan sumber balasan dialamatkan kepada klien luaran, dan peranti dalaman tidak mempunyai langsung laluan ke alamat itu.
Tiga siasatan yang memisahkan punca
Jalankan tiga siasatan: sambungan ke dalam kotak dari internet, sambungan keluar daripadanya ke hos awam, dan carian nama. Apabila dua yang pertama tidak sependapat, laluan pulang yang bersalah. Apabila nama gagal dalam kedua-dua arah, penyelesai ialah kerosakan lain yang hanya berkongsi terowong.
Betulkan dahulu persoalan penghalaan, kemudian lihat nama. Mencampurkan kedua-duanya ialah cara pelayan yang berfungsi disalahkan atas penyelesai yang rosak.
Catat antara muka mana yang dinamakan oleh pengecualian dan simpan konfigurasi di bawah kawalan versi. Peraturan yang ditulis terhadap antara muka yang dinamakan semula selepas peningkatan lulus hari ini dan gagal selepas but semula seterusnya.