Satu baris pada antara muka PPP menyelesaikan sebahagian besar perdebatan penghalaan pada kotak VPN: alamat dalam dan peer yang dicetak di sisinya. Baca pasangan itu sebagai subnet kecil dan anda akan mencari gerbang yang tidak wujud. Baca ia sebagai dua hujung satu pautan dan lonjakan seterusnya menjadi jelas. Perbandingan di sini adalah antara dua bacaan itu, kerana setiap jadual yang dibina selepas itu mewarisi yang anda pilih. Tiada apa tentang titik akhir VPN luar diputuskan oleh mana-mana daripadanya.

Dua bacaan bagi satu baris antara muka

Ambil sesi di mana antara muka melaporkan inet 10.64.3.9 peer 10.64.3.1/32. Bacaan subnet menganggap 10.64.3.9 sebagai hos tunggal di pulau /32 lalu mencari penghala untuk mencapai apa-apa di luarnya. Oleh sebab satu-satunya alamat lain pada pautan ialah peer, bacaan itu akhirnya mencadangkan 10.64.3.9 sendiri sebagai gerbang, yang bersifat bulat.

Bacaan titik akhir ialah yang didokumenkan. Pada antara muka titik-ke-titik, peer menamakan hujung jauh pautan tunggal itu, jadi 10.64.3.1 ialah lonjakan seterusnya yang boleh digunakan dan 10.64.3.9 sentiasa hanya alamat sumber.

Perbezaan itu menentukan apa yang boleh muncul dalam via. Menulis alamat tempatan di situ menghasilkan laluan yang tidak dapat diselesaikan kernel kepada jiran, jadi entri itu sama ada gagal pengesahan atau menelan trafik sambil kelihatan sihat sepenuhnya dalam senarai. Peer berfungsi kerana ia destinasi sebenar pada pautan. Kedua-dua bacaan bersetuju tentang titik akhir VPN luar, yang merupakan identiti yang sama sekali berasingan: ia dicapai melalui underlay, bukan melalui terowong yang ia tamatkan.

Apa yang sudah dipasang sesi

Sebelum menulis jadual sendiri, cetak apa yang datang bersama pautan. Integrasi PPP yang disokong biasanya memasang laluan peranti dan laluan peer semasa penyediaan sesi, dan kedua-dua entri itu sudah mengekod bacaan yang betul.

ip -4 addr show dev ppp0
ip route show dev ppp0
ip route show table main | head -n 5

Laluan peranti seperti 10.64.3.1 dev ppp0 proto kernel scope link src 10.64.3.9 tidak membawa gerbang kerana antara muka itu sendiri ialah laluannya. Laluan yang menamakan peer dengan via ialah objek lain dengan jangka hayat lain, dan ia hilang apabila sesi terputus. Menyalin mana-mana satu daripada dua bentuk itu ke jadual berterusan tanpa memeriksa cara ia dipasang semula ialah sebab biasa terowong yang berfungsi kehilangan laluannya selepas sambungan semula.

Bandingkan kedua-dua senarai daripada mempercayai ingatan. Jika laluan peer wujud dalam main tetapi jadual tambahan anda kosong, anda telah mempelajari sesuatu yang tidak pernah diberitahu oleh baris alamat.

Peraturan dan jadual ialah keputusan berasingan

Memilih jadual dan mengisinya ialah langkah bebas, dan perbandingan penting di sini kerana kedua-duanya sering dikelirukan semasa nyahpepijat. Peraturan yang menghantar trafik bertanda ke jadual 100 tidak melakukan apa-apa jika jadual 100 tiada laluan yang sepadan, dan jadual yang terisi baik tidak dapat dicapai jika tiada peraturan menunjuk kepadanya.

Separuh laluan lalai bukan laluan lalai. Satu 0.0.0.0/1 meliputi separuh bawah ruang IPv4, jadi dasar yang bertujuan menangkap semuanya juga memerlukan 128.0.0.0/1 yang sepadan, atau default yang sebenar. Membaca konfigurasi yang berfungsi dan menyalin salah satu daripada dua separuh ialah cara orang berakhir dengan gelung penghalaan yang hanya rosak pada destinasi tertentu.

Biarkan pengecualian yang disengajakan untuk alamat yang mesti kekal di LAN, dan putuskan apa yang berlaku apabila carian tidak menemui apa-apa dalam jadual yang dipilih. Laluan sandaran yang jelas lebih mudah difikirkan daripada jadual kosong, yang mengembalikan hasil tidak tercapai dan membuat aplikasi kelihatan rosak dan bukan tersalah hala.

Tanyakan kepada carian soalan yang ditanyakan aplikasi anda

ip route get menyelesaikan laluan; ip route show menyenaraikan entri tersimpan, dan kedua-duanya boleh tidak bersetuju tanpa mana-mana yang salah. Sertakan konteks sumber, kerana peraturan berasaskan sumber hanya sepadan apabila carian membawa sumber.

ip route get 198.51.100.23 from 10.64.3.9
ip route get 198.51.100.23 from 10.64.3.9 iif ppp0
ip -4 rule show

Perintah pertama mengemukakan soalan dari hos. Yang kedua menambah antara muka masuk, yang lebih dekat dengan apa yang dialami trafik diteruskan, dan jawapannya sering menunjuk jadual lain. Tiada satu pun destinasinya ialah perkhidmatan ujian hidup; 198.51.100.23 ialah alamat dokumentasi, jadi gantikannya dengan hos yang anda dibenarkan menyiasat.

Malah carian yang betul hanya membuktikan bahawa sesuatu laluan telah dipilih. Ia tidak mengatakan apa-apa tentang sama ada pihak jauh menerima trafik itu atau sama ada balasannya boleh kembali melalui penaakulan yang sama.

Di mana perbandingan berbalik

Trafik hos dan trafik diteruskan bukan sahaja mengambil carian berbeza; ia bertemu penapis berbeza pada jalan pulang. Linux menggunakan pengesahan laluan songsang dengan tetapan yang lebih ketat antara semua antara muka dan antara muka penerima, jadi mengubah nilai satu antara muka mungkin tidak memberi kesan yang kelihatan. Penghalaan berasaskan tanda menambah hubungan src_valid_mark, di mana tanda mesti sepadan agar sumber dianggap sah.

Jika balasan hilang sementara penghalaan keluar kelihatan betul, baca nilai berkesan sebelum menyentuhnya, dan ubahnya hanya dengan sebab dasar yang dinyatakan.

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.ppp0.rp_filter
sysctl net.ipv4.conf.all.src_valid_mark

Pilih antara dua reka bentuk berdasarkan bukti: jika aplikasi terikat pada alamat PPP, peraturan sumber serta jadual yang menyimpan laluan peer sudah memadai. Jika kotak itu meneruskan untuk LAN di belakangnya, anda juga perlu konteks masuk dan jalan pulang yang sepadan. Jika tidak sepadan, betulkan pemilikan laluan dan bukannya melonggarkan pengesahan untuk seluruh mesin.

Artikel berkaitan