Клиентот вели дека е поврзан, катанецот е затворен, а страницата сѐ уште ја запишува адресата на вашиот стан. Ништо не откажа. Тунелот не го заменува вашиот Wi-Fi или мобилната врска; тој става втор плик околу одредени пакети и го испраќа тој плик преку мрежата што веќе ја имавте. Разбирањето на трикот главно е прашање на следење на едно барање и забележување каде пликото се отвора, бидејќи речиси секој збунувачки симптом, од истекување на домашната адреса до заглавено големо преземање, доаѓа од таа граница.

Два плика, една физичка врска

Вашиот преносен сметач ја задржува нормалната врска со рутерот, а рутерот ја задржува нормалната врска со давателот. Ништо на тој пат не се менува кога се крева тунел. Она што се менува е дека избраните пакети се предаваат на виртуелен интерфејс, се завиткуваат во нов пакет адресиран до VPN партнерот и се испраќаат како обичен сообраќај преку физичката врска.

Приемниот крај е уред што го отвора пликото и го препраќа оригиналниот пакет кон неговата дестинација. Помеѓу двата краја, набљудувачот го гледа надворешниот заглавие и ништо за внатрешниот, освен ако протоколот не го шифрира, што го прават повеќето потрошувачки протоколи и што општата техника не го бара.

Затоа виртуелниот интерфејс е истовремено реален и измамлив. Тој постои како кернел објект со адреса и максимална единица за пренос, а оперативниот систем насочува сообраќај во него како во секој друг интерфејс. Тоа не е кабел, а неговото постоење докажува само дека е инсталирана компонента. Дали вашиот прелистувач го користи, одлучуваат маршрутите, а не тоа што интерфејсот е кренат.

Гледајте едно барање на патот

Изберете дестинација и прашајте го кернелот кој интерфејс ќе го користи. Оваа единствена команда ги решава повеќето расправии за тоа дали тунелот прави нешто:

ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0

Ако излезот на маршрутата го наведе интерфејсот на тунелот, пакетот ќе биде завиткан. Ако го наведе физичкиот интерфејс, нема да биде, и никакво рестартирање на клиентот тоа не го менува. Втората команда ги прикажува двата интерфејса еден до друг, и така забележувате тунел што се крена без адреса или со адреса од погрешно семејство.

Потоа погледнете го првиот скок од внатрешноста на пликото и споредете го со првиот скок однадвор:

traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5

Внатре во тунелот првиот скок е внатрешната адреса на партнерот, а не вашиот рутер. Снимањето на интерфејсот на тунелот ги прикажува внатрешните пакети, тоа е сообраќајот што апликацијата мисли дека го испраќа. Истовременото снимање на физичкиот интерфејс ги прикажува надворешните пакети, и двете заедно се најјасниот доказ за тоа што тунелот навистина прави.

Три адреси, и страницата гледа само една

Луѓето постојано ги мешаат овие, а конфузијата создава лажни извештаи за истекување. Тоа се различни полиња во различни заглавија со различен животен век.

AddressWhere it appearsWho can see it
Endpoint addressOuter header, the peer you connect toYour access network and the path to it
Inner tunnel addressInside the envelope, on the virtual interfaceThe peer, and anything the peer routes to
Exit addressSource of the packet that reaches the websiteThe website and its upstream

Бројот покрај виртуелниот адаптер е вториот ред. Тоа не е адресата што ја запишува страницата, и да се наведе како вашата јавна IP е едноставно погрешно. Адресата што ја гледа страницата ја доделува излезот, а во тунел кон приватна мрежа може воопшто да нема јавен излез, бидејќи дестинацијата живее внатре во организацијата, а не на интернет.

Тунелот помеѓу локации е истиот механизам со различни крајни точки. Два рутера завиткуваат сообраќај помеѓу мрежи, и ниту еден поединечен уред нема инсталиран клиент. Пликото е идентично во принцип, а административната граница не е.

Каде се отвора пликото и што го преживува

Тунелот завршува кај својот партнер. Ако сопственото шифрирање на апликацијата допира подалеку, тоа ја преживува таа граница, што е нормален случај за HTTPS: сесијата на прелистувачот завршува на страницата, па излезот препраќа шифриран текст што не може да го прочита.

Ништо друго не преживува стандардно. Нешифрирано барање е читливо на излезот точно како што беше читливо на Wi-Fi во кафулето, а тунелот не додава заштита што апликацијата никогаш ја немала. Исто така, правилата на огнениот ѕид и политиката за препраќање на излезот одлучуваат што ќе следи; успешното ракување е факт за врската со партнерот, а не за остатокот од патувањето.

Дополнителниот товар е другата видлива последица. Секој пакет носи дополнително заглавие, а надворешниот транспорт може да го додаде своето, па корисниот товар по пакет се намалува. На пат со фиксна максимална единица за пренос токму затоа тунелот може да пропушти ping и да го запре големото прикачување.

Проверете го патот што апликацијата навистина го помина

Последниот чекор е да се потврди конкретната апликација, а не машината воопшто. Разрешете ја дестинацијата, погледнете ја маршрутата за таа адреса и потоа набљудувајте ја врската додека е отворена:

getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'

Ако маршрутата го наведува тунелот, но списокот на сокети покажува врска со изворна адреса од физичкиот интерфејс, апликацијата е врзана за нешто конкретно, или втор тунел се натпреварува за стандардната маршрута. Тоа е прашање на рутирање, и може да се одговори од овие три излези, а не од екранот за состојба на клиентот.

Безбедносната архитектура RFC 4301 ја опишува верзијата на IP слојот од ова завиткување за IPsec, и истата логика на слоеви важи за WireGuard и OpenVPN. Откако можете да го покажете внатрешниот пакет и надворешниот пакет како одделни објекти, најголемиот дел од однесувањето на тунелот престанува да биде мистериозен и станува табела за рутирање што можете да ја прочитате.

Поврзани статии