Pull to refresh

Как устроена и организована глобальная сеть в РФ?

Reading time 15 min
Views 65K
Все мы пользуемся интернетом — сидим в соц. сетях, смотрим онлайн фильмы, читаем новости и даже совершаем покупки. Но все ли знают как устроен интернет и откуда он берется? Сейчас расскажу.
Краткое содержание:

  • Провайдеры интернета передают интернет между собой до конечного пользователя.
  • Провайдер выдает нам IP адреса.
  • DNS сервер и его роль в нашей жизни.
  • Наш трафик проходит через фильтры копов, которые исполняют организованную государством слежку. Комплексы СОРМ
  • Устройство и работа NAT сервера, такие есть в наших роутерах и у провайдера. Таким образом они разделяют трафик между нами. Таким образом наш роутер разделяет трафик между ПК, ноутом, и смартфоном.
  • Сетевая модель OSI.
  • Маршрутизация пакетов.

Интернет нам предоставляют провайдеры, а точнее провайдеры третьего уровня, которые занимаются организацией локальных сетей и предоставлением услуг по подключению, они заключают договор с провайдерами 2 уровня — это обычно «национальные» операторы уровня страны или группы стран региона (яркий пример — Ростелеком или Транстелеком, которые имеют свою связность по территории СНГ) — а те в свою очередь получают интернет от провайдеров первого уровня — это те, на ком держится интернет, то есть меж-континентальные глобальные операторы с оптикой (своей обычно) на дне океанов и терабитами трафиков. Несут максимальные расходы и имеют максимальные доходы. Обычно работают с клиентами через нижестоящих операторов но в исключительных случаях (обычно от сотен мегабит) продают трафик напрямую.

Мы заключаем договор с провайдером, после чего он выделяет нам канал, соответствующий выбранному тарифу, закрепленный за нашим договором, вместе со всеми данными, без которых провайдер не имеет права предоставлять нам интернет. При подключении машины к интернету, DHCP сервер провайдера выдает нам чаще всего динамические глобальные IPv6 IP адреса (если Вы не запросили у него статические).

Для чего он нужен?


IP адрес позволяет другим компьютерам, объединенным в сеть, общаться с вашим. Отправлять сообщения, обмениваться файлами и так далее. Хотя, на самом деле это не все так просто, как кажется на первый взгляд.
Он может быть локальным и глобальным. Локальный адрес выдается например роутером.

Идем дальше, интернет раздается из одного, большого канала между абонентами, реализовано это через маршрутизатор и NAT сервер (маскарад), то есть, когда трафик идет по большому каналу к абоненту, он идет к маршрутизатору, который подменяет адрес пакетов на лету на адрес машины, от которой шел запрос, так-же в обратную сторону.

Мы посещаем сайт, но как все устроено под капотом?


Все сайты находятся на серверах, сервера === это компьютеры, которые имеют достаточную мощность для того, чтобы ответить на все запросы, и имеют специальную серверную ОС, в основном — Linux (ubuntu, debian, centOS), на которой и запущен сервер. Сервер запускается при помощи ПО, специально созданного для размещения сайтов. В основном это Apache или Nginx. У компьютеров нет графического интерфейса из-за соображений экономии ресурсов. Вся работа ведется из командной строки.

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

Итак, сервер запущен, сайт работает, но это еще не все. Как я уже сказал, все компьютеры имеют свои адреса, локальные и глобальные, и сайт имеет 128 битовый адрес, но не будем же мы к нему обращаться по этому трудно запоминающемуся адресу? Тут то и работает DNS. Эта система регистрирует в своей базе данных адреса и присваивает им короткое имя, например google.ru.
Система доменных имен оперирует уже полноценными именами (буквы латиницы, цифры, тире и нижнее подчеркивание допускается при их формировании). Их гораздо легче запомнить, они несут смысловую нагрузку и ими проще оперировать — вместо 209.185.108.134 мы пишем google.ru в адресную строку.
DNS системы имеются в роутерах и у провайдеров, которые могут подменять адреса, если имеются более актуальные данные.

СОРМ


Мы узнали то, что интернет нам дает провайдер, соответственно, трафик проходит через него. Тут то и приходит государство, с требованием слежки за интернет пользователями. Они устанавливают комплексы систем СОРМ у провайдера, подключают их к коммутатору и трафик идет через них. Эти системы фильтруют пакеты, посещения сайтов и бог знает что еще. Так же они имеют доступ к базе данных провайдера. В зависимости от типа системы, она собирает как трафик отдельного лица, так и всех в целом.

В других странах тоже следят за гражданами?


Да, следят. Подобные системы есть и в других странах: в Европе – Lawful Interception (LI), сертифицированная ETSI, в США – CALEA (Communications Assistance for Law Enforcement Act). Отличие нашего СОРМ – в контроле за исполнением функций. В России, в отличие от Европы и США, сотрудники ФСБ должны иметь действующее судебное предписание, но могут подключаться к оборудованию СОРМ без предъявления оператору судебного ордера.

А теперь технические подробности:
IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP.

В 6-й версии IP-адрес (IPv6) является 128-битовым. Внутри адреса разделителем является двоеточие (напр. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Ведущие нули допускается в записи опускать. Нулевые группы, идущие подряд, могут быть опущены, вместо них ставится двойное двоеточие (fe80:0:0:0:0:0:0:1 можно записать как fe80::1). Более одного такого пропуска в адресе не допускается.

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.
DHCP является расширением протокола BOOTP, использовавшегося ранее для обеспечения бездисковых рабочих станций IP-адресами при их загрузке. DHCP сохраняет обратную совместимость с BOOTP.

DHCP порты — 67 — сервер, 68 — клиент.
Основной протокол в интернете — TCP:
TCP/IP — сетевая модель передачи данных, представленных в цифровом виде. Модель описывает способ передачи данных от источника информации к получателю. В модели предполагается прохождение информации через четыре уровня, каждый из которых описывается правилом (протоколом передачи). Наборы правил, решающих задачу по передаче данных, составляют стек протоколов передачи данных, на которых базируется Интернет. Название TCP/IP происходит из двух важнейших протоколов семейства — Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были первыми разработаны и описаны в данном стандарте. Также изредка упоминается как модель DOD (Department of Defense) в связи с историческим происхождением от сети ARPANET из 1970-х годов (под управлением DARPA, Министерства обороны США)
HTTP TCP порт — 80, SMTP — 25, FTP — 21.

СОРМ


Так-же у провайдеров установлены комплексы для сбора данных. У нас, в россии, это корм, в других странах — аналогичные комплексы, только с другим названием и производителем.
ИС СОРМ-3 — программно-аппаратный комплекс для сбора, накопления и хранения информации об абонентах операторов связи, статической информации об оказываемых услугах и проводимых платежах. Доступ к информации, хранящейся в системе, предоставляется уполномоченным сотрудникам государственных органов при проведении ОРМ на сетях операторов связи с помощью интеграции с типовым ПУ регионального управления ФСБ России.

Показывать сложные схемы не буду, уверен, они никому не нужны. Скажу только то, что они подключаются к коммутатору (snr 4550).

Сетевой коммутатор — устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутатор работает на канальном (втором) уровне модели OSI. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты. Для соединения нескольких сетей на основе сетевого уровня служат маршрутизаторы (3 уровень OSI).
Маршрутизатор — специализированный компьютер, который пересылает пакеты между различными сегментами сети на основе правил и таблиц маршрутизации. Маршрутизатор может связывать разнородные сети различных архитектур. Для принятия решений о пересылке пакетов используется информация о топологии сети и определённые правила, заданные администратором.
Широко практикуется разделение сети, основанной на протоколе IP, на логические сегменты, или логические подсети. Для этого каждому сегменту выделяется диапазон адресов, который задается адресом сети и сетевой маской. Например (в CIDR записи):

  • 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24 и т. д. — в каждом сегменте до 254 узлов
  • 192.168.0.0/25, 192.168.128.0/26, 192.168.172.0/27 — в сегментах до 126, 62, 30 узлов соответственно.

Основная задача СОРМ — обеспечение безопасности государства и его граждан, что достигается выборочным контролем прослушиваемой информации. Разработка СОРМ ведется согласно приказам Госкомсвязи, Минкомсвязи и постановлениям Правительства РФ смысл которых – обязать операторов связи «предоставлять уполномоченным государственным органам, осуществляющим оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, информацию о пользователях услугами связи и об оказанных им услугах связи, а также иную информацию, необходимую для выполнения возложенных на эти органы задач, в случаях, установленных федеральными законами».
СОРМ-2 — Это система для слежения за российскими пользователями интернета. Представляет собой устройство (сервер), которое соединено с оборудованием провайдера (оператора связи). Провайдер только включает его в свою сеть и не знает о целях и методах прослушивания, управлением занимаются спецслужбы.

СОРМ-3 – что нового?


Основной целью СОРМ-3 является получение максимально полной информации о пользователе, причем не только в реальном времени, но и за определенный период (до 3 лет). Если СОРМ-1 и СОРМ-2 перехватывают информацию от пользователя, то СОРМ-3 не содержит такой информации, а хранит только статистику, копит ее и создает профиль человека в сети Интернет. Для накопления таких объемов данных будут применяться большие системы хранения, а также системы глубокой проверки трафика (Deep Packet Inspection) для отсеивания лишней информации (фильмы, музыка, игры), которая не содержит полезных сведений для правоохранительных органов.

Идем дальше, интернет раздается из одного, большого канала между абонентами, реализовано это через маршрутизатор и NAT сервер (маскарад), то есть, когда трафик идет по большому каналу к абоненту, он идет к маршрутизатору, который подменяет адрес пакетов на лету на адрес машины, от которой шел запрос.
NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.

Преобразование адреса методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором[1], сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.
Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об n-ом порте за сроком давности.

Помимо source NAT (предоставления пользователям локальной сети с внутренними адресами доступа к сети Интернет) часто применяется также destination NAT, когда обращения извне транслируются межсетевым экраном на компьютер пользователя в локальной сети, имеющий внутренний адрес и потому недоступный извне сети непосредственно (без NAT).
Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).
Статический NAT — Отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.
Динамический NAT — Отображает незарегистрированный IP-адрес на зарегистрированный адрес из группы зарегистрированных IP-адресов. Динамический NAT также устанавливает непосредственное отображение между незарегистрированными и зарегистрированными адресами, но отображение может меняться в зависимости от зарегистрированного адреса, доступного в пуле адресов, во время коммуникации.
Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как PAT (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта. Механизм NAT определён в RFC 1631, RFC 3022.

Типы NAT


Классификация NAT, часто встречающаяся в связи с VoIP.[2] Термин «соединение» использован в значении «последовательный обмен пакетами UDP».
Симметричный NAT (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна. [источник не указан 856 дней
Cone NAT, Full Cone NAT — Однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).
Address-Restricted cone NAT, Restricted cone NAT — Постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.
Port-Restricted cone NAT — Трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.

Преимущества


NAT выполняет три важных функции:
Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу example.org:54055, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.

Недостатки


Старые протоколы. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP). См. Application-level gateway.
Идентификация пользователей. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
Иллюзия DoS-атаки. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
Пиринговые сети. В NAT-устройствах, не поддерживающих технологию Universal Plug & Play, в некоторых случаях, необходима дополнительная настройка (см. Трансляция порт-адрес) при работе с пиринговыми сетями и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.
NAT присутствует во всех роутерах и серверных операционках в том или ином виде. В роутерах это обычно называется port forwarding, в линуксах iptables, на виндовых серверах — в специальной оснастке. А теперь давайте поговорим о различных типах NAT.
Static NAT не требуется для дома, а нужен в том случае, если провайдер выделил несколько IP адресов (внешние или «белые» адреса) вашей компании, и вам нужно, чтобы некоторые серверы всегда были видны из интернета, при этом их адреса бы не менялись.
Т.е. происходит преобразование адресов 1-1 (один внешний IP назначается одному внутреннему серверу). При такой настройке ваши серверы всегда будут доступны из интернета на любом порту.
Кстати говоря о портах, попробую несколько углубиться в эту тему, но не слишком сильно. Дело в том, что любой сервис, любая программа обращается к компьютеру, серверу, роутеру или сервису (будь то почта, веб-страничка или любой другой сервис) не только по IP адресу, но и по порту. Например, чтобы вам открыть страничку google.com со своего компьютера, вам надо ввести две вещи: IP адрес (DNS имя) и… порт.
Но постойте, возмутитесь вы, ведь никакого порта вы не вводите и все отлично открывается!
Так в чем же дело в статике?

Дело в том, что, нет, в DNS записи порт не прячется, как некоторые могли бы подумать, этот самый порт ваш браузер сам подставляет в адресную строку вместо вас. Вы можете легко это проверить. Введите в адресной строке google.com:80 и увидите, что страничка гугла открылась, но волшебные ":80" внезапно исчезли.

Так вот, чтобы пользователям из интернета вас видеть и иметь возможность к вам подключаться, они должны знать две вещи: ваш IP адрес и ваш порт, на котором расположен ваш сервис.

При статическом NAT вам будет фиолетово какой порт использует сервер или программа, т.к. сервер становится полностью доступен из интернета. Чтобы уже ограничить используемые порты, настраивается на этом сервере межсетевой экран.
Если провести параллель, то IP адрес — это адрес вашего дома, а порт — это номер вашей квартиры. Таким образом, чтобы люди могли к вам попасть, им нужно знать эти две вещи, иначе они вас просто не найдут.

Схема работы статического NAT

Например, провайдер выдал вам четыре IP адреса 87.123.41.11, 87.123.41.12, 87.123.41.13, 87.123.41.14, а у вас есть три сервера и роутер. Вы назначаете роутеру, например, первый адрес из этого диапазона (87.123.41.11), а остальные делите между серверами (сервер 1 — .12, сервер 2 — .13, сервер 3 — .14).

Чтобы пользователи из интернета могли подключаться на эти серверы, им достаточно будет ввести внешние IP адреса серверов. Например, когда пользователь подключается на адрес 87.123.41.12, то роутер перенаправляет его на сервер 1 и пользователь уже общается с сервером, хотя не знает что реальный адрес сервера на самом деле другой (192.168.1.2). Такая запись в NAT таблице роутера будет храниться всегда.
Преимущества данного способа:

  • реальные адреса серверов будут скрыты
  • Ваши серверы всегда будут видны в интернете

Недостатки:

  • Злоумышленники могут на них попытаться пробиться или осуществлять какие-нибудь атаки
  • Требуется несколько внешних адресов, что может быть затратно
Динамический NATотличается от статического немногим. Он используется почти также, но с тем лишь исключением, что ваши сервера не видны из интернета, но самим серверам этот интернет нужен. Суть его в том, что вам также выдаются несколько внешних IP адресов от провайдера, после чего роутер сам распределяет адреса между «нуждающимися».

Т.е. как только сервер или компьютер захотел выйти в интернет, роутер смотрит на свой список внешних адресов, выданных провайдером, и выдает один адрес из этого списка, при этом помечает что вот он выдал такой-то внешний адрес такому-то серверу или компьютеру (таблица NAT).

При этом срок жизни такой записи длится очень короткое время и как только сервер/компьютер перестал требовать доступ в интернет, этот адрес удаляется из таблицы NAT роутера.
Существенный недостаток в том, что количество серверов и компьютеров, которым требуется доступ в интернет, не должен сильно превышать кол-во выданных провайдером внешних адресов.

МАРШРУТИЗАЦИЯ


У провайдерских маршрутизаторов есть таблица маршрутизации — электронная таблица (файл) или база данных, хранящаяся на маршрутизаторе или сетевом компьютере, которая описывает соответствие между адресами назначения и интерфейсами, через которые следует отправить пакет данных до следующего маршрутизатора, он выбирает наилучшие маршруты транспортного уровня Ваших пакетов от сервера к Вашему ПК или смартфону. Помните нашу любимую OSI?

Транспортный уровень (англ. transport layer) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приёма), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, UDP ограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери пакета целиком или дублирования пакетов, нарушение порядка получения пакетов данных; TCP обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.

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

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

Так-же у всех пакетов есть время жизни, на тот случай, если они потеряются:

Понятие TTL


Представьте себе, что вам 5 лет и вы хотите кушать. Вы идете к папе и говорите: «Папа, я хочу кушать». Ваш папа смотрит телевизор и согласно таблице маршрутизации он посылает вас к маме. Вы идете к ней и просите «Мамааа, я хочу кушать». Мама болтает с подругой по телефону и согласно своей таблице маршрутизации посылает вас к папе. И так вы ходите, как дурак, от папы к маме и обратно, туда-сюда, туда-сюда, а все потому что криворукие админы (родители папы и мамы) неправильно настроили таблицу маршрутизации. Чтобы защититься от таких ситуаций придумали понятие TTL (Time To Live), что применительно к нашей ситуации означает количество терпения у мальчика, пока он не скажет «за**ало» и не упадет перед ногами мамы или папы в беспомощном состоянии. Последний, по правилам (стандарты – это «так заведено в семье»), обязан послать короткий нелестный отзыв в адрес того, кто послал мальчика кушать. Это так называемый icmp-пакет «мальчик издох».
Tags:
Hubs:
-58
Comments 21
Comments Comments 21

Articles