Šifravimas prasideda ties riba, o ta riba yra maršrutizavimo sprendimas, kurį galinis taškas priima prieš įpakavus bet kurį paketą. Tinklas, kuris niekada nemato jūsų raktų, vis tiek gali duoti jūsų mašinai maršrutą, kurį jis laiko geresniu už paties tunelio maršrutą. Čia painiojamos dvi nesėkmės: jau tunelio viduje esančio paketo skaitymas ir paketo, kuris ten niekada nebuvo įdėtas, nukreipimas.

Skirtumas svarbus, nes antrąją nesėkmę pigiau surengti ir daug lengviau pražiūrėti. Ji pasireiškia kaip užklausa, išėjusi per netinkamą sąsają, kol klientas vis dar pranešė apie sveiką ryšį.

Du būdai, kaip tinklas gali jus paveikti

Į tunelį patekęs paketas turi savo turinį paslėptą nuo kiekvieno šuolio, kurį kerta, ir ta apsauga galioja net tada, kai kelias jus nustebina. Paketas, kuris niekada nepatenka į tunelį, yra įprasta užklausa iš jūsų adreso, išsiųsta ten, kur rodė maršrutų lentelė. Pirmajai nesėkmei reikia sulaužyto šifro arba pažeisto partnerio, o antrajai – tik konfigūracijos pranešimo, kuriuo jūsų mašina nusprendė pasitikėti. Ši asimetrija yra priežastis, kodėl maršrutizavimo pusė nusipelno atskiros patikros.

Kelyje esanti įranga neprivalo turėti jūsų raktų, kad paveiktų antrąjį atvejį. Jai reikia tik, kad jūsų galinis taškas priimtų maršrutą, sprendėją arba politikos taisyklę, kuri tokį sukuria.

expected:  app -> tunnel device -> encapsulation -> internet
observed:  app -> wlan0        -> plaintext     -> internet

Iš kur maršrutas gali atsirasti dar neegzistuojant tuneliui

DHCP dalija daugiau nei adreso nuomą. Beklasės statinio maršruto parinktis gali nešti paskirties prefiksus ir kitus šuolius, o RFC 3442 aptaria neteisingo maršrutizatoriaus adreso saugumo pasekmes: nukreiptą srautą, paslaugos atsisakymą arba kelyje įsitaisiusį stebėtoją. Klientas, kuris priima tuos maršrutus prieš pakeliant tunelį, gali likti su pageidaujamu keliu, neturinčiu nieko bendra su jūsų teikėju.

Nė vienas iš to nepadaro maršrutų įterpimo visuotiniu. Klientas turi priimti parinktį, prefiksas turi apimti srautą, kuris jums rūpi, pasirinktas kitas šuolis turi būti pasiekiamas, o vykdymo politika turi leisti paketui išeiti tuo keliu. Pašalinkite bet kurį iš jų ir ta pati reakcija tampa nekenksminga. Todėl ir dvi mašinos tame pačiame tinkle gali elgtis skirtingai, nes jos nevykdo to paties kliento, tos pačios politikos ar net tos pačios adresų šeimos.

IPv6 nusipelno atskiro praėjimo, nes maršrutizatoriaus skelbimai numatytąjį maršrutą neša kitu kodu nei DHCPv4 parinktis. Testas, kuris tikrina tik v4 lentelę, to neapėmė.

Patikrinkite kelią, kurį branduolys iš tikrųjų pasirenka

Maršruto užklausos turi atsakymą, tad klauskite jų, o ne spręskite iš būsenos lemputės. Toliau pateiktos komandos rodo pasirinktą maršrutą ir šaltinį vienai paskirčiai, taip pat taisykles, galinčias viršyti pagrindinę lentelę. Vykdykite jas prisijungę ir dar kartą po prisijungimo iš naujo, nes nuomos atnaujinimas gali pakeisti atsakymą.

ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com

Išvestyje ieškokite dviejų dalykų: maršrute nurodytos sąsajos ir pasirinkto šaltinio adreso. Tunelio maršrutas nurodo tunelio įrenginį, nutekėjęs maršrutas – fizinį, o skirtumas matomas nieko neiššifravus. Jei atsakymas keičiasi tarp vykdymų, išsaugokite abi išvestis ir palyginkite jas sukūrusias taisykles.

Nesustokite ties numatytuoju maršrutu. Programos išimtis, padalyto tunelio prefiksas arba antra politikos taisyklė gali nunešti konkrečią paskirties vietą aplink tunelį, kol numatytasis vis dar rodo į vidų.

Nuspręskite, kur turi gyventi vykdymas

Trys sąlygos nusprendžia, ar vykdymo kliento pusėje pakanka, ar reikia kažko už jo ribų. Jei klientas įdiegia ir gina maršrutus kiekvienai jūsų naudojamai adresų šeimai, tunelio, valdančio numatytąjį maršrutą, paprastai pakanka. Jei mašina turi pasiekti vietinius išteklius, kol visa kita lieka tune lyje, tos išimtys turi būti išvardytos ir valdomos, o ne paliktos tam, ką paskelbė prieigos tinklas. O jei platforma gali pririšti srautą prie sąsajos kiekvienai programai, tas pririšimas yra stipresnė garantija nei maršrutas, kurį bet kas gali viršyti.

Kad ir ką pasirinktumėte, užrašykite sprendimą ten, kur gyvena konfigūracija. Taisyklė, kuri egzistuoja todėl, kad kažkas ją įvedė per incidentą, neišgyvens kito perkrovimo, tad laikykite vietines ir paleidimo išimtis siauras ir užrašykite, kodėl kiekviena jų egzistuoja.

Po kiekvieno kliento naujinimo ir kiekvieno tinklo pakeitimo vėl vykdykite paieškos komandas ir palyginkite su paskutine įrašyta išvestimi. Maršrutų lentelė yra vykdymo riba, tad traktuokite ją taip.

Susiję straipsniai