Redirecționările ICMP față de rutele VPN: ce se schimbă de fapt
O redirecționare este o sugestie a routerului, nu o schimbare de rută. Dacă gazda o respectă depinde de politica pe interfață, care diferă între IPv4 și IPv6.
Un flux care ar trebui să treacă prin tunel alege un alt următor salt, iar cineva găsește o redirecționare ICMP într-o captură. Aceasta este o ipoteză, nu un diagnostic. O redirecționare este o sugestie a routerului despre un următor salt mai bun, iar dacă gazda acționează conform ei depinde de setări care diferă în funcție de platformă, de interfață și de familia de adrese.
O redirecționare este o sugestie de la router
Redirecționările ICMP IPv4 au un tip de mesaj propriu și un set îngust de condiții: routerul trimite un pachet pe interfața pe care a sosit, și cunoaște pe același segment un următor salt mai aproape de destinație. Apoi îi spune expeditorului să folosească acel salt direct. Mesajul numește noua poartă și include o parte din pachetul original, astfel încât expeditorul să îl poată asocia unui flux. Este un mesaj de curtoazie despre topologia locală și presupune că expeditorul împarte segmentul cu poarta sugerată.
Expeditorul este liber să îl ignore. Protocolul nu obligă o gazdă să își schimbe tabela, iar o redirecționare capturată dovedește doar că un router a trimis una.
Tocmai la această distincție greșesc majoritatea investigațiilor de redirecționare.
IPv4 și IPv6 o livrează diferit
IPv6 are un mecanism analog în descoperirea vecinilor și nu în ICMPv4, cu formate de mesaj și reguli de validare diferite. Conceptele rimează, pachetele nu. Un filtru de captură scris pentru tipul ICMP 5 nu arată nimic într-o rețea IPv6, ceea ce uneori este citit ca dovadă că nicio redirecționare nu a avut loc.
Parametrii de politică sunt și ei separați, așa că o gazdă poate accepta redirecționări IPv4 și le poate ignora pe cele IPv6, sau invers.
Verificați ambele familii dacă fluxul respectiv poate folosi oricare dintre ele.
Acceptarea este politică a gazdei, nu un fapt al rețelei
În Linux, acceptarea redirecționărilor este controlată pe interfață și global, iar valorile implicite diferă între rolul de gazdă și cel de router. O interfață de tunel care acceptă redirecționări este un proiect ciudat, pentru că într-un tunel punct la punct nu există un următor salt alternativ semnificativ pe același segment. De aceea merita citită această setare, nu presupusă.
Setările de redirecționare sigură restricționează suplimentar care porți pot fi crezute.
Dacă securizați o gazdă, aceștia sunt parametrii de revizuit, și tot ei sunt motivul pentru care două mașini din aceeași rețea se pot comporta diferit. Schimbați-i ca politică, nu ca scurtătură de depanare.
Ce nu poate explica o redirecționare
Rutele specifice, regulile de rutare bazate pe politică și interfețele locale explică majoritatea căilor neașteptate fără nicio redirecționare. Un prefix mai specific, o regulă care corespunde adresei sursă sau o a doua rută implicită într-un alt tabel fiecare dintre ele suprascrie ruta pe care o așteptați. Verificați-le mai întâi, pentru că sunt deterministe și vizibile.
O captură veche este cealaltă capcană, pentru că un client care a schimbat rețeaua are o altă poartă locală.
O redirecționare veche din conexiunea anterioară nu explică nimic despre calea actuală, așa că notați ce interfață primește acum traficul de control.
Verificați ruta înainte de a da vina pe tunel
Întrebați nucleul ce rută ar folosi pentru destinație, apoi comparați-o cu tabela pe care o aveați în minte. Dacă răspunsul corespunde tabelei, nicio redirecționare nu a schimbat nimic și investigația aparține altundeva. Dacă nu corespunde, căutați o redirecționare din cache, o regulă de politică sau un al doilea tabel înainte de a presupune că tunelul este vinovat. Interogarea rutei este adevărul de bază, iar restul este o poveste despre cum s-a ajuns acolo.
O redirecționare nu ar trebui să fie niciodată motivul pentru care o cale protejată devine în tăcere una neprotejată, de aceea politica de acceptare aparține revizuirii de proiectare. Definiția din RFC 792 rămâne referința pentru ce poate spune mesajul IPv4.
Scrieți împreună rezultatul interogării rutei și momentul capturii, iar următoarea persoană va putea reproduce concluzia.