Клијент каже повезано, катанац је закључан, а сајт и даље бележи адресу вашег стана. Ништа није отказало. Тунел не замењује ваш 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. Када можете да покажете на унутрашњи пакет и спољни пакет као на одвојене објекте, већина понашања тунела престаје да буде загонетна и постаје табела рутирања коју можете да прочитате.

Повезани чланци