OpenVPN maršruta metrika: kāpēc izvēlētais maršruts joprojām zaudē
Katrai maršrutai piešķirtā metrika un route-metric nosaka dažādas lietas. Izstaigājiet profila rindu, pārbaudiet, ko klients instalēja, un noskaidrojiet, kāpēc mazāks skaitlis joprojām zaudē.
Jūs pievienojāt metrika maršrutam profilā, izveidojāt savienojumu no jauna, bet trafiks joprojām iziet caur nepareizo saskarni. Problēma reti ir skaitlī. Metrika tikai sakārto kandidātus, ko operētājsistēma jau salīdzina, un konkrētāks prefikss vai agrāka politikas tabula izšķir pirms jebkuras metrikas nolasīšanas.
Vispirms izpētiet profilu, pēc tam instalēto tabulu un tad atlases noteikumus. Šī kārtība atbilst tam, kā klients veido maršrutu, un neļauj regulēt vērtību, kas salīdzinājumā nemaz netiek iekļauta.
Lasiet maršruta rindu lauku secībā
Community OpenVPN 2.6 klients IPv4 route rindā pieņem četrus laukus: tīklu, tīkla masku, vārteju un neobligātu metriku. Vārtejas vietā tiek ievietots īpašais vpn_gateway atslēgvārds. Tas nozīmē VPN puses nākamo lēcienu šim savienojumam, nevis maršrutēšanas tabulas numuru un nevis jūsu fizisko maršrutētāju. Ja to nepamanīsit, pārējā rinda tiek lasīta ar nepareizu priekšstatu par tās uzdevumu. network-options atsauce apraksta visus četrus laukus.
Privātam galamērķim rinda var izskatīties šādi:
route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30
Skaidrais 30 attiecas uz šo maršrutu, un 50 paliek noklusējums visiem pārējiem profila maršrutiem, kuros skaitlis izlaists. Rindas lasīšana no kreisās uz labo ir pietiekama, lai noteiktu, kura vērtība kur attiecas.
route-metric ir noklusējums, nevis rangs
route-metric nosaka rezerves vērtību maršrutiem, kuriem nav sava skaitļa. Tas nepaceļ maršrutu virs kaut kā cita un nepārkārto maršrutus, kas instalēti ar skaidrām metrikām.
Šī atšķirība ir svarīga, kad profils sajauc abas formas. Viena route-metric rinda augšpusē izskatās autoritatīva un to ir viegli vainot, bet maršruts, kas patiešām pārvadā trafiku, var nest savu metriku trīs rindas zemāk.
Ja vēlaties, lai viens maršruts dotu priekšroku konkrētam ceļam, ievietojiet skaitli šajā maršrutā. Ja vēlaties konsekventu noklusējumu visā ģenerētajā profilā, izmantojiet route-metric un atstājiet atsevišķās rindas mierā. Abu sajaukšana bez iemesla ir veids, kā profilā paliek maršruts, ko neviens nevar izskaidrot.
Pārbaudiet, ko klients instalēja
Kad atkārtotais savienojums ir pabeigts, jautājiet kodolam, nevis profilam.
ip route show uzskaita maršrutus, ko klients pievienoja, un ip route get 172.20.5.10 atbild uz noderīgāku jautājumu: kuru maršrutu šis galamērķis faktiski izmantotu un ar kādu avota adresi. Ja galamērķa tabulā nav, klients to nav instalējis.
Vietēja direktīva, servera push vai cits tīkla pārvaldnieks var pievienot vai noņemt to pašu prefiksu, un uzvar pēdējais rakstītājs. Darba laikā paturiet redzeslokā galapunkta maršrutu, jo savienojumam vajag ceļu uz attālo serveri, kas neiet caur tuneli, kuru tas būvē.
Kāpēc mazāka metrika joprojām zaudē
Metrikas salīdzina maršrutus uz vienu un to pašu galamērķi. Tās nepadara plašu prefiksu konkrētāku. Kad tiek izmantota redirect-gateway def1, klients instalē 0.0.0.0/1 un 128.0.0.0/1, un šie divi prefiksi konkrētāk pārklāj visu IPv4 telpu nekā 0.0.0.0/0. Metrika 1 noklusējuma maršrutā tās nepārspēj.
Tā pati loģika attiecas uz jebkuru pārklājošos pāri. /24 pārspēj /16 adresei tajā, neatkarīgi no pievienotajiem skaitļiem, jo meklēšana vispirms izvēlas konkrētāko atbilstību un tikai pēc tam salīdzina metrikas starp vienādiem.
Šī ir daļa, kas izskatās pēc metrikas kļūdas, bet nav. Pirms mainīt jebkuru skaitli, pārbaudiet prefiksa garumu abiem kandidātiem.
Politikas noteikumi darbojas pirms tabulas
Linux vidē ip rule izlemj, kura maršrutēšanas tabula tiek apskatīta. Noteikumi tiek vērtēti prioritātes secībā, tāpēc agrāka tabula var atgriezt maršrutu, pirms galvenā tabula nemaz nav nolasīta. Metrika galvenajā tabulā nevar pārspēt atbilstību tabulā, kas tika apskatīta pirmā.
Izmantojiet ip rule show un pēc tam vaicājiet konkrēto tabulu, piemēram, ip route show table 100, lai redzētu, ko šis noteikums atgrieztu. Ja VPN klients vai konteineru izpildlaiks pievienoja noteikumu, atbilde var būt tur, nevis tabulā, ko esat lasījis. Avota adrese arī ir svarīga, jo noteikums var atbilst avotam un atrisināt to pašu galamērķi atšķirīgi tuneļa un LAN trafikam.
Pārbaudiet galamērķi, nevis reitingu
Tests, kas izbeidz strīdu, ir viens vaicājums uz saimnieku paredzētajā apakštīklā, kā arī kodola izvēlētās avota adreses pārbaude. Ja šis pāris atbilst projektam, metrika dara savu darbu arī tad, ja saraksts neizskatās pēc kārtīga reitinga.
Atstājiet IPv6 un DNS ārpus šīs pārbaudes. Tos konfigurē citas direktīvas un atrisina citi mehānismi, un strādājošs IPv4 maršruts par tiem neko nepasaka. Mainiet vienu slāni vienlaikus un atkārtojiet vaicājumu.