Jadual penghalaan sering dibaca sebagai rosak setiap kali lajur gateway kosong, sedangkan baris itu biasanya sudah lengkap dengan sendirinya. Medan via muncul hanya apabila kernel menyerahkan paket kepada alamat hop seterusnya; laluan yang terikat pada antara muka mencapai destinasinya melalui penyelesaian lapisan pautan atau melalui rakan titik-ke-titik. Membaca lajur dari kiri ke kanan memberitahu anda dalam kes yang mana, dan bacaan itu harus berlaku sebelum sesiapa mengedit laluan lalai. Kebanyakan tiket tentang gateway yang hilang berakhir pada perbezaan ini.

Baca baris laluan lajur demi lajur

Setiap entri dibuka dengan destinasi dan panjang awalanannya, kemudian menambah pengubah suai dalam perbendaharaan kata tetap: via, dev, proto, scope, src dan metric. Baris seperti 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2 padat tetapi ditentukan sepenuhnya. Tiada apa-apa yang hilang daripadanya, dan tiada alamat penghala yang tersirat.

Ketiadaan via ialah bahagian yang menarik. Tanpa hop seterusnya, kernel menyelesaikan destinasi terus pada antara muka yang dinamakan, yang bagi terowong bermakna menyerahkan bingkai kepada peranti terowong dan membiarkan enkapsulasi mengambil alih dari situ. proto kernel merekodkan bahawa entri dipasang secara automatik apabila alamat diberikan, bukan ditaip oleh pentadbir. scope link menyatakan destinasi boleh dicapai pada pautan itu tanpa melalui penghala, dan src menamakan alamat yang akan diutamakan kernel sebagai sumber bagi trafik yang sepadan.

Sekarang baca laluan lalai dengan cara yang sama: default via 192.0.2.254 dev eth0 proto static metric 100. Di sini via hadir kerana paket memang memerlukan hop seterusnya, dan hop itu sendiri mesti boleh dicapai pada eth0. Kedua-dua baris itu bukan varian satu sama lain; ia menjawab soalan berbeza tentang ke mana trafik pergi.

Dua bentuk laluan yang sering dikelirukan

Laluan subnet terowong dan laluan lalai kelihatan serupa dalam tangkapan skrin dan berkelakuan sama sekali berbeza. Gunakan jadual di bawah sebagai bantuan membaca medan, kemudian sahkan nombor sebenar pada mesin yang anda nyahpepijat dan bukannya mempercayai sampel daripada panduan.

Piece of the lineWhat it settlesWhat it says nothing about
The destination and maskWhich packets are eligible to matchWhere those packets leave the host
via plus its addressWhich next hop receives them, and therefore that a router is involvedWhether that router is reachable or sane
devWhich interface carries the encapsulated or raw packetWhether the interface is up or has a carrier
proto and scopeWho installed the entry and how far the destination is considered to beWhether a firewall later drops the traffic

Apa yang jadual tidak dapat beritahu anda ialah niat. Laluan langsung ke julat peribadi melalui terowong ialah reka bentuk terowong berpecah yang disengajakan; bentuk yang sama muncul pada hos yang sepatutnya menghantar segala-galanya melalui VPN ialah gejala. Niat hidup dalam konfigurasi yang menghasilkan entri itu, jadi lihat alat yang memasangnya sebelum anda membuat kesimpulan kernel melakukan kesilapan.

Begitu juga, gateway yang hilang bukan izin untuk menciptanya. Jika sesuatu laluan benar-benar memerlukan hop seterusnya, hop itu mesti boleh dicapai pada antara muka yang membawanya, dan bagi terowong titik-ke-titik alamat rakan bukan objek yang sama dengan alamat tempatan. Menganggap alamat terowong tempatan sebagai penghala Ethernet ialah cara biasa menghasilkan laluan yang kelihatan betul dan tidak memajukan apa-apa.

Tanya kernel baris mana yang benar-benar akan digunakan

Membaca jadual tidak sama dengan melakukan carian, kerana kernel merujuk peraturan dasar, beberapa jadual dan entri cache sebelum menjawab. Kata kerja yang melakukan carian sebenar ialah ip route get, dan ia mencetak laluan yang akan diambil oleh paket dengan sifat-sifat itu.

ip route get 203.0.113.37 from 198.51.100.2 iif tun0

Gantikan dengan destinasi yang benar-benar anda pedulikan, kemudian tambah from atau iif apabila trafik dipilih mengikut sumber atau dimajukan, kerana carian tempatan biasa boleh memilih laluan berbeza daripada klien yang dimajukan. Balasan itu menamakan antara muka, alamat sumber yang dipilih dan mana-mana hop seterusnya, iaitu maklumat yang sama dengan yang akan digunakan untuk menghalakan paket pada saat itu.

Jika jawapannya mengejutkan anda, cetak peraturannya sebelum mengubah apa-apa: ip -4 rule show menyenaraikannya mengikut susunan keutamaan, dan klien VPN yang memasang jadualnya sendiri atau peraturan untuk paket bertanda tidak akan muncul sama sekali dalam jadual utama. Menyenaraikan setiap jadual menutup jurang itu.

ip -4 route show table all | grep -E 'tun|default'

Periksa lapisan asas sebelum menggantikan laluan lalai

Paket terowong itu sendiri mesti sampai ke titik akhir jauh, dan ia melakukannya melalui antara muka fizikal menggunakan laluan yang wujud sebelum VPN naik. Menggantikan seluruh laluan lalai tanpa memakukan titik akhir itu menghantar paket terenkapsulasi ke dalam terowong yang sepatutnya mereka bina, dan sambungan itu runtuh. Sahkan dahulu laluan ke titik akhir dengan carian bagi alamat titik akhir sahaja.

Asingkan tiga perkara apabila anda membuat perubahan: laluan titik akhir yang mesti kekal pada antara muka fizikal, julat peribadi yang sepatutnya masuk ke dalam terowong, dan laluan lalai yang menentukan segala-galanya. Pecahkan ketiganya mengikut urutan itu, gunakan satu demi satu, dan jalankan semula carian selepas setiap langkah. Ping yang gagal selepas itu membuktikan sangat sedikit dengan sendirinya, kerana kebenaran, penghalaan balasan, DNS dan perkhidmatan itu sendiri semuanya berada di hilir laluan yang betul.

Catat empat nilai yang diberikan baris itu sebelum penyuntingan: destinasi, hop seterusnya atau ketiadaannya, peranti dan sumber yang dipilih. Jika perubahan kemudian menggerakkan mana-mana daripadanya, anda tahu keputusan mana yang sebenarnya diubah, dan anda boleh memulihkan satu entri daripada meneka seluruh jadual.

Artikel berkaitan