1) Введение

Окей, кому-то это всё-таки нужно. Постараюсь оправдать оказанное мне высокое доверие.


Этот пост с высокой долей вероятности можно пропустить потому, что в здесь я буду говорить об очевидных вещах, которые сейчас, кажется, вообще всем понятны. Но он нужен, во-первых, для того, чтобы привести голову в порядок и вообще привыкнуть к необходимости излагать мысли, а во-вторых, для того, чтобы ну уж точно ни у кого не осталось вопросов. Для начала, попрошу вас особо не кидать тапками, я всё-таки привык железки настраивать, а не писать о том, что именно и как работает. Но очень хочется донести до как можно большего количества людей одну простую мысль: это всё не слишком сложно, доступно рядовому пользователю у себя дома и настраивается за час неспешного ковыряния в настройках. Ну и надо для вас чем-то заполнить время, которое я потрачу на рисование схем и лепку скриншотов.


Итак, как всё устроено? У большинства в квартирах стоит роутер. Коробочка с лампочками, в которую приходит провод от провайдера и которая, чаще всего, вайфай. Мне для успокоения совести нужно рассказать, как это всё работает. Я буду разбирать общий случай, не затрагивая частные ситуации, если у людей всё не так, значит и статья им эта вряд ли нужна.


Во-первых, это устройство — маршрутизатор. То есть, в его задачи входит принять запрос от вашего компьютера/телефона/планшета/холодильника и отправить его по нужному адресу.

Во-вторых, это устройство — DNS-сервер. То есть, в его задачи входит получить от вас запрос в виде доменного имени (pikabu.ru) и вернуть в ответ IP-адрес, соответствующий этому имени.

В-третьих, это устройство — Firewall. Фаерволл — это служба, отвечающая за обработку проходящих через устройство пакетов. В самых простых случаях это фильтрация входящих соединений с целью защитить вашу сеть от зловредов и их инструментов. Но нас пока он не очень интересует.


В-четвёртых, это устройство — NAT. Нельзя назвать НАТ отдельным сервисом, это, скорее, одна из функций фаерволла. В общем, она нужна для того, чтобы все устройства, подключенные к вашему роутеру, могли попадать в интернет. И тут уже придётся раскрыть вопрос подробнее.

Дело в том, что обмен данными в интернете возможен только между «реальными» IP-адресами. Но их не так много. Всего 4,5 миллиарда. При этом часть адресов отведена под специальные нужды и не может использоваться в интернете. Поэтому ваш роутер выдаёт вам адрес вроде 192.168.1.X. И с высокой долей вероятности, такой же адрес выдаётся и вашему соседу, и компьютерам в библиотеке или больнице. Эти адреса ещё называются «серыми» потому, что предназначены для внутренних задач компаний. Так вот NAT как раз и занимается преобразованием этих адресов в один — в адрес, предоставленный вам провайдером. И для всего мира ваш компьютер, выходя в сеть, обладает тем же адресом, что и ваш телефон, подключенный к тому же маршрутизатору. А в большинстве случаев, без подключения дополнительной услуги, вы делите этот адрес ещё и с соседями, а то и целым подъездом или домом. Это случай, когда провайдер выдаёт вам «серый» IP-адрес. Так же, как вы выдаёте серые адреса устройствам в сети, подключенной к вашему роутеру.


В итоге, роутер у вас дома — многозадачное устройство. И каждая из перечисленных функций — отдельный сервис, что-то из этого может отсутствовать и это тоже будет нормально. Сервисов на устройстве может быть довольно много и для понимания работы всего этого безобразия нужно понимать, что очень часто слово «сервер» — это только название службы.


Перейдём к работе вашей сети. Когда ваш телефон пытается открыть пикабу, он отправляет запрос с адресом pikabu.ru на DNS-сервер, который в ответ присылает ему IP-адрес, к которому нужно отправлять запросы. После этого телефон отправляет запрос, в котором так же содержится имя сайта pikabu.ru, но этот запрос уже отправлен на IP-адрес, полученный от DNS-сервера. Вы ведь ещё понимаете, что это всё одно и то же устройство, просто телефон обращается к разным его сервисам? А дальше начинается магия. Ваш маршрутизатор знает только об одной сети (ну, может быть, о двух, если есть гостевой вайфай), поэтому он перенаправляет ваш запрос шлюзу, который указан в полученных от провайдера настройках. Тот шлюз, получив запрос, переправляет его следующему шлюзу и так по цепочке, пока ваш запрос не достигнет точки назначения. Полный путь пакета можно узнать с помощью команды traceroute (tracert в Windows). Вывод команды не объективен и на него можно влиять на любом из узлов, которые встречаются на пути, но мы пока не будем углубляться в специфику работы traceroute и в то, почему она плохо подходит для диагностики. Пока нам важно, что мы видим десяток-полтора узлов по пути следования нашего пакета до Пикабу. На каждом из этих узлов (а на самом деле, наверняка, на гораздо большем их количестве) ваш пакет может быть отброшен, заменен, просто уничтожен. И тут мы подходим к тому, ради чего всё затевалось.

VPN, Virtual Private Network, который в зависимости от протокола и реализации, с большим или меньшим успехом заменяет обычный провод, напрямую воткнутый в ещё один роутер. Соответственно, запросы, которые отправляются в созданный туннель, не будут напрямую обрабатываться цепочкой устройств, которую мы бы увидели, выполнив traceroute до сервера. Трассировка, в данном случае, покажет только один узел — VPN-сервер. И все такие запросы не будут обработаны фильтрами провайдера. И здесь важна самая главная особенность всех современных домашних роутеров: в них есть встроенный VPN-клиент. И возможность построения связи с произвольным VPN-сервером в произвольной точке планеты.

Само собой, устройства в цепочке эти пакеты, на самом деле, обрабатывают, плюс есть технологии типа DPI, но в общем случае и при наличии шифрования, содержимое для стороннего наблюдателя недоступно и не попадает под фильтры.


На этом я с теорией закончу. И так слишком занудно, даже по моим меркам. Завтра перейдём к тому, что такое VPS, зачем они нужны и как ими пользоваться. А также я попробую рассказать про Amazon, его интерфейс и как им пользоваться. Амазон понадобится нам для создания бесплатного VPN-сервера.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Спасибо, очень интересно, и, вроде, пока не сложно.

раскрыть ветку (10)
5
Автор поста оценил этот комментарий

Суть в том, что для того, чтобы минимально сделать себе хорошо, не надо тратить бешеные тысячи.

Я работаю с компаниями, но хочется помочь и рядовым пользователям. Ну и страшно бесят люди, берущие по пять-шесть тысяч рублей за то, что каждый может сделать сам.

раскрыть ветку (9)
3
Автор поста оценил этот комментарий
Я не на чьей стороне, но если есть спрос, будет и предложение. Многие готовы заплатить те 5-6 тысяч и не заморачиваться самостоятельно.
Автор поста оценил этот комментарий
Спасибо, интересная информация.
Можно тупой вопрос? Вкратце — реальна ли полная изоляция русскоязычного сегмента или будет подобие китайского firewall, и рядовой пользователь, при желании, обойдёт ограничение?
раскрыть ветку (7)
1
Автор поста оценил этот комментарий
Сделать рубильник и зациклить весь трафик внутри страны - в принципе реально. Сложно, затратно, но реально.
Но экономические потери которые при этом будут понесены просто фантастические. Мое имхо - это проект ради проекта. Реально работать не будет, вся цель его разработки - попил бабла, не более.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это означает отключение от банковской системы, в первую очередь. Почти невозможно изолировать и разрешить только межбанковский трафик, а остальной зарубить. Опять же, не представляю, как поставить фильтрующее оборудование на выходе из страны и какие должны быть характеристики у такого оборудования. Опять же, нет какой-то одной точки выхода, есть целый ряд магистралей, я знаю о трех основных. Плюс спутниковые каналы, тот же вайфай, который при должном умении способен обеспечивать приемлемую скорость на ОЧЕНЬ большие расстояния. Не вижу способа вообще отрезать страну от сети. Хотя не исключаю, что это возможно, просто могу не знать.

Ну и в работу протоколов провайдерского уровня, типа того же BGP, я ещё только начинаю вникать.

3
Автор поста оценил этот комментарий

Технически, конечно же, реальна. На практике у нас нет соответствующей инфраструктуры и это будет означать потерю коммуникации с внешним миром. У нас сейчас нет ни ресурсов для этого, ни возможностей, да и вообще идея абсурдная, никто так делать не будет. Даже несмотря на общую бредовость работы наших соответствующих служб. А если и сделают, то будет как обычно: простым пользователям не пролезть, да и не надо. А кому надо, тот пролезет.


На самом деле законопроект, который так всех пугает, призван создать дублирующие службы, так как, например, DNS-сервера корневые сейчас находятся в Америке и ограничение доступа к ним приведёт к сильным затруднениям в работе интернета.

Я бы изучил вопрос и законопроект подробнее и попытался его раскрыть шире, но тема слишком уж срачепригодная, а мне бы не хотелось в комментах баталии разводить.


Но да, самое главное, это то, что вопреки словам многих блоггеров, нас могут ограничить и это тоже механизм давления.

раскрыть ветку (4)
Автор поста оценил этот комментарий
Изучать нечего, в техническом плане там полное нифига. Отсюда и столько вопросов.
Автор поста оценил этот комментарий

Вот только зеркала корневых серверов уже давно есть и в России, и работают без вливания государственных миллиардов

Автор поста оценил этот комментарий
Ого, какой развёрнутый ответ! Спасибо. Видно, что Вы — профессионал, и хочется Вам верить, а не опасаться сюрпризов от властей.
Вопрос, действительно, срачный, все посты ушли в минуса.
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Ну вот посмотрим, как пойдёт. Я вчера начал писать мануал и дошёл до десяти тысяч знаков. Тогда и решил сначала теорию развернуть, потом уже практическую инструкцию.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку