Å gjøre den bærbare PC-en til en ruter er en populær måte å løse det gale problemet på. Videresending finnes for at en maskin skal kunne sende videre pakker hvis destinasjon ikke er maskinen selv, og den har ingen mening om hvor raskt en nettleser på samme maskin laster en side. De to veiene ligner bare fordi begge sender trafikk gjennom én tunnel. Skill dem én gang, og en stor del av rådene om å slå på videresending eller åpne brannmuren viser seg å beskrive en topologi du ikke har.

To pakkeveier som ser identiske ut fra skrivebordet

Nettleseren på den bærbare PC-en lager sin egen forespørsel. Verten velger tunnelruten, klientprosessen pakker inn pakken og sender den til motparten, og svaret kommer tilbake til programmet. Ingenting i den sekvensen krysser en videresendingsbeslutning, fordi denne maskinen både er kilden og destinasjonen for samtalen.

Sett nå en annen enhet på et bevisst konfigurert Ethernet-segment og gjør den bærbare PC-en til dens standardgateway. Den enheten starter forespørselen, den bærbare PC-en mottar en pakke adressert et annet sted, og kjernen må avgjøre om den skal sendes videre. Det er videresendingsrollen, og den kommer med forutsetninger som klientrollen aldri trengte: en tillatt transitvei, ruter på begge sider og en returvei som fortsatt virker hvis oversettelse er en del av designet.

RoleWho originates the trafficWhat has to be true
Client onlyThe laptop itselfTunnel route, working resolver, supported profile
GatewayAnother deviceForwarding enabled, permitted transit, routes both ways, return-path decision

Hva ip_forward faktisk endrer

Kjernens IPv4 sysctl-dokumentasjon beskriver ip_forward som bryteren som lar en vert videresende pakker mellom grensesnitt. Det er ikke en snarvei for trafikk verten selv har generert, og ingen lesning av den parameteren gjør en lokal nettleser raskere. Om noe legger videresending til tilstand og policy på en maskin som før gjorde mindre arbeid.

Den samme dokumentasjonen advarer om at endring av verdien tilbakestiller andre IPv4-parametere til verts- eller ruterstandardene. Det gjør bryteren til en konfigurasjonshendelse snarere enn en prøve: finjusterte innstillinger kan rulle tilbake under deg, og endringen kan være ansvarlig for en regresjon som ingen ville tenke på å tilskrive den. Det betyr også at bryteren bør settes én gang, bevisst, av den som eier gateway-rollen. Å vippe den under en undersøkelse av treghet er det ene tilfellet der bivirkningen garantert forveksles med symptomet.

Tre brannmurspørsmål som ikke er det samme spørsmålet

Å tillate en VPN-lytter, å tillate tjenestene den bærbare PC-en kjører, og å tillate trafikk å passere gjennom den bærbare PC-en er tre separate tillatelser. Den første lar en motpart nå en daemon, den andre eksponerer noe lokalt, og den tredje gjør maskinen til transitt for noen andre. Hver har en annen rekkevidde, og den siste er langt bredere enn svarene en vanlig utgående applikasjon trenger.

Når en bestemt strøm er blokkert, navngi kilden, destinasjonen, retningen og policyeieren før du redigerer en regel. En smal regel for den strømmen er en rettelse; å akseptere alt på tunnelgrensesnittet er en policyendring som tilfeldigvis inkluderer rettelsen. En nettleser som virker etterpå beviser at strømmen virker, ikke at den brede regelen var nødvendig.

Mål først når veien er riktig

Mål med samme destinasjon, samme arbeidsbelastning og sammenlignbare forhold, og endre én variabel om gangen. En test som samler en videresendingsendring, en utvidelse av brannmuren og en kopiert chifferinnstilling gir et tall og ingen forklaring, fordi ingenting i den forteller hvilken av de tre som flyttet resultatet.

Hold rute- og resolverfeil helt utenfor ytelsessamtalen. Et navn som løses sakte er ikke et gjennomstrømningsproblem, og en overføring som stopper ved én fast størrelse er vanligvis et MTU-spørsmål og ikke en hastighetsgrense. Skriv ned hvilken av de tre du faktisk observerte før du sammenligner noen tall. Ellers arver neste leser en måling som måler det gale og en endring ingen kan rettferdiggjøre.

Beskriv topologien du har, ikke etiketten på klienten

En bærbar PC som deler tilkoblingen sin, er vert for et rutet containernettverk eller bærer trafikk for en virtuell maskin, er en gateway, uansett hva programvaren kaller seg selv. Ordet klient beskriver hvordan tunnelen er konfigurert, ikke om pakker sendes videre til noen andre.

Gjør rollen eksplisitt i driftsprosedyren: hva som skaper trafikk, hva som må passere gjennom maskinen, og hvilken av de to den aktuelle oppgaven handler om. Aktiver gateway-rollen når den hører til den støttede planen, ikke som en uforklart hastighetsjustering brukt på en topologi som aldri trengte en.

Relaterte artikler