Miért mutat egy IP-t az iPhone-alkalmazásod, miközben a kiszolgáló egy másikat naplóz
Az interfészcíme, a socket végpontja és a kiszolgáló által naplózott forrás különböző kérdésekre válaszol. A VPN kontextust ad; nem tesz belőlük egyetlen számot.
Olyan támogatási jegyek érkeznek, amelyek szerint az alkalmazás egy címet mutat, miközben a kiszolgáló egy másikat naplózott, majd megkérdezik, melyik hazudik. Egyik sem; ez két megfigyelés két különböző dologról. Egy interfészhez kötött cím, egy sockethez kötött cím és egy távoli szolgáltatás által látott forráscím három külön kérdésre válaszol. A VPN hálózati kontextust ad a telefonnak, és nem olvasztja egyetlen eszközszintű számmá ezt a hármat. A címek olvasása előtt olvassa el a jegy mezőneveit.
Mit ír le a jegy általában
Képzeljen el egy telefont Wi-Fi-n, felépített alagúttal. A Wi-Fi interfész egy LAN-címet tart, az alagút interfész egy kiosztott belső címet tart, és az alagúton kilépő kérés egy nyilvános szolgáltatáshoz érkezik arról a forrásról, amely túlél bármilyen útközbeni fordítást. Az alkalmazás, amely a belső címet nyomtatja, és a kiszolgáló, amely a lefordított forrást naplózza, mindkettő pontosan jelent, és ez a két érték soha nem fog egyezni.
A három megfigyelés abban különbözik, mit tud bizonyítani, nem csak abban, mit ír le.
| Observation | What it describes | What it cannot prove |
|---|---|---|
| An address on a local interface | One configured attachment: Wi-Fi, cellular or a tunnel | The source a remote site receives |
| A socket's local endpoint | The binding used by that one connection | The address after translation further along |
| The peer address at a service | What arrived at that observation point | Any other interface on the phone |
Tartsa azt a táblázatot annak a kódnak a közelében, amely ezeket az értékeket jegybe tölti, mert az itteni zavar nagy része oszlopkeveredés, nem hálózati hiba.
Mire tud és mire nem tud válaszolni egy socket-hívás
API-szinten a getsockname a helyi végpontot jelenti, amely éppen egy adott sockethez van kötve. Csatlakozott socketnél ez az a forrás, amelyet a kernel ehhez a kapcsolathoz választott, ami már konkrétabb minden interfészlistánál. Ez nem nyilvános címkeresés, és egy nem kötött socketen hívni szinte semmit nem mond. Amit visszaad, az később még átírható az útvonalon, ezért csak a szolgáltatás saját megfigyelése mérvadó arról, mit kapott a szolgáltatás.
Apple platformokon az interfészek oldalának külön felülete van: az alagút beállításai felsorolják az alagút interfészének kiosztott címeket. Ezek olvasása megmondja, hogyan konfigurálták az alagutat, és nem mondja meg, melyik útvonalat járta egy adott kérés, mert az útválasztás és az alkalmazásonkénti szabályok döntenek erről minden kapcsolatnál.
Az osztott alagút láthatóvá teszi a különbséget. Az egyik kérés kiléphet az alagúton, míg a következő, más célra vagy más címcsaládra irányuló, nem, így ugyanazon alkalmazás két eredménye másodpercek különbséggel is lehet őszinte és eltérő.
Válassza azt a megfigyelést, amelyik illik a kérdéshez
Válasszon szándékosan, ahelyett hogy mindent mérne. Arra, amit a backend lát, naplózza a forrást a backendnél, és ahol reverse proxy áll elöl, a kliens címét abból a továbbító fejlécből olvassa, amelyet az üzembe helyezés valóban beállít, és ne abból, amit a kliens küldött.
Hogy az alagút konfigurálva van-e, azt az interfészből olvassa ki. Hogy ennek az alkalmazásnak a forgalma használta-e, azt úgy tudja meg, hogy forgalmat küld erről az alkalmazásról egy általa vezérelt célra, és összehasonlítja a forrást mindkét végén.
Az alkalmazásonkénti szabályok saját mondatot érdemelnek. A böngésző eredménye arról a böngészőről szóló bizonyíték, és egy kezelt, alkalmazásonkénti alagút két alkalmazást ugyanazon a telefonon különböző útvonalakra tehet ugyanabban a pillanatban. A lefedettség ellenőrzése azt jelenti, hogy a szóban forgó alkalmazásról küld forgalmat, a szóban forgó címcsaládban.
Az interfésznevek nem detektorok
Interface-nevet se használjon VPN-ellenőrzésként. A nevek nem nyilvános szerződések, és egy telefonon több csatlakozás is lehet, miközben csak az egyik viszi a kérését.
A mezőt arról a megfigyelésről nevezze el, amelyet tart. A local_interface_address, socket_local_endpoint és service_observed_source esetlenek és egyértelműek, és az egyértelműség az, amit akkor akar, amikor az érték egy héttel később támogatási jegybe kerül. Egyetlen device IP nevű oszlop gyűjti mindhármat, és utána úgy bíznak benne, mintha egy lenne.
Tartsa az identitást a címoszlopon kívül
A megosztott VPN-kijárat nem felhasználói identitás, és a magáncím nem hozzáférési hitelesítő adat. Mindkettő utat ír le, nem személyt, és bármelyiket hitelesítésként kezelni forgalomirányítási balesetet tesz engedélyezési döntéssé.
Amikor valaki azt kérdezi, milyen címe van a telefonnak, a hasznos válasz egy kérdés arról, melyik kapcsolat és melyik megfigyelő. A getsockname definíciója érdemes idézni a középső esetre, mert eldönti a socket kérdését anélkül, hogy úgy tenne, mintha a másik kettőt eldöntené.
Utána írja le, hogy a három közül melyiket kell valóban megjelenítenie a termékének, és törölje a másik kettőt a felületről.