Metrik laluan OpenVPN: mengapa laluan yang dipilih masih kalah
Metrik setiap laluan dan route-metric menetapkan perkara yang berbeza. Telusuri baris profil, periksa apa yang dipasang klien, dan lihat mengapa nombor yang lebih rendah masih kalah.
Anda menambah metrik pada laluan dalam profil, menyambung semula, dan trafik masih keluar melalui antara muka yang salah. Nombor jarang menjadi masalahnya. Metrik hanya menyusun calon yang sudah dibandingkan oleh sistem pengendalian, dan awalan yang lebih khusus atau jadual dasar yang lebih awal membuat keputusan sebelum sebarang metrik dibaca.
Telusuri profil dahulu, kemudian jadual yang dipasang, kemudian peraturan pemilihan. Urutan itu sepadan dengan cara klien membina laluan dan menghalang anda daripada menala nilai yang tidak pernah masuk perbandingan.
Baca baris laluan mengikut urutan medan
Klien Community OpenVPN 2.6 menerima empat medan pada baris IPv4 route: rangkaian, topeng rangkaian, gerbang dan metrik pilihan. Kedudukan gerbang ialah tempat kata kunci khas vpn_gateway diletakkan. Ia bermaksud hop seterusnya di sebelah VPN untuk sambungan ini, bukan nombor jadual penghalaan dan bukan penghala fizikal anda. Terlepas itu dan seluruh baris dibaca dengan tanggapan salah tentang fungsinya. rujukan network-options mendokumenkan keempat-empat medan.
Untuk destinasi peribadi baris itu boleh berbunyi:
route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30
30 yang eksplisit terpakai pada laluan itu, dan 50 kekal sebagai lalai untuk setiap laluan lain dalam profil yang meninggalkan nombor. Membaca baris dari kiri ke kanan sudah cukup untuk memberitahu nilai mana terpakai di mana.
route-metric ialah lalai, bukan pangkat
route-metric menetapkan nilai sandaran untuk laluan yang tidak membawa nombor sendiri. Ia tidak menolak laluan melebihi apa-apa yang lain, dan ia tidak menyusun semula laluan yang dipasang dengan metrik eksplisit.
Perbezaan itu penting apabila profil mencampurkan kedua-dua bentuk. Satu baris route-metric di bahagian atas kelihatan berwibawa dan mudah dipersalahkan, manakala laluan yang sebenarnya membawa trafik mungkin membawa metriknya sendiri tiga baris di bawah.
Jika anda mahu satu laluan mengutamakan satu jalan, letakkan nombor pada laluan itu. Jika anda mahu lalai yang konsisten merentasi profil yang dijana, gunakan route-metric dan biarkan baris individu. Mencampurkan kedua-duanya tanpa sebab ialah cara profil berakhir dengan laluan yang tiada siapa dapat jelaskan.
Periksa apa yang dipasang klien
Selepas sambungan semula selesai, tanya kernel dan bukan profil.
ip route show menyenaraikan laluan yang ditambah klien, dan ip route get 172.20.5.10 menjawab soalan yang lebih berguna: laluan mana yang destinasi ini sebenarnya akan gunakan, dengan alamat sumber yang mana. Jika destinasi tiada dalam jadual, klien tidak memasangnya.
Arahan setempat, tolakan pelayan atau pengurus rangkaian lain boleh menambah atau membuang awalan yang sama, dan penulis terakhir menang. Kekalkan laluan titik akhir dalam pandangan semasa anda bekerja, kerana sambungan memerlukan jalan ke pelayan jauh yang tidak melalui terowong yang sedang ia bina.
Mengapa metrik yang lebih kecil masih kalah
Metrik membandingkan laluan ke destinasi yang sama. Ia tidak menjadikan awalan luas lebih khusus. Apabila redirect-gateway def1 digunakan, klien memasang 0.0.0.0/1 dan 128.0.0.0/1, dan kedua-dua awalan itu meliputi seluruh ruang IPv4 dengan lebih khusus daripada 0.0.0.0/0. Metrik 1 pada laluan lalai tidak mengatasinya.
Logik yang sama terpakai pada mana-mana pasangan yang bertindih. /24 mengalahkan /16 untuk alamat di dalamnya tanpa mengira nombor yang dilampirkan, kerana carian memilih padanan paling khusus dahulu dan hanya kemudian membandingkan metrik antara yang setara.
Inilah bahagian yang kelihatan seperti pepijat metrik tetapi bukan. Periksa panjang awalan pada kedua-dua calon sebelum anda menukar sebarang nombor.
Peraturan dasar berjalan sebelum jadual
Pada Linux, ip rule menentukan jadual penghalaan mana yang dirujuk. Peraturan dinilai mengikut urutan keutamaan, jadi jadual yang lebih awal boleh memulangkan laluan sebelum jadual utama dibaca. Metrik dalam utama tidak boleh mengatasi padanan dalam jadual yang dirujuk dahulu.
Gunakan ip rule show dan kemudian tanya jadual tertentu, contohnya ip route show table 100, untuk melihat apa yang akan dipulangkan peraturan itu. Jika klien VPN atau runtime kontena menambah peraturan, jawapannya mungkin di sana dan bukan dalam jadual yang anda baca. Alamat sumber juga penting, kerana peraturan boleh memadankan sumber dan menyelesaikan destinasi yang sama secara berbeza untuk trafik terowong dan trafik LAN.
Sahkan destinasi, bukan kedudukan
Ujian yang menamatkan perdebatan ialah satu pertanyaan kepada hos dalam subnet yang dimaksudkan, serta semakan alamat sumber yang dipilih kernel. Jika pasangan itu sepadan dengan reka bentuk, metrik sedang menjalankan tugasnya walaupun senarai tidak kelihatan seperti kedudukan yang kemas.
Tinggalkan IPv6 dan DNS di luar semakan ini. Kedua-duanya dikonfigurasikan oleh arahan berbeza dan diselesaikan oleh mekanisme berbeza, dan laluan IPv4 yang berfungsi tidak mengatakan apa-apa tentang keduanya. Tukar satu lapisan pada satu masa dan jalankan semula pertanyaan itu.