Je maakt verbinding, draait een routelijst en ziet een subnet waar je nog nooit van hebt gehoord naar de tunnel wijzen. Die regel zegt één ding precies en verschillende dingen helemaal niet. Hij legt vast hoe deze machine pakketten naar dat prefix doorstuurt, niets over welke hosts daar bestaan, en niets over wat je account kan bereiken. Hem goed lezen kost een minuut; hem als inventaris lezen kost veel langer om af te leren.

Lees de tabel als lokale instructies

Een route is een doorstuurinstructie van de lokale kernel: voor dit prefix deze interface en deze volgende hop gebruiken. De prefixlengte bepaalt hoe specifiek de instructie is, en de langste overeenkomst wint. Niets in die regel noemt rechten, dienstgezondheid of externe topologie.

Beleidsregels kunnen ingrijpen voordat de tabel wordt geraadpleegd, waardoor een route kan bestaan en toch niet degene zijn die een bepaald pakket gebruikt. Lees de regels naast de tabel en vraag de kernel dan welk pad hij voor een specifieke bestemming zou kiezen. Het antwoord voor één adres is meer waard dan een pagina vol prefixen, en het is het enige antwoord dat de markeringen, naamruimten en interfacebindingen weerspiegelt die de client heeft toegepast.

Een breed prefix is geen catalogus

Een /16 die door de tunnel wordt gerouteerd betekent niet zestienduizend bereikbare hosts, en een standaardroute betekent nog minder. De server beslist wie antwoordt, de firewall beslist wat is toegestaan, en het account beslist wat is geautoriseerd.

Een smalle tabel heeft de omgekeerde valkuil: een ontbrekend prefix kan betekenen dat de bestemming via een ander pad bereikbaar is, of simpelweg dat hij helemaal niet wordt gerouteerd. Die twee gevallen zien er identiek uit tot je ze test. Vergelijk de tabel met de resource die je werd gezegd te gebruiken, niet met je verwachtingen van wat een VPN zou moeten bevatten.

Waar de vermeldingen vandaan komen

Routes komen van minstens vier plaatsen: het configuratiebestand, de server die tijdens het opzetten van de verbinding een route pusht, een netwerkbeheerder die de interface bezit, en iemand die tijdens een incident een commando typt. Elk heeft een andere levensduur en een andere eigenaar.

Degene die tijdens een storing is getypt, is degene die bij herstart verdwijnt en in niemands documentatie voorkomt. Een door de server gepushte route verandert wanneer de server verandert, waardoor een onverklaard nieuw prefix vaak na een gateway-update opduikt en niet na een clientwijziging. De ip-route-handleiding documenteert de syntaxis van de tabel en velden als je de vlaggen moet lezen.

Controleer de route tegen het servicecontract

De nuttige vergelijking is die tussen de tabel en de dienst die je is beloofd: naam, adresbereik, poort en eigenaar. Schrijf die vier naast het prefix en de gaten worden zichtbaar.

ip route show table all dev tun0
ip route get 10.20.5.9
ip rule show

Als het prefix aanwezig is en de dienst toch faalt, heeft de tabel zijn werk gedaan en zit het probleem elders: naamresolutie, een firewall aan de andere kant of een account zonder de juiste groep. Als het prefix ontbreekt, is de vraag wie het had moeten leveren, niet wat je moet typen. Elk van de twee antwoorden noemt een team om als volgende te vragen, en dat is de enige nuttige uitvoer van het lezen van een routetabel. Schrijf die naam op voordat je de terminal sluit.

Leg het voor en na van elke wijziging vast, met de datum en de interface. Een routetabel is een momentopname van één moment op één machine, en hij wordt pas bewijs wanneer iemand heeft opgeschreven wanneer hij is genomen.

Gerelateerde artikelen