Wat een byteteller in een Mac-VPN wel en niet bewijst
Een stijgend totaal verzonden bytes is activiteit op één observatiepunt, geen bewijs van aflevering. Neem een delta op de juiste interface en koppel die aan het resultaat van de app.
Open het statusvenster van de client en de cijfers zien er geruststellend uit: bytes lopen op, de tunnel is verbonden. Sluit het venster en de kantoorapplicatie faalt nog steeds, wat betekent dat de tellers een vraag beantwoordden die niemand stelde. Bytes tellen op een interface meet verkeer op dat observatiepunt en niets meer. Ga van het getal dat je bekijkt naar de laag waarover het rapporteert, en dan naar het resultaat dat de applicatie je werkelijk gaf.
Kies eerst de interface, dan het getal
Begin waar het getal wordt getoond en lees het label ernaast. Een clientvenster kan sessietotalen tonen, een tunnelinterface kan binnen-IP-bytes tonen, en een fysieke adapter kan versleutelde buitenbytes tonen; drie verschillende tellers die toevallig in bytes zijn uitgedrukt. Op de opdrachtregel drukt netstat -ibn één regel per adres op elke interface af, dus een tunnel kan meerdere keren verschijnen. Koppel de regel aan de interface die de client werkelijk bezit, en bevestig die met de route die de bestemming kiest. Een apparaat met de naam utun kan bij de VPN horen, bij een andere tunnel, of bij niets waar je je druk om maakt.
Vervang het niet door een Wi-Fi-teller omdat die makkelijker te lezen is. Een ander observatiepunt beantwoordt een andere vraag.
Neem een delta, geen totaal sinds het opstarten
Lees de regel, doe één klein geautoriseerd verzoek en lees dan dezelfde regel opnieuw. Het verschil is het bewijs, want een totaal sinds het opstarten omvat alles wat de machine heeft gedaan. Houd het interval kort zodat achtergrondverkeer minder kans heeft het te vervuilen. Op een drukke machine kan nettop doorvoer aan een proces toeschrijven, wat het veld vernauwt voordat je terugkeert naar interfacetellers.
Accepteer dat het verschil niet schoon is. Mail, updates en de eigen keepalives van de client dragen allemaal bij, dus behandel het getal als een bovengrens en niet als een meting. Als de applicatie het enige was dat je in het interval deed, is de grens meestal strak genoeg om nuttig te zijn.
Binnen- en buitentellers meten verschillende dingen
De fysieke adapter telt versleutelde pakketten inclusief hun buitenste headers, terwijl de tunnelinterface de payload verantwoordt die hij ontvangt of overdraagt. Beide bij elkaar optellen telt één overdracht dubbel. Overhead, hertransmissies en inkapseling maken een simpele gelijkheid ook onmogelijk.
Twee tellers die in tegengestelde richtingen bewegen zijn een bevinding, geen tegenspraak. Het betekent meestal dat verkeer één laag binnenkwam en de andere nooit verliet.
Koppel de teller aan het resultaat van de app
Een ontvangen totaal kan stijgen door protocolgepraat terwijl de dienst die je wilde nog steeds faalt. Een stijging in verzenden zegt nog minder: het bewijst dat de kernel een pakket accepteerde, niet dat iets antwoordde.
Noteer de precieze uitkomst naast de tellers: naamresolutie mislukte, de verbinding liep af, TLS werd geweigerd, of er kwam een HTTP-antwoord binnen. Dat zijn vier verschillende fouten, en slechts één ervan gaat over de tunnel. Als het bewijs verder moet, is het volgende observatiepunt de gateway of de dienstgrens, waar iemand kan zien of het verzoek aankwam. De netwerkvoorkeuren van de Mac resetten vernietigt de toestand die je mat en vertelt je niets.
Schrijf de notitie die de volgende persoon nodig heeft
Interfacenaam, tellerlabel, interval, waarden voor en na, en het resultaat van de applicatie. Dat is genoeg voor een collega om de observatie te reproduceren zonder jouw middag te herhalen. Voeg de clientversie en de macOS-versie toe, want de semantiek van tellers kan tussen releases veranderen.
Sla de volledige packet capture en de system dump over. Ze zijn zelden nodig om uit te leggen welke lokale teller tijdens één verzoek bewoog, en ze vertragen iedereen die het rapport leest. Als de client zijn eigen statistieken toont, citeer het label woordelijk in plaats van het naar het jouwe te vertalen. Het doel van de notitie is vastleggen wat er is gemeten, niet discussiëren over wat het betekent.