Voor de MiroTik liefhebbers maar mogelijk ook voor bezitters van andere routers ... ik had het probleem dat op onregelmatige momenten de PPPoE sessie verbroken raakte. Soms na een paar uur, soms sneller.
Ik heb mij helemaal suf gedebugged en zelfs een hele dag een wireshark er aan gehangen. Gelukkig vond ik daarmee de oplossing.
Wat ik zag was dat de verbinding door KPN verbroken werd, door het sturen van een
PADT (PPPoE Active Discovery Terminate) over het controlekanaal van PPPoE. De router reageert daar heel braaf op door de verbinding te verbreken. Aan de kant van KPN zit er ergens een timeout van een aantal minuten zodat je niet meteen weer de verbinding kunt opbouwen. Al die tijd heb je dus geen internet. Da's ... jammer.
Het viel mij ook op dat KPN vlak voor het verbreken over datzelfde controlekanaal allemaal LCP ping's verstuurde (LCP Echo Request heet dat officieel volgens mij). Dat zijn niet gewoon pings naar je IP adres, want dat gebeurt binnen de PPPoE tunnel, maar ook weer over het overkoepelende kanaal van de PPPoE tunnel. Het viel mij ook op dat dit alleen gebeurde als er een tijdje geen data door de PPPoE tunnel gegaan was. Al met al, dat was een goeie hint wat er aan de hand is.
Wat ik denk dat er gebeurd, is dat als de tunnel stil valt (omdat je niks op internet doet) dat KPN dat beschouwt als een technisch probleem en de lijn reset. Op zich heel attent, want als iets niet werkt dan is een simpele reset vaak de snelste oplossing.
Een wireshark trace van de experiabox liet mij zien dat de box zich inderdaad net iets anders gedraagt. Om te beginnen is er regelmatig contact met een of ander management systeem (bleh) en er is periodiek wat ander netwerk verkeer wat de box zelf genereert.
Een andere trace van mijn vorige simpele routertje die het verbreken probleem ook niet had bracht mij op het idee van de oplossing voor de MikroTik. Deze andere router pingt namelijk de internet gateway van KPN periodiek. Handig, want daardoor valt de PPPoE tunnel dus nooit lang stil.
De MikroTik heeft een ingebouwde feature om periodiek dmv een ping te checken of systemen nog op zijn. Het is een monitoringsfunctie, maar het laat zich prima gebruiken om te zorgen dat er minimaal elke zoveel seconden iets door de PPPoE tunnel gaat.
Onder het Tools menu zit de functie Netwatch. Vul daar een IP adres in en zet de teller op 10 seconden. Ik kies de gateway van KPN waar ik direkt mee verbonden ben om zo min mogelijk verkeer op internet te genereren, maar elk extern IP adres zou in principe moeten werken.
/tool netwatch
add host=x.x.x.x interval=10s
Dat wilde ik nog even delen voor iedereen met hetzelfde probleem na aansluiten van een eigen router.
... ook ik heb soms per ongeluk gelijk.