Ko politikas maršrutēšana maina VPN trafikā un ko ne
Noteikumi izvēlas, kura tabula tiek skatīta, tāpēc noklusējuma maršruts galvenajā tabulā bieži neko neizskaidro. Pirms noteikuma pievienošanas lasiet prioritātes, atzīmes un avotus kopā.
Politikas maršrutēšana atbild uz citu jautājumu nekā tas, ko uzdod lielākā daļa problēmu novēršanas piezīmju. Galvenā tabula norāda, kurp iet galamērķis; politikas noteikumi norāda, kura tabula vispār tiek skatīta, un tie to var izlemt pēc avota adreses, pakešu atzīmes, vai saskarnes, kurā pakete ieradās. Kad tunelis uzvedas nekonsekventi, noteikumu kopa bieži ir iemesls, bet maršrutēšanas tabula bieži nav.
Noteikumi izvēlas tabulu, tad tabula izvēlas maršrutu
Katram noteikumam ir prioritāte, atbilstības nosacījums un mērķa tabula. Kodols iziet cauri noteikumiem prioritātes secībā un apstājas pie pirmās atbilstības, pēc tam veic parastu garākā prefiksa meklēšanu tajā tabulā. Noteikums, kas norāda uz tukšu tabulu, pārlec uz to, ko izvēlas nākamais noteikums, un tā rūpīgi uzrakstīts noteikums var šķist neko nedarošs.
Tāpēc galvenās tabulas izdruka reti izskaidro strādājošu VPN klientu. Klienti parasti ievieto noteikumus ar zemiem prioritātes numuriem, ilgi pirms galvenās tabulas noklusējuma noteikuma, tāpēc pakete nekad nesasniedz maršrutu, kurā jūs skatījāties. Metrikas pazemināšana galvenajā tabulā neko nemaina jau novirzītam trafikam.
Noteikums var arī apzināti padarīt prefiksu par melno caurumu vai nesasniedzamu. Daži klienti pievieno šādu noteikumu kā drošības slēdzi, un tad nomešana izskatās kā salauzts tunelis, nevis konfigurēts.
Lasiet noteikumu kopu kā secību, nevis kā sarakstu
Izdrukājiet noteikumus ar to prioritātēm un tabulām, uz kurām tie norāda, pēc tam izdrukājiet katru tabulu, kurā ir noklusējuma vai tuneļa maršruts. Secība ir tā daļa, kas ir svarīga, un tā ir daļa, ko ekrānuzņēmums parasti izlaiž:
ip rule show ip route show table all | sed -n '1,60p' ip route get 198.51.100.20 from 10.8.0.2 ip route get 198.51.100.20 from 10.8.0.2 mark 0x1
Pēdējās divas komandas ir tās, kas teoriju pārvērš novērojumā, jo tās jautā ko kodols darītu ar šo avotu un šo atzīmi. Ja atbilde mainās, kad mainās atzīme, darbojas uz atzīmi balstīts noteikums, un jebkurš tests, kas izlaiž atzīmi, pārbauda citu paketi. Ārējais savienojums ir pelnījis savu noteikumu. Tunelim, kas maršrutē visu trafiku caur sevi, ir jāizslēdz gala punkta adrese, ar kuru tas savienojas, citādi šifrētās paketes tiek sūtītas atpakaļ tunelī, kuru tās tikko pameta. Lielākā daļa klientu šo izslēgšanu ievieto automātiski, un ar roku rediģēta noteikumu kopa ir vieta, kur tās trūkst.
Atzīmes un ligzdas: divi veidi, kā klienti sadala trafiku
Daži klienti atzīmē paketes ugunsmūrī un pievieno noteikumu, kas atbilst atzīmei. Citi izmanto maršrutēšanu ligzdas līmenī un ievieto maršrutu ligzdā pirms tā savienojas. Pirmais ir redzams ip rule izvadē; otrais nav, un tas neparādīsies vispārējā meklēšanā.
Ja testa programma uzvedas citādi nekā lietojumprogramma, kuru tai jāpārstāv, pārbaudiet, vai lietojumprogramma ievieto atzīmi vai piesaistās ierīcei. Šī atšķirība nav noslēpums, kad mehānisms ir nosaukts, un tā izskaidro, kāpēc curl no čaulas un pārlūka cilne tajā pašā mašīnā var iet dažādus ceļus. Abas metodes ir politikas maršrutēšana plašā nozīmē: tās izvēlas ceļu ar kaut ko citu nekā galamērķis. Neviena no tām neautorizē trafiku, un neviena neaizstāj ugunsmūra noteikumus vai akreditācijas datus, ko gaida partneris.
Izsekojiet īpašumtiesības pirms vēl viena noteikuma pievienošanas
Noteikumus instalē kaut kas. VPN klients, tīkla pārvaldnieks un ar roku rakstīts skripts katrs var pievienot noteikumus palaišanas laikā, un atkārtotas savienošanas loģika var atstāt iepriekšējo kopu aiz sevis. Divi novecojuši noteikumi no iepriekšējā profila turpinās virzīt trafiku ilgi pēc profila dzēšanas.
Noskaidrojiet, kurš process pieder noteikumu, pēc tā prioritātes un formas, un pārbaudiet, vai šis īpašnieks pārraksta kopu katrā savienojumā. Ja pārraksta, šodien pievienotais manuālais noteikums rīt pazūd, un labojums pieder klienta konfigurācijai, nevis čaulas vēstures failam. Visas noteikumu kopas notīrīšana testēšanai ir vilinošs īsceļš ar paredzamu cenu: tā noņem arī noteikumus, kas klientam vajadzīgi, lai tā paša tunelis darbotos. Dzēsiet vienu noteikumu vienlaikus vai testējiet mašīnā, kuru varat pārstartēt.
Pierādiet tvērumu ar divām plūsmām, nevis vienu
Labojums tiek pārbaudīts tikai ar plūsmu, kurai jābūt ietekmētai, un plūsmu, kurai nevajadzētu būt. Izvēlieties galamērķi, ko politika maršrutē tunelī, un vienu, kam jāpaliek ārpusē, tad salīdziniet meklējumus un uztveres abiem:
ip route get 198.51.100.20 from 192.0.2.44 ip route get 198.51.100.21 from 192.0.2.44 tcpdump -ni any host 198.51.100.21 and port 443
Kad divi meklējumi atgriež dažādas saskarnes, noteikums kaut ko dara. Kad tie atgriež vienu un to pašu saskarni, noteikums atbilst plašāk nekā paredzēts, un tas ir tas defekts, kas klusi sūta visu apakštīklu caur tuneli, kas paredzēts vienai lietojumprogrammai.
Ierakstiet biļetenā noteikumu prioritātes un īpašnieka pakalpojumu kopā ar divām testa adresēm. Tad nākamajai personai ir reproducējams pāris, nevis simptoma apraksts, un tā minūtes laikā var pateikt, vai politikas maršrutēšana joprojām darbojas.