Чаму краіна ў пазначэнні VPN — не адрас, з якога вы выходзіце
Поле ў спісе, маршрутызаваны адрас і меркаванне праграмы могуць разыходзіцца. Вызначце, што менавіта вы чытаеце, перш чым называць выхад памылкова пазначаным.
Вы выбіраеце краіну, падключаецеся, і сайт вітае вас у іншай краіне. Пазначэнне ў спісе ніколі нічога не абяцала пра адрас, з якога вы выйдзеце: гэта поле, якое нехта апублікаваў, атрыманае метадам, якога вы не бачылі. Стаўленне да гэтага поля як да адраса — менавіта там пачынаецца блытаніна.
Тры асобныя рэчы нясуць значэнне краіны, і яны могуць разыходзіцца без чыёй-небудзь хлусні. Калі іх разрозніць, неадпаведнасць становіцца дыягнаставальнай, а не таямнічай.
Тры розныя рэчы нясуць пазначэнне краіны
Першае — уласнае поле каталога, якое аператар можа паведаміць сам, яно можа быць выведзена з базы адрасоў або проста скапіявана пры стварэнні запісу. Другое — сам адрас, які належыць той сетцы, што яго аб’яўляе, і менавіта на гэта адказвае запыт геалакацыі, выкарыстоўваючы апублікаваныя даныя пра адлюстраванне ў форме, апісанай у RFC 8805. Трэцяе — тое, што праграма вырашае паказаць; гэта можа паходзіць з іншай базы, з налады ўліковага запісу або з дазволу, які вы далі на прыладзе. Толькі другое з’яўляецца сеткавым фактам, і нават яно — запыт, а не назіранне.
Згода паміж гэтымі трыма была б прыемнай і нідзе не патрабуецца. Неадпаведнасць — доказ таго, што іх атрымалі па-рознаму, і нічога больш.
Правярайце адрас, а не сцяг
Карыснае пытанне — з якога публічнага адраса ваш трафік фактычна выходзіць. На яго можна адказаць з боку кліента, і ён не залежыць ні ад якога поля спіса. Параўнайце адказ з прэфіксам, якога вы чакалі, і з тым, што пра яго кажа запыт геалакацыі, трымаючы два вынікі асобна ў сваіх нататках. Разрыў паміж чаканай краінай і запытам — пытанне маршрутызацыі або базы, а разрыў паміж запытам і меркаваннем праграмы — зноў пытанне базы.
Зрабіце праверку двойчы, калі ў сэрвісу некалькі выхадаў у рэгіёне. Пул можа выдаваць розныя адрасы пры паслядоўных падключэннях, і адзін узор апісвае толькі адзін з іх.
Блізкасць на карце — не блізкасць у сетцы
Блізкая краіна можа аказацца даўжэйшым шляхам, чым далёкая, бо аптычны маршрут не ідзе ўздоўж мяжы. Выбіраць вузол па затрымцы — значыць мераць мэту, якая вам важная, а не браць найбліжэйшы сцяг. Тая ж логіка дзейнічае для прапускной здольнасці, бо слаба нагружаны выхад праз дзве краіны можа перасягнуць насычаны суседні. Спачатку вымерайце, потым вырашайце, і запішыце гадзіну, бо абодва лікі змяняюцца.
Месцазнаходжанне таксама нічога не кажа пра захоўванне або пра таго, хто кіруе канцавым пунктам. Для гэтага патрэбныя ўласныя доказы, якіх слупок краіны не можа ўтрымаць.
Пацвердзіце адрас выхаду самі
Спытайце кліент і знешні сэрвіс, як выглядае ваш адрас, затым спытайце лакальную табліцу маршрутызацыі, як быў выбраны гэты шлях. Каманды ніжэй робяць усе тры, і трэцюю людзі часцей за ўсё прапускаюць. Замяніце назву інтэрфейса на сваю тунэльную прыладу.
curl -sS https://api.ipify.org; echo
curl -sS --interface tun0 https://api.ipify.org; echo
ip route get 1.1.1.1
ip -6 addr show dev tun0
Першыя два радкі павінны супадаць, і калі яны не супадаюць, маршрут, які вы нібыта маеце, — не той маршрут, што нясе ваш трафік. Запыт маршруту называе інтэрфейс і адрас крыніцы, якія ядро выкарыстала б для мэты, і гэта механізм, што стаіць за адрасам выхаду. Радок IPv6 важны, бо машына можа трымаць тунэль для аднаго сямейства і прамы шлях для другога. Пазначэнне краіны само па сабе не пакрывае ніводнага з гэтых выпадкаў.
Запішыце назіраны адрас, меркаванне базы і паказ праграмы як тры асобныя нататкі. Тады наступную неадпаведнасць, якую вы сустрэнеце, будзе лёгка аднесці да прычыны.